게시판들을 쿼리문으로 묶는 방법좀 알려주세요..
본문
그룹 게시판 스킨이 별로 없는것 같아 게시판 스킨으로 모든 게시판 최신글을 모아서 뽑으려고 해요 ㅠ
어디서 부터 손봐야할지 모르겠네요.. 도와주세요 ㅠ
답변 1
그룹으로 지정된 게시판들의 최신글을 가지고 오고싶다는 말인가요?
아니면 그룹으로 지정된 게시판들이 아니더라도
지정한 게시판들의 최신글을 가져오고싶단 말인가요
그룹으로 지정한 게시판의 최신글을 불러오는 소스는 이미 공유되어지고있습니다..
/lib/latest.lib.php 에 추가
function latest_group($skin_dir="", $gr_id, $rows="", $subject_len=40, $cache_time=1)
{
global $g5;
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{$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 - 600 * $cache_time)) {
@unlink($cache_file);
$cache_fwrite = true;
}
}
if(!$cache_fwrite)
include_once($cache_file);
}
}
if(!G5_USE_CACHE || $cache_fwrite) {
$limitrows = $rows;
if (!$skin_dir) $skin_dir = 'basic';
$sqlgroup = " select bo_table, bo_subject from {$g5[board_table]} where gr_id = '$gr_id' ";
// $sqlgroup .= " and bo_use_search=1 order by bo_order ";
$sqlgroup .= " order by bo_order ";
$rsgroup = sql_query($sqlgroup);
for ($j=0,$k=0; $rowgroup=sql_fetch_array($rsgroup); $j++) {
$bo_table = $rowgroup[bo_table];
// 테이블 이름구함
$sql = " select bo_subject, bo_table from {$g5[board_table]} where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$tmp_write_table = $g5[write_prefix] . $bo_table; // 게시판 테이블 실제이름
//print $sql;
// 옵션에 따라 정렬
$sql = "select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit $limitrows";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++, $k++) {
if(!$orderby) { $op_list[$k] = $row[wr_datetime];
} else {
$op_list[$k] = is_string($row[$orderby]) ? sprintf("%-256s", $row[$orderby]) : sprintf("%016d", $row[$orderby]);
$op_list[$k] .= $row[wr_datetime];
}
$list[$k] = get_list($row, $board, $latest_skin_url, $subject_len);
$list[$k][bo_table] = $board[bo_table];
$list[$k][bo_subject] = $board[bo_subject];
$list[$k][bo_wr_subject] = cut_str($board[bo_subject] . $list[$k][wr_subject], $subject_len);
}
}
if($k>0) array_multisort($op_list, SORT_DESC, $list);
if($k>$rows) array_splice($list, $rows);
if($cache_fwrite) {
$handle = fopen($cache_file, 'w');
$cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$gr_id=\"".$gr_id."\";\n\$list=".var_export($list, true)."?>";
fwrite($handle, $cache_content);
fclose($handle);
}
}
ob_start();
include $latest_skin_path.'/latest.skin.php';
$content = ob_get_contents();
ob_end_clean();
return $content;
}
<?php echo latest_group("스킨명", "그룹아이디", 5, 40);?>
답변을 작성하시기 전에 로그인 해주세요.