wasup

GNU) 그누보드 사용방법. 최신글? 본문

CMS/gnu

GNU) 그누보드 사용방법. 최신글?

wasupup 2021. 5. 9. 23:28
반응형

그누보드를 사용하는 이유중 첫 번째가 게시판과 스킨이라고 이 전전글에 썼었는데

최신글도 게시판이고 스킨입니다.

 

최신글이 뭐냐?

말 그대로 최신글입니다. 

 

만들어진 게시판에 글이 있다면 있는 게시물 중 가장 최근에 작성된 글 목록을 불러오는겁니다.

위치는 index혹은 동일 게시판 혹은 또다른 서브페이지에도 가능합니다.

 


 

 

그럼 최신글은 어찌 사용하나?

 

맨 처음에 그누보드를 설치했을 때 theme의 인덱스 파일 혹은 최상위 인덱스 파일을 보면 

<h2 class="sound_only">최신글</h2>

<div class="latest_top_wr">
    <?php
    // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
    // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
    // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
    echo latest('pic_list', 'free', 4, 23);			// 최소설치시 자동생성되는 자유게시판
	echo latest('pic_list', 'qa', 4, 23);			// 최소설치시 자동생성되는 질문답변게시판
	echo latest('pic_list', 'notice', 4, 23);		// 최소설치시 자동생성되는 공지사항게시판
    ?>
</div>
<div class="latest_wr">
    <!-- 사진 최신글2 { -->
    <?php
    // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
    // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
    // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
    echo latest('pic_block', 'gallery', 4, 23);		// 최소설치시 자동생성되는 갤러리게시판
    ?>
    <!-- } 사진 최신글2 끝 -->
</div>

<div class="latest_wr">
<!-- 최신글 시작 { -->
    <?php
    //  최신글
    $sql = " select bo_table
                from `{$g5['board_table']}` a left join `{$g5['group_table']}` b on (a.gr_id=b.gr_id)
                where a.bo_device <> 'mobile' ";
    if(!$is_admin)
	$sql .= " and a.bo_use_cert = '' ";
    $sql .= " and a.bo_table not in ('notice', 'gallery') ";     //공지사항과 갤러리 게시판은 제외
    $sql .= " order by b.gr_order, a.bo_order ";
    $result = sql_query($sql);
    for ($i=0; $row=sql_fetch_array($result); $i++) {
		$lt_style = '';
    	if ($i%3 !== 0 ) $lt_style = "margin-left:2%";
    ?>
    <div style="float:left;<?php echo $lt_style ?>" class="lt_wr">
        <?php
        // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
        // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
        // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
        echo latest('basic', $row['bo_table'], 6, 24);
        ?>
    </div>
    <?php
    }
    ?>
    <!-- } 최신글 끝 -->
</div>

 

요런 코드가 있습니다.

파일 내부에서 사용 방법을 알려주고 있습니다.

 

초반에(그누보드 처음 접하기 시작할 때) 그누보드 설치시 basic테마를 지우거나 변경하여 사용하지 않고 

새로운 테마를 추가해서 사용했던 이유 중 하나입니다.

 

주석이 잘 달려있으니 참고하기 좋고 수정하다 망가져도 백업파일을 불러오기보다는

무엇을 잘못했는지 비교해보기 편해서 삭제하지 않고 뒀었습니다.

 

<?php
        // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
        // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
        // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
        echo latest('basic', $row['bo_table'], 6, 24);
?>

 

이전 글에서 note라는 게시판을 하나 만들었는데

note게시판을 최신글로 사용하려면

 

<?php echo latest('basic', 'note', 6, 24); ?>

요래 써주면 됩니다.


그럼 최신글 css는 어디있을까?

 

주석을 보면 '사용방법 : Latest(스킨, 게시판아이디, 풀력라인, 글자수);' 라고 되어있는데 

스킨이 'basic'이니까 테마의 스킨은 아니고 최상위 폴더의 스킨입니다.

 

여기서 basic은 게시판의 basic이 아니고 최신글(latest)의 basic이므로 

www/skin/board/로 가면 안되고 

www/skin/latest/로 가서 basic을 찾아야 합니다.

 

 

basic폴더로 가면 latest.skin.php와 style.css가 있습니다.

이번에는 css파일 하나, php파일 하나라서 구분이 쉽죠?

 

php처음보면 좀 어지러울 수 있는데 별거 없습니다.

찬찬히 보면 다 보여요. 파이팅.

 

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">', 0);
$list_count = (is_array($list) && $list) ? count($list) : 0;
?>

<div class="lat">
    <h2 class="lat_title"><a href="<?php echo get_pretty_url($bo_table); ?>"><?php echo $bo_subject ?></a></h2>
    <ul>
    <?php for ($i=0; $i<$list_count; $i++) {  ?>
        <li class="basic_li">
            <?php
            if ($list[$i]['icon_secret']) echo "<i class=\"fa fa-lock\" aria-hidden=\"true\"></i><span class=\"sound_only\">비밀글</span> ";

            echo "<a href=\"".get_pretty_url($bo_table, $list[$i]['wr_id'])."\"> ";
            if ($list[$i]['is_notice'])
                echo "<strong>".$list[$i]['subject']."</strong>";
            else
                echo $list[$i]['subject'];

            echo "</a>";
			
			if ($list[$i]['icon_hot']) echo "<span class=\"hot_icon\"><i class=\"fa fa-heart\" aria-hidden=\"true\"></i><span class=\"sound_only\">인기글</span></span>";
			if ($list[$i]['icon_new']) echo "<span class=\"new_icon\">N<span class=\"sound_only\">새글</span></span>";
            // if ($list[$i]['link']['count']) { echo "[{$list[$i]['link']['count']}]"; }
            // if ($list[$i]['file']['count']) { echo "<{$list[$i]['file']['count']}>"; }

            echo $list[$i]['icon_reply']." ";
           	if ($list[$i]['icon_file']) echo " <i class=\"fa fa-download\" aria-hidden=\"true\"></i>" ;
            if ($list[$i]['icon_link']) echo " <i class=\"fa fa-link\" aria-hidden=\"true\"></i>" ;

            if ($list[$i]['comment_cnt'])  echo "
            <span class=\"lt_cmt\"><span class=\"sound_only\">댓글</span>".$list[$i]['comment_cnt']."</span>";

            ?>
            <div class="lt_info">
				<span class="lt_nick"><?php echo $list[$i]['name'] ?></span>
            	<span class="lt_date"><?php echo $list[$i]['datetime2'] ?></span>              
            </div>
        </li>
    <?php }  ?>
    <?php if ($list_count == 0) { //게시물이 없을 때  ?>
    <li class="empty_li">게시물이 없습니다.</li>
    <?php }  ?>
    </ul>
    <a href="<?php echo get_pretty_url($bo_table); ?>" class="lt_more"><span class="sound_only"><?php echo $bo_subject ?></span>더보기</a>

</div>

반응형
Comments