주요글 선택해서 메인에서 보여주기
선택된 글을 메인에서 뿌려주는 기능입니다. 최신글 기능과는 달리, 관리자가 '주요글' 옵션을 설정해준 경우에만 보여주게 됩니다.
1. write.skin.php에서 옵션에 "주요글" 옵션을 만들어줍니다.
<? if ($member[mb_level] == 10) { ?>
<input type=checkbox value="1" name="wr_1" <?if($write[wr_1]==1) echo "checked";?>>주요글
<? } ?>
레벨 10인 관리자만이 선택할 수 있게 했습니다. 저는 wr_1을 주요글 옵션으로 사용했는데, 다른 번호를 사용하셔도 무방합니다.
2. latest_hot() 이라는 함수를 만들어줍시다~ 저는 extend 폴더에 latest_hot.php라고 만들어서 추가했습니다.
<? //latest_hot.php
function latest_hot($skin_dir="",$rows, $subject_len,$options="")
{
global $config;
global $g4;
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";
$list = array();
$sql = " select bo_table, bo_subject from $g4[board_table] order by gr_id, bo_table ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$templist = get_hotlist($row[bo_table],$rows);
//$templist에 있는 것들을 $list에 하나씩 넣기
for($j=0; $j<sizeof($templist); $j++) {
$list[] = $templist[$j];
}
}
for ($i=0; $i<sizeof($list); $i++) {
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
}
return $content;
}
function get_hotlist($bo_table,$rows) {
global $g4;
$tmp_write_table = "g4_write_" . $bo_table; // 게시판 테이블 전체이름
$sql = " select * from $tmp_write_table where wr_is_comment = 0 and wr_1 = 1 order by wr_id desc limit 0, $rows ";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
$list[$i]['bo_table'] = $bo_table;
$list[$i]['href'] = "$g4[bbs_path]/board.php?bo_table=$bo_table&wr_id=$row[wr_id]";
}
return $list;
}
?>
wr_1 이외의 다른 값을 사용했다면, 쿼리문을 적당히 수정하셔야겠죠~
3. head.php의 적당한 위치에 다음을 넣어줍니다.
<?=latest_hot("basic", 8, 70,"4,25");?>
물론 괄호 안의 인수들은 필요에 따라 변경해서 쓰시면 되겠죠~ 저같은 경우는 hot_list라는 스킨을 따로 만들어서 쓰고 있습니다.
4. 도움이 되었다면 리플 달아주는 센스~
아아.. 역시 마무리가 어렵죠~ ㅋㅋ
댓글 10개
shuffle($list);
이렇게 해서 $list의 순서를 한 번 섞어주면 되지 않을까요?