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

- - 짧은주소 : http://e3net.fineyes.com/bbs/?t=9M
본문
포인트가 엄청 많으신 분(??)이 건의하신 것을 만들어 봤습니다.^^
적용 결과는
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에 주석으로 설명을 달아 놓았듯이
공지글, 카테고리를 포함한 모든 글수를 "전체"에 표시할 수도 있고
카테고리가 지정된 글에 대한 "전체" 글수를 표시할 수 있으니
선택적으로 사용하시길 바랍니다.
문제에 대한 민사, 형사상 책임을 지지 않음을 밝힘니다. ^^
내상을 입으셨다고 저 한테 압박은 금해 주세요. 제발... ^^
부디 도움이 되시길 바랍니다.
감사합니다.

댓글목록 11
shadow님의 댓글
포인트 많은 제가 첫 손님으로 담아 갑니다.
축하합니다. 첫댓글 포인트 5포인트를 획득하였습니다.
비즈팔님의 댓글
도움이 되셨으면 좋겠네요.^^
저도 많이 익숙하지 않지만 일단 들이 밀어 보는 성격이다 보니 허접 하네요.
shadow님의 댓글
그럼요
훌륭하게 도움이 되고 있지만서도 아까 드린 숙제 마치시고 포인트 받아가세요^^;
비즈팔님의 댓글
제로보드 경험자 분이 보시면 바로 가능할 텐데... 에휴~~
저 숙제를 잘 못해요.^^
압박! 압박!!! ㅎㅎ
shadow님의 댓글
제로보드를 모르셔도 될 것 같은데요?
왜냐하면 왼편 변수들을 유추해보면 그누보드5 변수로 안될까요?
설치된 제로보드 패스, 설치된 제로보드 실제 url, 그리고 include $_zb_path."outlogin.php"; 은 아마도 common.lib.php를 얘기하는게 아닐까 싶고.. 하여튼 저보다는 잘 아실테죠.
꼭 완성하셔서 포인트 받아가세요.
진심이에요^^
비즈팔님의 댓글
포인트는 농담이었구요....^^
말씀하신 질문에 아는 범위에서 답변 달았습니다.
별 도움이 안 될 것 같아 죄송 하네요. ㅜ.ㅜ
티보리님의 댓글
감사합니다.
다이옥신님의 댓글
나중에 꼭 쓸 기능입니다. 좋습니당
축하합니다. 행운의 포인트 35포인트를 획득하였습니다.
joosam님의 댓글
고맙게 잘 사용하겠습니다~~
그림자밟기님의 댓글
반복문 > 쿼리 > 가공
보다는
쿼리 > 반복문 > 가공
으로 작업하시는게 조금 더 효율이 좋을 것 같습니다~!
소다님의 댓글
감사합니다. ^^ 잘 쓰겠습니다. ^^
축하합니다. 행운의 포인트 43포인트를 획득하였습니다.