Loading the content...

팁 & 테크

  • Home
  • 스터디
  • 팁 & 테크

★ 카테고리별 갯수 표시하기 팁입니다.

3,240 2015.04.24 01:11

짧은주소

본문

포인트가 엄청 많으신 분(??)이 건의하신 것을 만들어 봤습니다.^^

적용 결과는

1. 카테고리를 TAB으로 했을 경우

 

2. 카테고리를 dropdown list로 했을 경우

 

위와 같이 표시가 됩니다.

 

* 카테고리별 갯수 처리 소스

./www/eyoom/user_program/board/list.skin.php


<?php
    if (!defined('_GNUBOARD_')) exit;
    // Your Program - Start

    // 카테고리
    if ($board['bo_use_category']) {
        foreach($categories as $key => $val) {
            $bocate[$key]['ca_name'] = trim($val);
                $sql_ca = " SELECT count(*) as caCount FROM {$write_table} WHERE ca_name = '{$bocate[$key][ca_name]}' and wr_is_comment = 0 ";
                $row_ca = sql_fetch($sql_ca);
                $bocate[$key]['ca_cnt'] =  $row_ca['caCount'];
                $tot_cate_cnt += $row1['caCount'];
        }
        // ① 게시판 전체 글수를 "전체(nnn)"에 표시하고자 할 경우 (공지 글도 포함이 됨)
        $total_row = sql_fetch(" select sum(bo_count_write) as cnt from {$g5[board_table]} where bo_table = '{$bo_table}' ");
        $total_cate_cnt = $total_row['cnt']; 

        // ② 카테고리가 있는 게시글 수를 "전체(nnn)"에 표시하고자 할 경우 (공지 글, 카테고리가 없는 글은 제외 됨)
        // $total_cate_cnt = $tot_cate_cnt; 

    }

    // Your Program - End

    // 변수 할당하기 - /eyoom/inc/tpl.assign.php 파일 참조
    $tpl->assign(array(

    ));
?>

 

위 소스 중 카테고리 처리하는 부분을 

./eyoom/core/board/list.skin.php

에 직접 수정을 해도 되지만 가능하면 원본을 건드리지 않고 처리가 될 수 있도록 하기 위해

user_program에 적용을 했습니다.

 

이윰님께서 패치에 반영을 해 주시겠죠? ^^

제대로 된 소스를요.... ^^

 

* 카테고리별 갯수 출력 적용방법

예로 

./eyoom/theme/basic/skin_bs/board/basic/list.skin.html 에 적용한다면

1. 카테고리를 TAB으로 했을 경우


<!--{* 게시판 카테고리 시작 *}-->
<!--{?_is_category}-->
<div class="tab-e1c">
    <h5><strong class="color-red">{board.bo_subject}</strong> 카테고리</h5>
    <div class="row col-sm-12">
        <ul class="nav nav-tabs">
            <li class="{?!_decode_sca}active{/}">
                <a href="{_category_href}">전체 <span class="badge rounded-2x badge-dark" title="전체글 수"> 
{_total_cate_cnt}</span></a>
            </li>
            <!--{@ _bocate}-->
            <li class="{? _decode_sca == .ca_name}active{/}">
                <a href="{_category_href}&sca={.ca_sca}">{.ca_name} <span class="badge rounded-2x badge-light" title="{.ca_name} 글수">
{.ca_cnt}</span></a>
            </li>
            <!--{/}-->
        </ul>
    </div>
    <div class="clearfix"></div>
</div>

<!--{/}-->
<!--{* 게시판 카테고리 끝 *}-->

 

2. 카테고리를 dropdown list로 했을 경우

    <!-- 게시판 카테고리 시작 { -->
    <!--{?_is_category}-->
    <script>
    // 카테고리 이동
    function category_view(sca) {
        if(sca)    var url = "{_category_href}&sca="+sca;
        else var url = "{_category_href}";
        $(location).attr('href',url);
        return false;
    }
    </script>
    <nav>
        <h5><strong class="color-red">{board.bo_subject}</strong> 카테고리</h5>
        <div class="row col-sm-4">
            <select name="ca_name" id="ca_name" required class="form-control" onchange="return category_view(this.value);">
                <option value="">전체 ({_total_cate_cnt})</option>
                <!--{@ _bocate}-->
                <option value="{.ca_sca}" {? _decode_sca == .ca_name}selected{/}>{.ca_name} ({.ca_cnt})</option>
                <!--{/}-->
            </select>
        </div>
        <div class="clearfix"></div>
    </nav>
    <div class="margin-hr-10"></div>
    <!--{/}-->
    <!-- } 게시판 카테고리 끝 -->

 

위와 같이 

