최신글에서 무조건 지정된 갯수만큼의 게시물 출력방법 > 그누4 질문답변

그누4 질문답변

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

최신글에서 무조건 지정된 갯수만큼의 게시물 출력방법 정보

최신글에서 무조건 지정된 갯수만큼의 게시물 출력방법

본문

최신글스킨 - latest.skin.php 입니다.
----------------------------------------------------
<table width=100% cellpadding=0 cellspacing=0>
<? for ($i=0; $i<count($list); $i++) {
    if(($list[$i][wr_10] == 1) && $member[mb_level] < 5) {
              continue;  /* ######## -- wr_10의 값이 1이면 통과 ########## */
    }
?>
<tr>
    <td colspan=4 align=center>
        <table width=95%>
        <tr>
            <td height=25><img src='<?=$latest_skin_path?>/img/latest_icon.gif' align=absmiddle>&nbsp;&nbsp;
            <?
            echo $list[$i]['icon_reply'] . " ";
            echo "<a href='{$list[$i]['href']}'>";
            if ($list[$i]['is_notice'])
                echo "<font style='font-family:돋움; font-size:9pt; color:#2C88B9;'><strong>{$list[$i]['subject']}</strong></font>";
            else
                echo "<font style='font-family:돋움; font-size:9pt; color:#6A6A6A;'>{$list[$i]['subject']}</font>";
            echo "</a>";
            ?></td></tr>
        </table>
</td>
</tr>
<? } ?>

<? if (count($list) == 0) { ?><tr><td colspan=4 align=center height=50><font color=#6A6A6A>게시물이 없습니다.</a></td></tr><? } ?>

</table>




위 최신글을 가져오는 게시판스킨에서는 <wr_10>의 값을 사용해서 숨김기능을 추가했습니다.
특정 게시물이 wr_10 == 1 인경우, 해당글은 숨김처리되어 게시판 리스트에서 안보이도록 설정했습니다.


이로 인해서 최신글에서 아래처럼 게시물을 가져오는경우 ...
----------------------------------------------------
<? latest("basic", $row['bo_table'], 10, 30); ?>


......... 10개의 게시물을 가져오게 되어 있지만 <wr_10 == 1>의 조건을 만족하고
......... 회원권한레벨이 '10'보다 적은경우는
......... 해당 게시물은 숨김처리되어 건너뛰어서 다음 게시물을 가져오게 됩니다.

......... 따라서 해당 게시판의 최근 등록글중에 숨김 게시물이 2개가 있는경우,
......... 위처럼 10개를 가져오도록 최신글 설정을 하더라도 8개의 게시물만 가져오는 결과가 나옵니다.




질문의 요지는...
특정게시판에서 숨김게시물이 있을수도 있고 없을수도 있기때문에
위처럼 최신글스킨(latest.skin.php)의 코드를 이용해서 지정된 갯수만큼의 최신글을 뿌려줄때

게시판 최근글에서 숨김게시물이 있는경우, 해당 숨김게시물을 지금처럼 안보이게 하면서
최신글에서 설정(위 경우, 10개)된 만큼의 게시물을 무조건 가져와서 출력하려면 어떻게 해야할까요.
(단, $member[mb_level] 이 '5' 보다 큰 경우에도 10개만 출력)
  • 복사

댓글 전체

알려주신대로 아래와 같이 latest.lib.php 값을 변경하니까 되는군요. 감사~


<?
if (!defined('_GNUBOARD_')) exit;

// 최신글 추출
function latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="")
{
    global $g4, $member, $is_admin;  // 2-1.  $member, $is_admin 변수 추가

    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; // 게시판 테이블 전체이름

// 2-1. 권한에 따라 숨김게시물 비공개
if($member[mb_level] > 5) {
    $sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_num limit 0, $rows ";
}else{
    $sql = " select * from $tmp_write_table where wr_10 != 1 and wr_is_comment = 0 order by wr_num 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;
}
?>
© SIRSOFT
현재 페이지 제일 처음으로