웹마스터 팁
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);
?>
제목 | 글쓴이 | 날짜 |
---|---|---|
제로보드 XE가 갑자기 느려져서 확인해봤더니 [1] | jy1664 | 2009.10.27 |
[수정] 최근 이미지 추출에 new 이미지 등이 나타나게 하기... [5] | 비나무 | 2007.12.09 |
UCC솔루션에 대한 조사입니다~^^ [2] | 내다 | 2009.01.08 |
하나의 게시물을 각각 다르게 보이도록 만드는 방법 [5] | 얼터1.0 | 2009.10.24 |
호스팅 하시는 분들 서버사용량 줄이세요.. [8] | ☆쫑 | 2008.09.19 |
제로보드XE 외부출석부 [1] | noirzo | 2009.01.18 |
[초보] 본문 하단에 구글 애드센스 삽입방법 [2] | BigSeong | 2009.10.10 |
오늘 게시된 글은 날짜 대신 today 그림으로 대치 (왕초보용 초간단팁) | jsuimage | 2009.10.21 |
방명록 스킨을 통한 글 작성시 임시저장 가능케 하기(수정) | 라르게덴 | 2008.07.08 |
1.0.3 버전 이상부터 본문 내 이미지 자동 리사이징이 안되는 경우 [1] | kirrie | 2008.08.01 |
가입시 웹마스터에게 가입했다는 메일 보내기. [4] | dhseo | 2008.06.02 |
DB 이전시 오류 해결,,,하하하하...끝네 해결 했음.... | Crazyhouse.cn | 2009.10.16 |
레이아웃에서 배경이미지를 좌-아래에 넣을 경우 | 오스카 | 2009.10.10 |
www가 붙는 도메인과 그렇지 않은 도메인 하나로 처리하기 [8] | 똑디 | 2008.01.18 |
첨부 파일 용량 문제 - 이것도 저것도 않될때 [4] | DeJavu346 | 2009.01.22 |
인터넷 익스플로러 vs 파이어 폭스 속도 차이 [3] | Jiwoon Kim | 2009.01.25 |
레이아웃에 위젯 넣을때 위젯 사이즈 조절 [4] | mojo9 | 2008.11.07 |
왼쪽메뉴줄이고 오른쪽에 박스만들어 내용쉽게넣기 [15] | plruto | 2008.02.07 |
최근게시물의 캐시파일을 일반문서에 불러들이기 [2] | 고진감래 | 2009.10.09 |
제로보드의 아이콘을 내 맘대로 변경하기...(1) [3] | winter548 | 2009.03.23 |
좋은 팁입니다.
감사하면 사용을 하고 있습니다.