{_total_cate_cnt} 와

{.ca_cnt} 를 원하는 위치에 원하는 형태로 적용 하시면 됩니다.

 

** 참고로 

위 list.skin.php에 주석으로 설명을 달아 놓았듯이 

공지글, 카테고리를 포함한 모든 글수를 "전체"에 표시할 수도 있고

카테고리가 지정된 글에 대한 "전체" 글수를 표시할 수 있으니

선택적으로 사용하시길 바랍니다.

 

문제에 대한 민사, 형사상 책임을 지지 않음을 밝힘니다. ^^

내상을 입으셨다고 저 한테 압박은 금해 주세요. 제발... ^^

 

부디 도움이 되시길 바랍니다.

 

감사합니다.

 

 

 

2
좋아요!
- 비즈팔 메일보내기 아이디로 검색 - 회원등급 : 새싹/Level 12 - 포인트 : 93,930
레벨 12
경험치 14,217

Progress Bar 43%

- 가입일 : 2015-03-24 15:01:18
- 서명 : 아무것도 하지 않으면, 아무일도 일어나지 않는다.
- 자기소개 : http://www.jobajob.co.kr (잡아잡-취업,알바정보 서비스) - BIZPAL(비즈팔) -
댓글목록

shadow님의 댓글

포인트 많은 제가 첫 손님으로 담아 갑니다.

축하합니다. 첫댓글 포인트 5포인트를 획득하였습니다.

비즈팔님의 댓글

도움이 되셨으면 좋겠네요.^^
저도 많이 익숙하지 않지만 일단 들이 밀어 보는 성격이다 보니 허접 하네요.

shadow님의 댓글

그럼요
훌륭하게 도움이 되고 있지만서도 아까 드린 숙제 마치시고 포인트 받아가세요^^;

비즈팔님의 댓글

제로보드 경험자 분이 보시면 바로 가능할 텐데... 에휴~~
저 숙제를 잘 못해요.^^
압박! 압박!!! ㅎㅎ

shadow님의 댓글

제로보드를 모르셔도 될 것 같은데요?
왜냐하면 왼편 변수들을 유추해보면 그누보드5 변수로 안될까요?
설치된 제로보드 패스, 설치된 제로보드 실제 url, 그리고 include $_zb_path."outlogin.php"; 은 아마도 common.lib.php를 얘기하는게 아닐까 싶고.. 하여튼 저보다는 잘 아실테죠.

꼭 완성하셔서 포인트 받아가세요.
진심이에요^^

비즈팔님의 댓글

포인트는 농담이었구요....^^
말씀하신 질문에 아는 범위에서 답변 달았습니다.
별 도움이 안 될 것 같아 죄송 하네요. ㅜ.ㅜ

티보리님의 댓글

감사합니다.

다이옥신님의 댓글

나중에 꼭 쓸 기능입니다. 좋습니당

축하합니다. 행운의 포인트 35포인트를 획득하였습니다.

joosam님의 댓글

고맙게 잘 사용하겠습니다~~

그림자밟기님의 댓글

$sql_ca = " SELECT ca_name, count(*) as caCount FROM {$write_table} WHERE wr_is_comment = 0 group by ca_name ";
$result = sql_query($sql_ca);
while($row_ca_cnt = sql_fetch_array($result)) {
	작업
}


반복문 > 쿼리 > 가공
보다는
쿼리 > 반복문 > 가공
으로 작업하시는게 조금 더 효율이 좋을 것 같습니다~!

소다님의 댓글

감사합니다. ^^ 잘 쓰겠습니다. ^^

축하합니다. 행운의 포인트 43포인트를 획득하였습니다.

Total 123건 1 페이지
제목
이윰EGG 아이디로 검색 2016.08.24 3,796 0
절대섹쉬꽃미남 아이디로 검색 2016.08.12 3,066 1
그림자밟기 아이디로 검색 2016.03.26 1,658 0
그림자밟기 아이디로 검색 2016.03.26 1,510 1
l2zeo 아이디로 검색 2016.01.27 1,724 0
수퍼개미 아이디로 검색 2015.10.27 2,639 0
l2zeo 아이디로 검색 2015.10.26 9,607 0
l2zeo 아이디로 검색 2015.10.26 2,796 0
shadow 아이디로 검색 2015.10.06 5,425 1
shadow 아이디로 검색 2015.09.21 1,707 0
shadow 아이디로 검색 2015.09.20 1,765 1
l2zeo 아이디로 검색 2015.09.18 6,942 0
shadow 아이디로 검색 2015.09.17 1,296 1
shadow 아이디로 검색 2015.09.17 2,312 0
shadow 아이디로 검색 2015.08.17 3,374 1