웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
제로보드XE 외부출석부
2009.01.18 18:47
안녕하세요. 영택군 입니다.
^^흠.. 위젯 형식으로 만들면 좋겠지만 제가 XE를 공부를 안해서 ㅠ.ㅠ
( 개발 메뉴얼을 예전에 어디서 본것 같은데 어딘지 모르겟네요.. t.t )
일단 이건 제가 슬사모에서 출석부를 쓸려고 만든건데요. 필요하신분은 쓰세요.
(저만 테스트 한거라 오류에 대해서는.. 적어주시면.. 아는 한도내로 ^^; 답변 해드릴께요.)
두서가 없지만 설명 하겠습니다.
1. 작동방식
- 우선 출석을 할 수 있는 게시판이 필요 합니다. ^^ 수동 출석 방식을 고수 하고 있습니다.
- 출석 게시판에 글을 쓰면 출석으로 인정을 하게 되는거죠
- 출석 게시판에 중복된 글을 남길수 있으며, 중복된 글을 남겨도 1회만 올라 갑니다.
2. 설치방법
- 우선 게시판을 하나 생성 하세요. 그리고 글을 하나 써보세요
- phpmyadmin등과 같은 툴을 이용해서 접속하여, xe_documents 라는 테이블이 있습니다.
- xe_documents 라는 테이블 안에 보시면 좀전에 작성 하셨던 글이 보이실꺼예요.
- 그글을 보시면 module_srl 이 몇번 인지 확인이 가능 하실꺼예요. ^^ 이걸 잘 기억해 주시기 바래용~
- 그리고 아래 소스를 slothistory.php 라는 파일로 저장하세요.
(따른 이름으로 저장하셔도 됩니다만 관련된 소스 부분은 ^^ 잘 수정 하세요)
- 그리고 저장하신 파일을 여신다음 아래의 해당부분을 수정 하세요.
→ $dbid : 자신의 MYSQL 계정 아이디
→ $dbpass : 자신의 MYSQL 계정 패스워트
→ $dbname : 자신의 MYSQL DB 네임~
→ $bbs : module_srl
- 요렇게만 하시면 준비가 완료^^ 이제는 파일을 호스팅에 올리시고 불러 오시면 됩니다. ^^
- 그리고 잘 꾸며서 사용 하시면 됩니다~
( ^^; 음!! 안에 문구등을 수정을 안했기 때문에 맞쳐서 수정 해서 사용하세요 )
- 아또 그리고 calender.js 파일을 js 라는 폴더를 만드시고 안에 넣어주세요 ^^
(같은 폴더에 넣으시면 <script src="js/calender.js" language="javascript"></script> 요부분 경로 수정 하세요 ^^)
<?
$dbhost = "localhost";
$dbid = ""; //계정, 아이디를 넣어 주세요
$dbpass = ""; //계정, 패스워드를 넣어 주세요
$dbname = ""; //MYSQL DB네임을 넣어 주세요
$connect=mysql_connect($dbhost,$dbid,$dbpass);
mysql_select_db($dbname, $connect);
mysql_query("set names utf8", $connect);
/* 기본설정 */
$bbs = 161; //
$reg_date=time();
/* 설정 */
$dbselect="xe_documents"; // 테이블
$result = mysql_query("select * from $dbselect", $connect);
$dbcount = mysql_num_rows($result);
/* 가장 마지막에 기록한 목록 */
$min_reg=mysql_fetch_array(mysql_query("select regdate from $dbselect where module_srl =$bbs ORDER BY regdate ASC LIMIT 0, 1",$connect));
/* 기본 분할 페이지 10 */
if(!isset($_GET['su'])||!ctype_digit($_GET['su'])){
$page=10;
}
else{
$page=$_GET['su'];
}
if(!isset($_GET['no'])||!ctype_digit($_GET['no'])){
$no=0;
}
else{
$no=$_GET['no'];
}
/* 기본 페이지 10 */
if(!isset($_GET['page'])||!ctype_digit($_GET['page'])){
$pagestart=0;
}
else{
if((ceil($dbcount/$page)-1)<$_GET['page']){
echo "<script>location.href = 'history.php';</script>;</script>";
}
else{
$pagestart=($_GET['page']*$page);
}
}
/* 날짜 검색 과련 */
if($_GET["now"]==0){
if(date(d,$reg_date)>=1&&date(d,$reg_date)<=31)
{
$now=date("Ym01000000",$reg_date);
}
}
else{
$now=date("Ymd000000",strtotime($_GET["now"]));
}
if($_GET["now1"]==0){
if(date(d,$reg_date)>=1&&date(d,$reg_date)<=31)
{
$now1=date("YmdHis",$reg_date);
}
}
else{
$now1=date("Ymd235959",strtotime($_GET["now1"]));
}
/* 조건에 맞는 검색 쿼리 */
$cesult = mysql_query("SELECT count(user_id) as total_sum , user_id , nick_name , regdate FROM xe_documents where module_srl =$bbs AND regdate >$now AND regdate <$now1 GROUP BY user_id", $connect);
$result = mysql_query("SELECT count(user_id) as total_sum , user_id , nick_name , max(regdate) as mdate FROM xe_documents where module_srl =$bbs AND regdate >$now AND regdate <$now1 GROUP BY user_id ORDER BY total_sum DESC LIMIT $pagestart , $page", $connect);
$cbcount = mysql_num_rows($cesult);
$dbcount = mysql_num_rows($result);
if(($cbcount/$page)<1) $tot_pages=0;
else $tot_pages = ceil($cbcount/$page)-1; // 전체 분할 페이지 수
/* 현재 선택된 분할 페이지 다음 페이지 리스트 수 */
$max_page = $_GET['page']+4;
if($tot_pages==0) $max_page=0;
elseif($max_page>$tot_pages) $max_page=$tot_pages;
/* 현재 선택된 분할 페이지 이전 페이지 리스트 수 */
$mix_page = $_GET['page']-4;
if($mix_page<=0) $mix_page=1;
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>슬사모 출석 체크 리스트</title>
<!-- 달력 스크립트 -->
<script src="js/calender.js" language="javascript"></script>
<style type='text/css'>
a:link{text-decoration:none; color:#585458}
a:visited{text-decoration:none; color:#585458}
a:hover{text-decoration:none; color:#e757b7}
a:active{text-decoration:none; color:#e757b7}
</style>
<script type="text/javascript">
function go() // 날자 변수 가지고옴!!
{
location.href = "<?=$PHP_SELF?>?page=<?=$pagestart?>&su=<?=$page?><?if($no!=0){?>&no=<?=$no?><?}?>&now="+document.getElementById('now').value+"&now1="+document.getElementById('now1').value;
}
</script>
</head>
<body>
<form name='f' method="post" action="<?=$PHP_SELF?>">
<div style='width: 100%; padding: 10px; BORDER: #bbbbbb 3px solid; BACKGROUND-COLOR: #ffffff; font-size: 9pt; font-family: Comic Sans MS; text-align: center; background-color: #46C6C6; margin-bottom: 5px;'>
<div style='padding-bottom: 8;'>※ 슬사모 출석현황 [ <a href="slothistory.php">처음으로</a> ]</div>
<input type='text' name='now' style='border: #bbbbbb solid 1px;' onclick="check_mouse('f.'+this.name)" value="<?=$now?>" size='12'>
~
<input type='text' name='now1' style='border: #bbbbbb solid 1px;' onclick="check_mouse('f.'+this.name)" value="<?=$now1?>" size='12'>
<input type="button" onclick="javascript:go();" style="border: solid 1px; color:white; background-color:rgb(102,153,255); border-width:1; border-color:#E0E0E0; border-style:none;" value=" 검색 ">
</div>
</form>
<div style='width: 100%; padding: 5px; BORDER: #bbbbbb 3px solid; BACKGROUND-COLOR: #ffffff; font-size: 9pt; font-family: Comic Sans MS; text-align: center; margin-bottom: 5px;'>
페이지당 출력 수 :
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=10<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">10</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=20<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">20</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=30<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">30</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=40<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">40</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=50<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">50</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=60<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">60</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=70<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">70</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=80<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">80</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=90<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">90</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=100<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">100</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=300<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">300</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=500<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">500</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=1000<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">1000</a>
</div>
<table style='width: 100%; border: #bbbbbb solid 3px; font-size: 9pt; font-family: Comic Sans MS; text-align: center; '>
<tr align="center" style='height: 25; background-color: #a0a0a0;'>
<td width="30">순번</td>
<td width="150">최종출석일</td>
<td>닉네임</td>
<td>아이디</td>
<!--<td>출석일수</td>-->
<td>출석일수</td>
</tr>
<?
if($dbcount) {
$i=$pagestart;
while ($row = mysql_fetch_object($result)) {
$i=$i+1;
?>
<tr onmouseover="this.style.backgroundColor='#E7E7E7'" onmouseout="this.style.backgroundColor=''">
<td align="center"><?=$i?></td>
<td align="center" width="150"><?=mb_strcut("$row->mdate",0,4)."-".mb_strcut("$row->mdate",4,2)."-".mb_strcut("$row->mdate",6,2)." ".mb_strcut("$row->mdate",8,2).":".mb_strcut("$row->mdate",10,2).":".mb_strcut("$row->mdate",12,2)?></td>
<td align="center"><?=$row->nick_name?></td>
<td align="center"><?=$row->user_id?></td>
<!--<td align="center"><?=$row->total_sum?></td>-->
<td>
<?
$rjawmd = mysql_query("SELECT regdate FROM xe_documents WHERE module_srl =$bbs AND user_id ='$row->user_id' AND regdate >$now AND regdate <$now1 ORDER BY regdate ASC;", $connect);
for($g=0;$g<31;$g++){
$vv[$g]=0;
}
$sd=0;
while ($rows = mysql_fetch_object($rjawmd)) {
for($f=0;$f<(mb_strcut("$now1",6,2)*1);$f++) {
if(((mb_strcut("$now",0,8)*1)+$f)==(mb_strcut("$rows->regdate",0,8)*1)) {
$vv[$f]=1;
}
}
}
for($t=0;$t<(mb_strcut("$now1",6,2)*1);$t++){
$sd=$sd+$vv[$t];
}
echo $sd;
?>
</td>
</tr>
<?
}
}
?>
</table>
<div style='width: 100%; padding: 5px; BORDER: #bbbbbb 3px solid; BACKGROUND-COLOR: #ffffff; MARGIN-top: 5px; font-size: 9pt; font-family: Comic Sans MS; text-align: center;'>
<?
if($_GET['page']<10){
?>
<a href="<?$PHP_SELF?>?page=0&su=<?=$page?><?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> 처음 </a>
<?
}
elseif($_GET['page']>=10){
?>
<a href="<?$PHP_SELF?>?page=<?=($_GET['page']-10)?>&su=<?=$page?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> 이전 </a>
<?
}
/* 마지막 페이지 기준으로 분할페이지 표시 */
if(($tot_pages-$_GET['page']<4)&&$tot_pages>9){
if(($tot_pages-$_GET['page'])==0) $ss=8;
elseif(($tot_pages-$_GET['page'])==1) $ss=7;
elseif(($tot_pages-$_GET['page'+
'+
'])==2) $ss=6;
else $ss=5;
for($i=$_GET['page']-$ss;$i<=$_GET['page']-5;$i++)
{
$s=$i-1;
?>
[<a href="<?$PHP_SELF?>?page=<?=$s?>&su=<?=$page?><?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> <?=$i?> </a>]
<?
}
}
/* 현재 선택한 페이수 기준으로 앞 5 페이지 출력 */
for($i=$mix_page;$i<=$_GET['page'+
'];$i++)
{
$s=$i-1;
?>
[<a href="<?$PHP_SELF?>?page=<?=$s?>&su=<?=$page?><?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> <?=$i?> </a>]
<?
}
/* 분할페이지 표시 */
for($i=$_GET['page'];$i<=$max_page;$i++)
{
if($i==$_GET['page']){
if($_GET['page']==0){
$s=1;
}
else{
$s=$i+1;
$b=$i-1;
}
echo "<b> " .$s. " </b> ";
}
else{
$s=$i+1;
?>
[<a href="<?$PHP_SELF?>?page=<?=$i?>&su=<?=$page?><?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> <?=$s?> </a>]
<?
}
}
/* 처음페이지 선택 기준으로 5개 후미 5개 표시 */
if($mix_page<5&&$max_page>=4&&$tot_pages>5){
for($i=($_GET['page']+6);$i<=($tot_pages+1)&&$i<=10;$i++)
{
$s=$i-1;
?>
[<a href="<?$PHP_SELF?>?page=<?=$s?>&su=<?=$page?><?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> <?=$i?> </a>]
<?
}
}
if($tot_pages<($_GET['page']+10)){
$tot_pages=$tot_pages;
?>
<a href="<?$PHP_SELF?>?page=<?=$tot_pages?>&su=<?=$page?><?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> 마지막 </a>
<?
}
elseif($tot_pages>=($_GET['page']+10)){
?>
<a href="<?$PHP_SELF?>?page=<?=($_GET['page']+10)?>&su=<?=$page?><?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> 다음 </a>
<?
}
?>
</div>
</body>
</html>
<?
mysql_close($connect);
?>
댓글 1
제목 | 글쓴이 | 날짜 |
---|---|---|
카운터를 만들어봅시다~ (수정본) [181] | zero | 2000.03.08 |
MYSQL Query의 간단한 사용법 [82] | zero | 2000.03.06 |
새로운 뉴스티커 [1] | 아렌티 | 2006.04.25 |
문자열 길이(byte)에 따라 자르기... | 행복한고니 | 2002.10.11 |
textarea 입력받는 글자수 제한하는 스크립트 [5] | 오기 | 2002.01.17 |
자동 스크롤 메뉴 (끄기 기능, 무한 스크롤 X) [6] | ☺심심 | 2004.05.02 |
레이아웃 편집, 게시판 상/하단 내용에 위젯 스타일 적용하기 [2] | LutZ | 2010.09.12 |
큐브리드(CUBRID) 초보자 학습 자료 및 유용한 링크 정리 | 면스판 | 2010.11.09 |
큰 파일의 썸네일이 안생기는 경우 해결방법(수정) [12] | 얼터 | 2008.03.15 |
까오천사님의 만기일 팁을 1.2.4에 맞게 수정했어요. [15] | 도파 | 2009.08.27 |
파일 첨부 에러로 고생하시는 분 [2] | celli29 | 2010.05.11 |
회원약관 추가 [7] | 애치티 | 2009.01.15 |
레이아웃 삽입 후 최근 설문조사 가져오기 | ilovesyr | 2010.05.18 |
확장변수 다중선택에서 체크박스의 선택개수를 제한하기 [5] | 우야꼬 | 2008.05.30 |
회원에게 만기일 주기(1원짜리 팁) [17] | 까오천사 | 2007.11.12 |
APM_Setup 7 사용자중에서 첨부 파일 업로드시 100%에서 사라지는 문제 [2] | 레드파카 | 2010.01.04 |
Apache,PHP,MySQL,Zend,OpenSSL,PEAR 설치 메모 [1] | 엘카 | 2009.12.03 |
첨부파일이 용량에 따라 등록되기도 하고 안되기도 할 때 해결방법 (웹호스팅) [1] | 꽃들 | 2010.01.02 |
최신 댓글 보여주는 기능에 관련해 | 손정호547 | 2009.12.11 |
제로보드XE 외부출석부 [1] | noirzo | 2009.01.18 |