G4용 그룹최신글 (특정게시판 제외기능 추가) 정보
G4용 그룹최신글 (특정게시판 제외기능 추가)본문
의 내용을 보고 조금 수정해봤습니다.
특정게시판의 내용을 제외하는 기능인데요
이걸 이용하면 특정그룹의 원하는 게시판의 내용들만 최신글로 뽑아 올수 있습니다.
게시물이 들어갈 부분에 아래와 같이 $no_table을 배열이나 스트링으로 넘겨주시면 됩니다.
급조한 기능인데다가 php를 잘몰라서 코드는 허접합니다;;
고수님들 지적과함께 좀더 효과적인 방법 알려주시면 감사하겠습니다.
ex1)
<? include_once("$g4[path]/lib/latest_group.lib.php"); ?>
<?
$no_table = array(
'free',
'test'
);
'free',
'test'
);
echo latest_group("basic", "free_group", 4, 38, $no_table);
?>
ex2)
<? include_once("$g4[path]/lib/latest_group.lib.php"); ?>
<?
$no_table = 'free';
echo latest_group("basic", "free_group", 4, 38, $no_table);
?>
제외하는 게시판 없이 그룹내 최근게시물을 모두 출력하고 싶으시면
<? include_once("$g4[path]/lib/latest_group.lib.php"); ?>
<? echo latest_group("basic", "free_group", 4, 38); ?>
** latest_group.lib.php **
<? if (!defined('_GNUBOARD_')) exit; // 함수 정의 시작 // 최신글 추출 - 선택한 그룹별로 원하는 게시판을 제외하고 원하는 수만큼 보여줌 function latest_group($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++) { $sqlgroup .= " and bo_table != '$no_table[$ic]' "; } } 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; } /// 함수 정의 끝 ?>
추천
0
0
댓글 4개
수고하셧습니다.
latest_group.lib.php 파일을 extend 폴더에 넣어두시면 다음처럼 인클루드 안하고 사용하셔도 됩니다.
>> include_once("$g4[path]/lib/latest_group.lib.php");
latest_group.lib.php 파일을 extend 폴더에 넣어두시면 다음처럼 인클루드 안하고 사용하셔도 됩니다.
>> include_once("$g4[path]/lib/latest_group.lib.php");
G4 용 그룹최신글 (코멘트 시 최신글 목록에 반영기능 추가)
http://www.sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=11335의 기능에 코멘트 추가 시 최신글의 상단으로 올라가도록 기능을 추가하였습니다.
latest_group 함수 제일 끝에 $with_comment 변수를 기본값 true 로 추가하였습니다.기본값인 true 인 …
http://www.sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=11335의 기능에 코멘트 추가 시 최신글의 상단으로 올라가도록 기능을 추가하였습니다.
latest_group 함수 제일 끝에 $with_comment 변수를 기본값 true 로 추가하였습니다.기본값인 true 인 …
1111
감사합니다~ ^^ (최신글 01)