★ 카테고리별 갯수 표시하기 팁입니다.
짧은주소
- - 짧은주소: http://v2.eyoom.net/bbs/?t=Ze 주소복사
본문
포인트가 엄청 많으신 분(??)이 건의하신 것을 만들어 봤습니다.^^
적용 결과는
1. 카테고리를 TAB으로 했을 경우
2. 카테고리를 dropdown list로 했을 경우
위와 같이 표시가 됩니다.
* 카테고리별 갯수 처리 소스
./www/eyoom/user_program/board/list.skin.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?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으로 했을 경우
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <!--{* 게시판 카테고리 시작 *}--> <!--{?_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로 했을 경우
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <!-- 게시판 카테고리 시작 { --> <!--{?_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에 주석으로 설명을 달아 놓았듯이
공지글, 카테고리를 포함한 모든 글수를 "전체"에 표시할 수도 있고
카테고리가 지정된 글에 대한 "전체" 글수를 표시할 수 있으니
선택적으로 사용하시길 바랍니다.
문제에 대한 민사, 형사상 책임을 지지 않음을 밝힘니다. ^^
내상을 입으셨다고 저 한테 압박은 금해 주세요. 제발... ^^
부디 도움이 되시길 바랍니다.
감사합니다.
좋아요!

Progress Bar 43%
번호 | 제목 | 글쓴이 | 날짜 | 뷰 | 추천 |
---|---|---|---|---|---|
83 |
![]() ![]() |
2015.05.23 | 2,081 | 0 | |
82 |
![]() ![]() |
2015.05.23 | 2,216 | 1 | |
81 |
![]() |
2015.05.21 | 1,676 | 0 | |
80 |
![]() |
2015.05.21 | 2,874 | 0 | |
79 |
![]() |
2015.05.21 | 1,684 | 0 | |
78 |
![]() ![]() |
2015.05.21 | 1,797 | 0 | |
77 |
![]() ![]() |
2015.05.20 | 2,501 | 0 | |
76 |
![]() ![]() |
2015.05.20 | 3,796 | 2 | |
75 |
![]() ![]() |
2015.05.20 | 1,919 | 1 | |
74 |
![]() ![]() |
2015.05.17 | 2,332 | 0 | |
73 |
![]() |
2015.05.11 | 1,920 | 1 | |
72 |
![]() ![]() |
2015.05.07 | 2,277 | 0 | |
71 |
![]() ![]() |
2015.05.06 | 4,749 | 0 | |
70 |
![]() ![]() |
2015.04.30 | 5,196 | 0 | |
69 |
![]() ![]() |
2015.04.29 | 2,252 | 0 | |
68 |
![]() ![]() |
2015.04.28 | 3,472 | 1 | |
67 |
![]() ![]() |
2015.04.25 | 3,276 | 0 | |
66 |
![]() ![]() |
2015.04.24 | 2,839 | 3 | |
열람 |
![]() ![]() |
2015.04.24 | 3,402 | 2 | |
64 |
![]() ![]() |
2015.04.23 | 2,431 | 2 |
댓글목록
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포인트를 획득하였습니다.