특정게시판들제외 그룹최신글 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

특정게시판들제외 그룹최신글 정보

특정게시판들제외 그룹최신글

본문

그누보드의 낭만늑대님의 팁을 수정한 겁니다.
사용법:: 원본과 같습니다.
ex1)
<? include_once("$g4[path]/lib/latest_group.lib.php"); ?>
<?
$no_table = array(
'free',
'test'
);
echo latest_group_boardselect("basic", "free_group", 4, 38, $no_table);
?>
ex2)
<? include_once("$g4[path]/lib/latest_group.lib.php"); ?>
<?
$no_table = 'free';
echo latest_group_boardselect("basic", "free_group", 4, 38, $no_table);
?>
제외하는 게시판 없이 그룹내 최근게시물을 모두 출력하고 싶으시면
<? include_once("$g4[path]/lib/latest_group.lib.php"); ?>
<? echo latest_group_boardselect("basic", "free_group", 4, 38); ?>

 
아래는 함수입니다.
<?
// 낭만늑대님의 팁을 수정
//
if (!defined('_GNUBOARD_')) exit;
// 함수 정의 시작
// 최신글 추출 - 선택한 그룹별로 원하는 게시판을 제외하고 원하는 수만큼 보여줌
function latest_group_boardselect($skin_dir="", $gr_id, $rows=10, $subject_len=40, $no_table="", $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' ";
// 제거할 테이블들
if ($no_table) {
$t_flag = serialize($no_table);
if ($t_flag[0] == "a") { //Array이면
for ($ic=0; $ic<count($no_table); $ic++) {
$no_table = implode(" , ", $no_table);
}
} else if ($t_flag[0] == "s") { //String이면
$sqlgroup .= " and bo_table != '$no_table' ";
}
}
$sqlgroup .= " and bo_use_search=1 order by bo_order_search ";
$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; // 게시판 테이블 실제이름
// 옵션에 따라 정렬
$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);
$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);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
/// 함수 정의 끝
?>
추천
2

댓글 5개

latest_group.lib.php 파일을 extend 폴더에 넣어서 사용하면
<? include_once("$g4[path]/lib/latest_group.lib.php"); ?> 는 삭제해도 무방해서
여러페이지에서 그룹최신글을 불러올때 ... 코드를 줄이는데 다소 도움이 될듯~
공개해 주셔서 잘 사용하고 있는데요.. 100개 최신글을 10개씩 페이지표시하고 싶은데 아무리 해도 안되서요;;
혹시 방법을 아시나해서요?
전체 12 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT