★ 카테고리별 갯수 표시하기 팁입니다.
본문
포인트가 엄청 많으신 분(??)이 건의하신 것을 만들어 봤습니다.^^
적용 결과는
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
1님의 댓글
축하합니다. 첫댓글 포인트 5포인트를 획득하였습니다.
(글쓴이)님의 댓글의 댓글
저도 많이 익숙하지 않지만 일단 들이 밀어 보는 성격이다 보니 허접 하네요.
1님의 댓글의 댓글
훌륭하게 도움이 되고 있지만서도 아까 드린 숙제 마치시고 포인트 받아가세요^^;
(글쓴이)님의 댓글의 댓글
저 숙제를 잘 못해요.^^
압박! 압박!!! ㅎㅎ
1님의 댓글의 댓글
왜냐하면 왼편 변수들을 유추해보면 그누보드5 변수로 안될까요?
설치된 제로보드 패스, 설치된 제로보드 실제 url, 그리고 include $_zb_path."outlogin.php"; 은 아마도 common.lib.php를 얘기하는게 아닐까 싶고.. 하여튼 저보다는 잘 아실테죠.
꼭 완성하셔서 포인트 받아가세요.
진심이에요^^
(글쓴이)님의 댓글의 댓글
말씀하신 질문에 아는 범위에서 답변 달았습니다.
별 도움이 안 될 것 같아 죄송 하네요. ㅜ.ㅜ
2님의 댓글
3님의 댓글
축하합니다. 행운의 포인트 35포인트를 획득하였습니다.
4님의 댓글
5님의 댓글
반복문 > 쿼리 > 가공
보다는
쿼리 > 반복문 > 가공
으로 작업하시는게 조금 더 효율이 좋을 것 같습니다~!
6님의 댓글
축하합니다. 행운의 포인트 43포인트를 획득하였습니다.