여러게시판에서 최근 게시물을.. 정보
여러게시판에서 최근 게시물을..본문
안녕하세요.
최근 갤러리 게시글을 만들려고 하는데요.
이 갤러리 최신글(그림)을 한 갤러리 게시판이 아닌 여러 갤러리 게시판에서 데이터를 모두 가져와서 한 테이블에 보여줘야 되거든요?
혹시 방법이 있을까요???
댓글 전체
안녕하세요 님질문에 답변이 않달리길래..
제가 현재 이것저것 응용해서 쓰고 있는 공개되지 않은 자료를 님에게만 살짝 올려드립니다 ^^
extend폴더에 total_group_gallery.php 하나 만드시고
아래 내용을 넣으세요!
#############################################
<?
if (!defined('_GNUBOARD_')) exit;
function total_group_gallery($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category , $orderby="")
{
global $config;
global $g4;
$list = array();
$limitrows = $rows;
//$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where gr_id = '$gr_id' and bo_use_search=1 order by bo_order_search"; //해당그룹 1개에서만 추출 (일반적인그룹 최근게시물)
//$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where bo_use_search=1 order by bo_order_search"; //모든게시판에서 추출
//$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where gr_id not in ('그룹명1','그룹명2') order by gr_id "; //제외그룹 출력시킬때
$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where gr_id in ('그룹명1','그룹명2') order by gr_id "; //해당그룹만 출력시킬때
$rsgroup = sql_query($sqlgroup);
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";
for ($j=0, $k=0; $rowgroup=sql_fetch_array($rsgroup); $j++) {
$bo_table = $rowgroup[bo_table];
// 테이블 이름구함
$sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$tmp_write_table = $g4[write_prefix] . $bo_table; // 게시판 테이블 실제이름
//****************
if ($cat) {
$sql = " select * from $tmp_write_table where wr_is_comment = 0 && ca_name = '$cat' order by wr_id desc limit 0, $rows ";//카테고리별로 출력할때
}
else {
$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $rows ";//게시판별로만 출력할때
}
//*****************
// 옵션에 따라 정렬
$sql = "select * from $tmp_write_table where wr_is_comment = 0 ";
$sql .= (!$category) ? "" : " and ca_name = '$category' ";
$sql .= (!$orderby) ? " order by wr_id desc " : " order by $orderby desc, wr_id desc ";
$sql .= " 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_path, $subject_len);
}
}
if($k>0) array_multisort($op_list, SORT_DESC, $list);
if($k>$rows) array_splice($list, $rows);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
/// 함수 정의 끝
?>
########################################
출력할 부분에
입맛에 따라 아래 2가지 중 원하는 옵션으로 주시면 됩니다.
<?=total_group_gallery("이미지스킨명", "여긴그냥이대로냅두세요-해당그룹만출력,제외는total_group_gallery.php에서 그룹명1,그룹명2..", 5, 17,"");//맨끝에""는 카테고리가 있다면 적으세요! 없으면 "" 로 꼭냅두세요 - 삭제하면 않됨?>
<p>
<?=total_group_gallery("이미지스킨명", "게시판명", 5,14,"카테고리명");//특정게시판 특정카테고리 하나에서만 뽑으려면 이렇게 하세요?>
잘되시면 좋겠습니다 ^^
제가 현재 이것저것 응용해서 쓰고 있는 공개되지 않은 자료를 님에게만 살짝 올려드립니다 ^^
extend폴더에 total_group_gallery.php 하나 만드시고
아래 내용을 넣으세요!
#############################################
<?
if (!defined('_GNUBOARD_')) exit;
function total_group_gallery($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category , $orderby="")
{
global $config;
global $g4;
$list = array();
$limitrows = $rows;
//$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where gr_id = '$gr_id' and bo_use_search=1 order by bo_order_search"; //해당그룹 1개에서만 추출 (일반적인그룹 최근게시물)
//$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where bo_use_search=1 order by bo_order_search"; //모든게시판에서 추출
//$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where gr_id not in ('그룹명1','그룹명2') order by gr_id "; //제외그룹 출력시킬때
$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where gr_id in ('그룹명1','그룹명2') order by gr_id "; //해당그룹만 출력시킬때
$rsgroup = sql_query($sqlgroup);
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";
for ($j=0, $k=0; $rowgroup=sql_fetch_array($rsgroup); $j++) {
$bo_table = $rowgroup[bo_table];
// 테이블 이름구함
$sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$tmp_write_table = $g4[write_prefix] . $bo_table; // 게시판 테이블 실제이름
//****************
if ($cat) {
$sql = " select * from $tmp_write_table where wr_is_comment = 0 && ca_name = '$cat' order by wr_id desc limit 0, $rows ";//카테고리별로 출력할때
}
else {
$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $rows ";//게시판별로만 출력할때
}
//*****************
// 옵션에 따라 정렬
$sql = "select * from $tmp_write_table where wr_is_comment = 0 ";
$sql .= (!$category) ? "" : " and ca_name = '$category' ";
$sql .= (!$orderby) ? " order by wr_id desc " : " order by $orderby desc, wr_id desc ";
$sql .= " 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_path, $subject_len);
}
}
if($k>0) array_multisort($op_list, SORT_DESC, $list);
if($k>$rows) array_splice($list, $rows);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
/// 함수 정의 끝
?>
########################################
출력할 부분에
입맛에 따라 아래 2가지 중 원하는 옵션으로 주시면 됩니다.
<?=total_group_gallery("이미지스킨명", "여긴그냥이대로냅두세요-해당그룹만출력,제외는total_group_gallery.php에서 그룹명1,그룹명2..", 5, 17,"");//맨끝에""는 카테고리가 있다면 적으세요! 없으면 "" 로 꼭냅두세요 - 삭제하면 않됨?>
<p>
<?=total_group_gallery("이미지스킨명", "게시판명", 5,14,"카테고리명");//특정게시판 특정카테고리 하나에서만 뽑으려면 이렇게 하세요?>
잘되시면 좋겠습니다 ^^
너무감사합니다.
팁 감사합니다 ~
..