주요글 선택해서 메인에서 보여주기 정보
주요글 선택해서 메인에서 보여주기
본문
선택된 글을 메인에서 뿌려주는 기능입니다. 최신글 기능과는 달리, 관리자가 '주요글' 옵션을 설정해준 경우에만 보여주게 됩니다.
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. 도움이 되었다면 리플 달아주는 센스~
아아.. 역시 마무리가 어렵죠~ ㅋㅋ
1
댓글 10개

shuffle($list);
이렇게 해서 $list의 순서를 한 번 섞어주면 되지 않을까요?


