그룹 최신글 문의입니다. 정보
그룹 최신글 문의입니다.본문
안녕하세요. 그룹 게시판에 대해 게시판 체크글들만 모아 출력을 하려 합니다.
http://www.sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=13136 을 이용하여 체크된 게시판에 체크된 게시물만 모아 그룹 최신글에 나타나게 하려 합니다.
이 게시판에 사용된 latest.lib.php
--
function latest_banner($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="")
{
global $g4;
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/basic";
$list = array();
$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_4='1' order by wr_3 asc limit 0, $rows ";
//explain($sql);
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
{
global $g4;
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/basic";
$list = array();
$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_4='1' order by wr_3 asc limit 0, $rows ";
//explain($sql);
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
---
부분과
게시판의 그룹최신글에 userfunction.lib 파일의 내용을 혼합해서 작업을 하면 될듯 합니다.
<?
if (!defined('_GNUBOARD_')) exit;
/// 함수 정의 시작
if (!defined('_GNUBOARD_')) exit;
/// 함수 정의 시작
// 최신글 추출 - 선택한 그룹별로 원하는 수만큼 보여줌
function latest_group($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category="", $orderby="")
{
global $config;
global $g4;
function latest_group($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category="", $orderby="")
{
global $config;
global $g4;
$list = array();
$limitrows = $rows;
$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";
$rsgroup = sql_query($sqlgroup);
$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]";
$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];
$bo_table = $rowgroup[bo_table];
// 테이블 이름구함
$sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$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";
$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];
}
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_subject] = $board[bo_subject];
$list[$k][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($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;
}
/// 함수 정의 끝
?>
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
/// 함수 정의 끝
?>
이부분의 정렬 함수를 수정을 하면 될듯 한데 고수님들의 조언을 부탁드립니다.
댓글 전체
다른 용도면 몰러두...
그럴만한 이유가 전혀 없는데..
만약에
group 이 community 라는 이름으로
com1
com2
com3
라는 게시판이 있을 때
com1,com2,com3 가 베너게시판은 아니거든요..
만약
com1 이라는 게시판에서는
com1의 게시판에 필요한 베너만 출력되게 하고 싶으시면
원래 그 베너를 쓰시면서(그룹베너 말고)
여분 필드 하나를 더 이용하십시요.
예를 든다면
베너 입력하면서
wr_9 번을 입력할때
원하는 게시판을 셀렉트 박스로 선택을 하셔서 입력하시면
wr_4 는 광고중
wr_9 는 com1 이렇게 입력되면
광고 중이면서 wr_9 가 com1 인 광고만 출력되겠지요.
이 부분입니다.
$sql = "select * from $tmp_write_table where wr_is_comment = 0 and wr_4='1' and wr_9='$bo_table'";
아니면..
.
.
어찌되었건
banner 라는 그룹을 가진 게시판에서 전체 출력하는 방법은..
<? //출력 스킨은 userfunction.lib.php 에서 정한 스킨을 쓰시면 됩니다.
echo latest_group_banner("banner_left","banner", 5, 70);//스킨명//그룹명?>
<? //함수
// 최신글 추출 - 선택한 그룹별로 원하는 수만큼 보여줌
function latest_group_banner($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category="", $orderby="")
{
global $config;
global $g4;
$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";
$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 and wr_4='1' ";
$sql .= (!$category) ? "" : " and ca_name = '$category' ";
$sql .= (!$orderby) ? " order by wr_3 asc " : " order by $orderby asc, wr_3 asc ";
$sql .= " limit 0, $limitrows";
$result = sql_query($sql);
$list = array();
reset($list);
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;
}
/// 함수 정의 끝
?>
그럴만한 이유가 전혀 없는데..
만약에
group 이 community 라는 이름으로
com1
com2
com3
라는 게시판이 있을 때
com1,com2,com3 가 베너게시판은 아니거든요..
만약
com1 이라는 게시판에서는
com1의 게시판에 필요한 베너만 출력되게 하고 싶으시면
원래 그 베너를 쓰시면서(그룹베너 말고)
여분 필드 하나를 더 이용하십시요.
예를 든다면
베너 입력하면서
wr_9 번을 입력할때
원하는 게시판을 셀렉트 박스로 선택을 하셔서 입력하시면
wr_4 는 광고중
wr_9 는 com1 이렇게 입력되면
광고 중이면서 wr_9 가 com1 인 광고만 출력되겠지요.
이 부분입니다.
$sql = "select * from $tmp_write_table where wr_is_comment = 0 and wr_4='1' and wr_9='$bo_table'";
아니면..
.
.
어찌되었건
banner 라는 그룹을 가진 게시판에서 전체 출력하는 방법은..
<? //출력 스킨은 userfunction.lib.php 에서 정한 스킨을 쓰시면 됩니다.
echo latest_group_banner("banner_left","banner", 5, 70);//스킨명//그룹명?>
<? //함수
// 최신글 추출 - 선택한 그룹별로 원하는 수만큼 보여줌
function latest_group_banner($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category="", $orderby="")
{
global $config;
global $g4;
$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";
$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 and wr_4='1' ";
$sql .= (!$category) ? "" : " and ca_name = '$category' ";
$sql .= (!$orderby) ? " order by wr_3 asc " : " order by $orderby asc, wr_3 asc ";
$sql .= " limit 0, $limitrows";
$result = sql_query($sql);
$list = array();
reset($list);
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;
}
/// 함수 정의 끝
?>