선택한 게시판에서 선택한 공지만 메인에 최근게시물로 뽑아오기 단, 답글은 제외 정보
선택한 게시판에서 선택한 공지만 메인에 최근게시물로 뽑아오기 단, 답글은 제외본문
이것때문에 별 쇼를 다했습니다. 거의 한달 가까이 너무나 힘들어서 두번다시 저와 같이 헤매시는분들을 없게 하기 위해 올립니다.
그냥, 답변글 없애고, 공지만 나오게 할수는 있었지만,
문제는 공지를 체크하지 않은 게시물이 있을경우는 메인의 최근게시물에서
한줄이 없어지는 경우가 발생했습니다.
너무 힘들었습니다. 왜냐면 초짜였으니까요... 엑스엠엘님께 감사드립니다....
저는 bbs/new.php 와 스킨의 new.skin.php 두파일만 건드렸습니다.
* 먼저 해야할것은 관리자모드의 각게시판설정에서 전체검색사용 부분을 체크해 주셔야합니다. 이것을 선택안하면 메인노출에서 제외 됩니다.
#### 아래는 bbs/new.php 입니다.
<?
//include_once("./_common.php");
//$g4[title] = "최근 게시물";
//include_once("./_head.php");
function chkNotice($notice_array,$wr_id)
{
$List_split = split("\n",$notice_array);
for($ii=0;$ii<sizeof($List_split);$ii++)
{
if(trim($wr_id) == trim($List_split[$ii])) return true;
}
return false;
}
$sql_common = " from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c
where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' ";
if ($gr_id) $sql_common .= " and b.gr_id = '$gr_id' ";
$sql_common .= " and a.wr_id = a.wr_parent ";
if ($mb_id) $sql_common .= " and a.mb_id = '$mb_id' ";
$sql_order = " order by a.bn_id desc ";
$sql = " select count(*) as cnt $sql_common ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$rows = $config[cf_new_rows];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$group_select = "<select name=gr_id id=gr_id onchange='select_change();'><option value=''>전체그룹";
$sql = " select gr_id, gr_subject from $g4[group_table] order by gr_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$group_select .= "<option value='$row[gr_id]'>$row[gr_subject]";
}
$group_select .= "</select>";
$list_notice_arr = array();
$cc_rows = 5 * $rows;
$sql = " select a.*, b.bo_subject, b.bo_notice, c.gr_subject, c.gr_id
$sql_common
$sql_order
limit $from_record, $cc_rows ";
$result = sql_query($sql);
$i = 0;
while($row=sql_fetch_array($result))
{
if(!chkNotice($row[bo_notice],$row[wr_id])) continue;
if($i < $from_record ) continue;
if($i >= $rows ) continue;
$tmp_write_table = $g4[write_prefix] . $row[bo_table];
$bo_table = $row[bo_table];
$wr_id = $row[wr_id];
$wr_subject = $row[wr_subject];
$list_notice_arr[$i] = $row;
if ($row[wr_id] == $row[wr_parent]) // 원글
{
$comment = "";
$comment_link = "";
$row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '$row[wr_id]' ");
//$list[$i] = $row2;
// $name = get_sideview($row2[mb_id], cut_str($row2[wr_name], $config[cf_cut_name]), //$row2[wr_email], $row2[wr_homepage]);
// 당일인 경우 시간으로 표시함
$datetime = substr($row2[wr_datetime],0,10);
$datetime2 = $row2[wr_datetime];
if(strstr($row[bo_notice],$row[wr_id]) ) $list_notice_arr[$i][is_notice]=1;
else $list_notice_arr[$i][is_notice]=0;
if ($datetime == $g4[time_ymd])
$datetime2 = substr($datetime2,11,5);
else
$datetime2 = substr($datetime2,5,5);
$wr_id = $row2[wr_id];
$wr_subject = $row2[wr_subject];
$list_notice_arr[$i] = $row2;
}
$list_notice_arr[$i][href] = "./bbs/board.php?bo_table=$bo_table&wr_id=$wr_id{$comment_link}";
$list_notice_arr[$i][datetime] = $datetime;
$list_notice_arr[$i][datetime2] = $datetime2;
$list_notice_arr[$i][wr_subject] = $wr_subject;
$i++;
}
$new_skin_path = "$g4[path]/skin/new/$config[cf_new_skin]";
include_once("$new_skin_path/new.skin.php");
//include_once("./_tail.php");
?>
########### 아래는 skin의 new.skin.php 입니다.#############################
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<style>
.n_title1 { font-family:돋움; font-size:9pt; color:#FFFFFF; }
.n_title2 { font-family:돋움; font-size:9pt; color:#5E5E5E; }
</style>
</style>
<!-- 제목 시작 -->
<table width="94%" border="0" cellspacing="0" cellpadding="0">
<?
for ($i=0; $i<count($list_notice_arr); $i++)
{
$gr_subject = cut_str($list_notice_arr[$i][gr_subject], 10);
$bo_subject = cut_str($list_notice_arr[$i][bo_subject], 10);
$wr_subject = get_text(cut_str($list_notice_arr[$i][wr_subject], 30));
//if( !$list[$i][is_notice] == 1) continue;
echo "<tr>";
echo "<td height=18 width=85%>. <a href='{$list_notice_arr[$i][href]}'>{$wr_subject}</a></td>";
echo "<td align=center colspan=2 >{$list_notice_arr[$i][datetime2]}</td>";
echo "</tr>";
echo "<tr>";
echo "<td colspan=9 height=1 background={$new_skin_path}/img/dot_bg.gif></td>";
echo "</tr>";
}
?>
</table>
************************* 그리고 index.php 에서 최근게시물 뽑아오는 자리에
<? include "bbs/new.php";?> 이렇게 하세요.
저도 초짜입니다. ^^
0
댓글 5개
초자라 팝업창을 붙이려 며칠 고생을 하다가 귀파일을 알고 인덱스에 넣으니 처음글들을 표시할 수 있어서 팝업창을 대시하려 합니다.
그런데 나오는 글자의 크기와 최신글의 수자를 제한하려면 어디를 건드려야 하나요?