웹마스터 팁

안녕하세요. 영택군 입니다.

^^흠.. 위젯 형식으로 만들면 좋겠지만 제가 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> 요부분 경로 수정 하세요 ^^)

123456.jpg456789.jpg

<?

$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>&nbsp;" .$s. "&nbsp;</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);
?>

제목 글쓴이 날짜
회원약관 추가 [7] file 애치티 2009.01.15
(재 수정) 제로보드 XE 신버젼에 Lavalic 2 설치하기 [4] 조성우371 2009.01.16
제로보드 DTREE 메뉴 적용하기 ( 카테고리 선택기 흉내 냈습니다.) [5] file 조성우371 2009.01.17
제로보드XE 외부출석부 [1] file noirzo 2009.01.18
계시글 제목이 짤려서 나오는데 어디를 수정해야 할까요... [2] file 지우빠 2009.01.20
쪽지보내기에 대하여 문의 [1] 도봉산사랑 2009.01.22
첨부 파일 용량 문제 - 이것도 저것도 않될때 [4] file DeJavu346 2009.01.22
1.1.5 이후 버전 업데이트후 외부페이지에서 다음위젯이 표시안될때~ [3] 정박사닷컴 2009.01.23
공식레이아웃에 언어선택 부분 빼는 방법 아주 간단합니다. [1] file 만쓰별(정만) 2009.01.23
미지원 언어 추가하기(기존에꺼 하나 골라서 수정하는 방식으로) 만쓰별(정만) 2009.01.23
페이지 모듈에도 게시판제목 처럼 다는 쉬운방법... [2] 만쓰별(정만) 2009.01.23
프레임셋을 이용하여 도메인 명만 보여주기 /xe ~~ 와 같은 것 없애기 [5] 만쓰별(정만) 2009.01.23
전체글 보기 게시판 만들어보기 관련 연구 응용 링크 모음 [5] 만쓰별(정만) 2009.01.23
회원을 그룹으로 나누어 화면에 출력할 수 있나요? 아키수 2009.01.24
묻고 답하기용 게시판 [1] yunesb 2009.01.24
메뉴활성화에 따라 원하는 위치에 레이어 넣고 바꾸기.. 왼쪽 플래시 메뉴 메뉴따라서 바꾸기 [4] 만쓰별(정만) 2009.01.24
XpressEngine 초보자를 위해서! [1] 바라기군 2009.01.25
인터넷 익스플로러 vs 파이어 폭스 속도 차이 [3] Jiwoon Kim 2009.01.25
매일 매일 업데이트 되는 사이트 내용부분만 아이프레임으로 긁어오기... [1] 만쓰별(정만) 2009.01.25
pdf 파일 embeded in XE 게시판 [4] file 자반튀김 2009.01.27