동일그룹내에 동일카테고리 최신글 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

동일그룹내에 동일카테고리 최신글 정보

동일그룹내에 동일카테고리 최신글

본문

동일그룹내에 가게시판과 나게시판 다게시판 등이 있으며 이 여러개의 게시판의
 
카테고리가 동일한것이 있습니다.
 
이 동일한 카테고리별 최신글을 만들 수 있을까요?
 
아무리 검색해 보아도 답을 찾지 못했네요.
 
해결방안 좀 부탁드립니다.

댓글 전체

동일한 카테고리별(?)이라는 말이 언뜻 이해가 잘 안되지만..아래코드를 분석해보시고
응용하시면 될듯해서 남겨둡니다.


[순서]

01. 확장라이브러리파일을 하나 생성한후 extend 폴더에 삽입
02. 그룹최신글을 보여줄곳에 코드삽입
03. 그룹최신글 스킨설치



[위 방법에 따른 파일별 코드및 폴더작업]

-------------------------------------------------------------------------
01. 아래 코드를 group_select.lib.php 파일명으로 저장하여 .... /extend 폴더에 삽입
------------------------------------------------------------------------

<?
if (!defined('_GNUBOARD_')) exit;
/// 함수 정의 시작

// --------- 동일한 그룹내에서 '검색이 지정된 게시판'중의 최신글만을 출력
// --------- 최신글 'group'폴더(임의의 폴더)와 연동


function la_group_select($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category="", $orderby="", $options="")
{
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_table <> 'tmb_01b01' ";

// -- 방법4 (검색이 지정된 전체 게시판의 게시물 출력)
$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 ";
$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;
}
/// 함수 정의 끝
?>





-------------------------------------------------------------------------
02. 아래 코드를 원하는곳에 위치
-------------------------------------------------------------------------
    <? echo la_group_select("최신글폴더명", 그룹명, 10, 35, '', '', '');?>


-------------------------------------------------------------------------
03. /skin/latest 폴더내에 위와 동일한 임의의 '최신글폴더명' 를 생성한뒤,
    그 안에 아래 코드를 latest.skin.php 라는 파일명으로 저장
--------------------------------------------------------------------------



<?
/* 그룹스킨
?>

<table width=100% cellpadding=1 cellspacing=0 border=0 style='border:1px solid #FFFFFF;'>

<? for ($k=0; $k<count($list); $k++) {
  if ($k > 0) {
  echo "<tr><td height='2'></td></tr>";
}
?>


<tr height='20'>
    <td>

<? // new 아이콘표시
if ($list[$i][icon_new]) {
    echo " " . $list[$i][icon_new] . " ";
}else{
echo " " . "<img src='$latest_skin_path/img/bul.gif' width='11' height='11'>" . " ";
}
?>

<?

/* 게시판명 */
echo "<span style='color:669900'>[". $list[$k][bo_subject] ."]</span>&nbsp;";

echo $list[$k][ca_name]  ."&nbsp;";
            echo "&nbsp;<a class='g_link' href='{$list[$k][href]}'><strong>";
            echo "{$list[$k][subject]}";
            echo "</strong></a>";

        if ($list[$k][comment_cnt])
                echo " <a href=\"{$list[$k][comment_href]}\"><span style='font-family:tahoma,Tahoma,돋움; font-size:8pt; color:#888888;'>{$list[$k][comment_cnt]}</span></a>";


if ($list[$i][wr_link1]) { // 홈페이지 링크가 걸린경우, 링크아이콘표시
/*
&nbsp;&nbsp;
<IMG src='<?=$board_skin_path?>/img/li_mtit04.gif' width='40' height='14' align='absmiddle'>&nbsp;
<a href='<?=$list[$i][link_href][1]?>' class='b_link' target=_blank><?=cut_str($list[$i][wr_link1], 35)</a>
*/
echo "&nbsp; <a href='{$list[$i][link_href][1]}' class='b_link' target=_blank>";
echo $list[$k][icon_link];
echo "</a> ";
}

            //echo " " . $list[$k][icon_link];
            //echo " " . $list[$k][icon_hot];
            //echo " " . $list[$k][icon_secret];
      ?>

</td>
</tr>

<? } ?>

<?if(count($list)==0){echo"<tr><td align='center' height='30'>게시물이 없습니다.</td></tr>";}?>

</table>

<!-- 여기까지 -->






P.S;
'팁'란에 '그룹'이라는 검색어로 찾아보면 원하는 내용을 찾을수 있습니다.
약간의 차이가 있을수 있으므로 latest.skin.php는 본인이 원하는형태로 수정하여 사용하세요.
답변 감사합니다. 그룹으로 최신글을 가져오는 것에 대해서는 여러가지 팁을 발견했습니다.

또 카테고리 최신글은 천상재회님의 팁으로 확인했습니다.  그런데, 그룹안에서 카테고리

최신글은 어떻게 하는지 모르겠습니다.

제가 하고 싶은 작업 중에 하나를 예를 들면  클럽에 있는 게시판들에서 동일한 카테고리의

글만  가져 오게 하싶다는 것입니다.


 클럽안의 게시판에,  앨범이라는 카테고리와 칼럼이라는 카테고리가 있어서

앨범이라고 하는 카테고리와 칼럼이라는 카테고리의  글만 최신글로 보여지게 하는 것입니다.
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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