자유글 월별 글쓴이 랭킹 소스 및 설치법
- 운영자
- 4830
- 2
첨부 1
<html>
<head>
<style>
body,td,tr,table{font-size:9pt; font-family:웹정;color:#666666;}
body
{scrollbar-3dlight-color:#FFFFFF;
scrollbar-arrow-color:#FFFFFF;
scrollbar-track-color:#FFFFFF;
scrollbar-darkshadow-color:#FFFFFF;
scrollbar-face-color:#FFFFFF;
scrollbar-highlight-color:#FFFFFF;
scrollbar-shadow-color:#666666}
A:link {font-family:웹정;font-size:9pt;color:#666666;text-decoration:none;}
A:visited {font-family:웹정;font-size:9pt;color:#666666;text-decoration:none;}
A:active {font-family:웹정;font-size:9pt;color:#666666;text-decoration:none;}
A:hover {font-family:웹정;font-size:9pt;color:#7A7A7A;text-decoration:none;}
</style>
</head>
<?
/******************************************************************************
* 월별 글쓰기 코멘트 순위 표기하기
*
* 프로그래밍 : 박상연([email protected])
*
* 홈페이지 :http://zeeps.com
*
* 이 프로그램은 월별 글쓴수와 코멘트수를 표기하기 위해 만들었습니다..
*
* 저작권 명시를 삭제하시면 안됩니다.
*
* 원하시는대로 수정하여 사용하실수 있으나 수정후 배포는 하지마시기 바랍니다.
*
*****************************************************************************/
include \lib.php\;
$connect=dbConn();
$now = time(); // 현재 시간을 초단위로 구해줍니다. time()사용하면 유니버설스템프타임 여튼 이걸구해줍니다./
$year = date(\'Y\');
$month = date(\'m\');
$day = date(\'d\');
$hour = date(\'H\'); // 현재 몇시인지 구해줍니다. h는 12시간으로 표기 H는 24시간으로 표기해줍니다./
$min = date(\'i\'); // 현재 몇분인지 구해줍니다./
$sec = date(\'s\'); // 현재 몇초인지 구해줍니다./
$to_day = mktime(0,0,0,$month,$day,$year); //특정하게 지정된 날짜의 시간을 초단위로 구해줍니다./
$first_day = mktime(0,0,0,$month,1,$year); // 매월 1일을 구함./
$end_day = date(\'t\'); // 이달의 마지막날.
$lankSql = \select * from lank where check_date = \'$to_day\' order by wp desc limit 1\;
$count_lank = mysql_query($lankSql,$connect);
$count_ok = mysql_num_rows($count_lank);
if($count_ok==0)
{
// 제가 사용하는 홈페이지에서는 마지막글쓴날을 표기하도록 하였으므로 이런 방식을 사용합니다.
$temp2 = mysql_query(\select no,name,level from zetyx_member_table where last_write >\'$first_day\'\,$connect);
$temp2 = mysql_query(\select no,name,level from zetyx_member_table\,$connect);
$target_board = \link||hello||qna||notice||member||guest||board3||board2||board1||pds6||pds5||pds4||pds3||pds2||pds1||com5||com4||com3||com2||com1||lesson4||lesson3||lesson2||lesson1\; //생성한 게시판 아이디를 모두 적는다
$arry_board = explode(\||\,$target_board);
$target_borad_name = \자게||질답||팁||오에||정보||스킨||1차||2차||이야기||스샷||검게||궁게||마게||상게||도게||궁게||출석||00||00||00||00||00||00||00||00\;
$title_name_temp = explode(\||\,$target_borad_name);
$boardTotal = sizeof($arry_board);
while($mem_data = mysql_fetch_array($temp2)){
$mem_no = $mem_data[no];
$mem_name = $mem_data[name];
$mem_level = $mem_data[level];
$write = 0;
$comment = 0;
for ($k=0;$boardTotal>$k;$k++)
{
$board_name=$arry_board[$k];
$countSql = \select * from zetyx_board_$board_name where ismember=\'$mem_no\' and reg_date>\'$first_day\'\;
$count = mysql_query($countSql,$connect);
$write = $write + mysql_num_rows($count);
$countSql = \select * from zetyx_board_comment_$board_name where ismember=\'$mem_no\' and reg_date>\'$first_day\'\;
$count = mysql_query($countSql,$connect);
$comment = $comment + mysql_num_rows($count);
}
mysql_query(\insert into lank (member_no,member_level,member_id,wp,cp,check_date) values (\'$mem_no\',\'$mem_level\',\'$mem_name\',\'$write\',\'$comment\',\'$to_day\')\) or error(mysql_error());
}
// 불필요한 디비 자원을 삭제합니다.
$result = mysql_query(\delete from lank where check_date < \'$to_day\'\);
}
?>
<br>
<br>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr>
<td align=center>
<table border=0 cellspacing=0 cellpadding=0 width=99%>
<tr>
<td height=27 align=center bgcolor=445599>
<font color=white><b><?=$month?>월의 글올림이
</td>
</tr>
</table>
<table border=0 width=99% cellspacing=0 cellpadding=8 bgcolor=A9DDDE>
<tr><td valign=top bgcolor=white>
<?
$lankSql = \select * from lank where check_date = \'$to_day\' order by wp desc limit 5\;
$count_lank = mysql_query($lankSql,$connect);
$i=1;
while($lank_data = mysql_fetch_array($count_lank)){
$mem_no=$lank_data[member_no];
$mem_name=$lank_data[member_id];
$mem_level=$lank_data[member_level];
$private_icon_file=$_zb_path.\icon/private_icon/\.$mem_no.\.gif\;
if(@file_exists($private_icon_file)) {
$private_icon_file=$_zb_url.\icon/private_icon/\.$mem_no.\.gif\;
$mem_name=\<img src=\'$private_icon_file\' border=0 align=absmiddle>\.$mem_name;
}
else{
$mem_name=\<img src=\'\.$_zb_url.\images/level-$mem_level.gif\' border=0 align=absmiddle>\.$mem_name;
}
$write_no=$lank_data[wp];
$comment_no=$lank_data[cp];
echo \$i 위 $mem_name ($write_no/$comment_no)<br>
\;
$i++;
}
?>
</td>
</tr>
</table>
</td>
</tr>
</table>
디비필드에 level 필드를 하나 만들어야 아이콘이 나옵니다.
level 속성은 name과 동일합니다.
원래 제로보드에 있는 월별랭킹 소스의 스키마 설치파일은 level이 빠져있구요.
저는 수동설치했거든요. 아이콘은 그래서 나오는 것입니다.
기초적인 설치법은 제로보드에서 확인하시면 될 거 같구요.
홈페이지 보니 잘 하실 것 같네요.
성공하시길 바랍니다.