분류(카테고리) 갯수 표시 정보
분류(카테고리) 갯수 표시첨부파일
본문
위의 이미지 처럼 분류 항목에 갯수를 표시하려는 분들이 많은 것 같아 팁으로 소개해봅니다.
http://sir.co.kr/g5_tip/2604?sfl=wr_subject%7C%7Cwr_content&stx=%EB%B6%84%EB%A5%98+%EC%88%AB%EC%9E%90&page=1
위의 링크에도 "둘째삼식"님이 게시한 내용이 있지만 좀더 간단하게 함수로 만들어 보았습니다.
적용하려는 게시판 스킨의 list.skin.php 상단에 아래와 같이 추가 및 수정합니다.
http://sir.co.kr/g5_tip/2604?sfl=wr_subject%7C%7Cwr_content&stx=%EB%B6%84%EB%A5%98+%EC%88%AB%EC%9E%90&page=1
위의 링크에도 "둘째삼식"님이 게시한 내용이 있지만 좀더 간단하게 함수로 만들어 보았습니다.
적용하려는 게시판 스킨의 list.skin.php 상단에 아래와 같이 추가 및 수정합니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
//카테고리(분류) 갯수 구하기
function category_count($ca_name='')
{
global $g5, $bo_table;
if ($ca_name) $sql_where = " where ca_name = '".$ca_name."' ";
else $sql_where = " where ca_name != '' ";
$row = sql_fetch(" select count(*) as cnt from ".$g5['write_prefix'].$bo_table.$sql_where);
return $row['cnt'];
}
//갯수반영 카테고리 옵션
function new_category_option($bo_table)
{
global $board;
$category_option = '';
if ($board['bo_use_category']) {
$category_href = G5_BBS_URL.'/board.php?bo_table='.$bo_table;
$category_option .= '<li><a href="'.$category_href.'"';
if ($sca=='') $category_option .= ' id="bo_cate_on"';
$category_option .= '>전체('.category_count().')</a></li>';
$categories = explode('|', $board['bo_category_list']); // 구분자가 , 로 되어 있음
for ($i=0; $i<count($categories); $i++) {
$category = trim($categories[$i]);
if ($category=='') continue;
$category_option .= '<li><a href="'.($category_href."&sca=".urlencode($category)).'"';
$category_msg = '';
if ($category==$sca) { // 현재 선택된 카테고리라면
$category_option .= ' id="bo_cate_on"';
$category_msg = '<span class="sound_only">열린 분류 </span>';
}
$category_option .= '>'.$category_msg.$category.'('.category_count($category).')</a></li>';
}
}
return $category_option;
}
// 여기까지 추가함
~ 중략 ~
<?php echo $category_option ?> <!-- 이부분을 찾아서 아래와 같이 수정함-->
<?php echo new_category_option($bo_table);?>
추천
2
2
댓글 7개
이 코드 그대로 복사해서 적용해봤는데 전체 카테고리에만 on이 먹힌 상태로 유지되고 나머지 카테고리들은 on이 안 먹히네요- 코드를 몰라 고치지도 못 하겠고.... ^^;
위의 소스는 원본 스킨인 basic 스킨을 토대로 작성된 것입니다.
스킨의 list.skin.php 파일 내용 중에 id="bo_cate" 부분이 변경되었거나
style.css의
#bo_cate #bo_cate_on {z-index:2;border:1px solid #565e60;background:#fff;color:#565e60;font-weight:bold} 이 부분이 변경되었다면 bo_cate_on 이 작동되지 않을 수 있습니다.
그리고, bo_cate_on 이 작동되는 상황은 아래와 같습니다.
이 코드의 내용은 주소줄에 $sca 변수값이 존재할 때 #bo_cate_on 의 css가 활성화된다는 의미입니다.
스킨의 list.skin.php 파일 내용 중에 id="bo_cate" 부분이 변경되었거나
style.css의
#bo_cate #bo_cate_on {z-index:2;border:1px solid #565e60;background:#fff;color:#565e60;font-weight:bold} 이 부분이 변경되었다면 bo_cate_on 이 작동되지 않을 수 있습니다.
그리고, bo_cate_on 이 작동되는 상황은 아래와 같습니다.
if ($category==$sca) { // 현재 선택된 카테고리라면
$category_option .= ' id="bo_cate_on"';
$category_msg = '<span class="sound_only">열린 분류 </span>';
}
이 코드의 내용은 주소줄에 $sca 변수값이 존재할 때 #bo_cate_on 의 css가 활성화된다는 의미입니다.
네, 그건 저도 봐서 알았지만 스타일 시트의 문제는 아니었어요.
그 문제였다면 애초에 전체 카테고리일 때도 on이 먹히지 않았겠죠....
저는 상단에 global $sca; 이걸 추가해서 문제를 해결했습니다.
(제가 했다기보다 다른 분께 도움을 얻었어요.... ㅎ)
그 문제였다면 애초에 전체 카테고리일 때도 on이 먹히지 않았겠죠....
저는 상단에 global $sca; 이걸 추가해서 문제를 해결했습니다.
(제가 했다기보다 다른 분께 도움을 얻었어요.... ㅎ)
앗, 제가 제시해 드린 함수 안에 전역변수 선언이 $board 뿐이었군요...
혹시, 이 팁을 사용하시는 다른 분들은 "이미님"의 댓글을 참고하시어
함수 안에 $sca 를 전역변수로 선언하여 사용하시기 바랍니다.
수정된 부분은 아래와 같습니다.
혹시, 이 팁을 사용하시는 다른 분들은 "이미님"의 댓글을 참고하시어
함수 안에 $sca 를 전역변수로 선언하여 사용하시기 바랍니다.
수정된 부분은 아래와 같습니다.
//갯수반영 카테고리 옵션
function new_category_option($bo_table)
{
global $board, $sca; //$sca 전역변수로 추가
~ 이하 생략 ~
이거 적용하면 어마어마하게 느려지는데.. 혹시 인덱스 튜닝을 어떻게 해야할지 알려주시면 정말 감사하겠습니다
그누보드 버전은 5.2.7 쓰고 있습니다
그누보드 버전은 5.2.7 쓰고 있습니다
감사합니다
하지만 어마어마하게라니 겁납니다..ㅎ
이거 1주일에 대해서만 한다면 빠르지 않을까요?
이거 1주일에 대해서만 한다면 빠르지 않을까요?