index.php 부분 그룹별 최신글 출력 질문입니다.
본문
현재 검색을 통하여 그룹별 최신글을 출력하는 방법을 알게 되어서 한번 적혀있는대로 하였는데 게시판들이 전혀 뜨질 않네요....
그룹 id를 하나는 test1로 설정을 하고 하나는 test2로 설정을 한뒤 1에는 게시판을 1개만들어놓고 2에는
3개를 만들어놨습니다.
그리고 latest.lib.php부분에 밑의 소스를 추가를 시킨뒤
function latest2($skin_dir='', $gr_id, $rows=10, $subject_len=40, $cache_time=1, $options='')
{
global $g5;
//static $css = array();
if (!$skin_dir) $skin_dir = 'basic';
if(G5_IS_MOBILE) {
$latest_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
$latest_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
} else {
$latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;
$latest_skin_url = G5_SKIN_URL.'/latest/'.$skin_dir;
}
$cache_fwrite = false;
if(G5_USE_CACHE) {
$cache_file = G5_DATA_PATH."/cache/latest-{$gr_id}-{$skin_dir}-{$rows}-{$subject_len}.php";
if(!file_exists($cache_file)) {
$cache_fwrite = true;
} else {
if($cache_time > 0) {
$filetime = filemtime($cache_file);
if($filetime && $filetime < (G5_SERVER_TIME - 3600 * $cache_time)) {
@unlink($cache_file);
$cache_fwrite = true;
}
}
if(!$cache_fwrite)
include($cache_file);
}
}
if(!G5_USE_CACHE || $cache_fwrite) {
$list = array();
$sql = "select a.*, b.bo_subject, c.gr_subject, c.gr_id from g5_board_new a, g5_board b, g5_group c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = 1 and c.gr_id = '{$gr_id}' and a.wr_id = a. wr_parent order by a.bn_id desc limit 0, {$rows}";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$sql = " select * from {$g5['board_table']} where bo_table = '{$row['bo_table']}' ";
$board = sql_fetch($sql);
$tmp_write_table = $g5['write_prefix'].$row['bo_table'];
$row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_id']}' ");
$list[$i] = $row2;
$list[$i] = get_list($row2, $board, $latest_skin_url, $subject_len);
$list[$i]['subject'] = "[".$row['bo_subject']."] ".$list[$i]['subject'];
$list[$i]['bo_table'] = $row['bo_table'];
}
if($cache_fwrite) {
$handle = fopen($cache_file, 'w');
$cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$bo_subject='".$bo_subject."';\n\$list=".var_export($list, true)."?>";
fwrite($handle, $cache_content);
fclose($handle);
}
}
/*
// 같은 스킨은 .css 를 한번만 호출한다.
if (!in_array($skin_dir, $css) && is_file($latest_skin_path.'/style.css')) {
echo '<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">';
$css[] = $skin_dir;
}
*/
ob_start();
include $latest_skin_path.'/latest.skin.php';
$content = ob_get_contents();
ob_end_clean();
return $content;
}
index.php 의 최신글 출력하는 부분에
<?php echo latest2('theme/basic', 'test2', 20, 25); ?>
이런식으로 적었는데 게시판이 보이질않네요...
무슨 문제인지 아시는 분 계시면 부탁드리겠습니다 ㅜ
답변 1
해당 게시판 설정에서 전체 검색 사용 체크박스가 체크되었는지 확인.
환경설정 > 캐시파일 일괄삭제.
그래도 안 된다면 스킨명이 제대로 지정되었는지 확인
(테마를 사용하지 않는데 스킨을 테마로 해놓으면 아예 출력이 안 됩니다.)
<?php echo latest2('theme/basic', 'test2', 20, 25); ?>
올려주신 함수 그대로 복사해서 해봤는데 정상 출력됩니다.