분류(카테고리) 갯수 표시
위의 이미지 처럼 분류 항목에 갯수를 표시하려는 분들이 많은 것 같아 팁으로 소개해봅니다.
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 상단에 아래와 같이 추가 및 수정합니다.
[code]
<?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);?>
[/code]
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 상단에 아래와 같이 추가 및 수정합니다.
[code]
<?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);?>
[/code]
댓글 7개
10년 전
이 코드 그대로 복사해서 적용해봤는데 전체 카테고리에만 on이 먹힌 상태로 유지되고 나머지 카테고리들은 on이 안 먹히네요- 코드를 몰라 고치지도 못 하겠고.... ^^;
10년 전
위의 소스는 원본 스킨인 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 이 작동되는 상황은 아래와 같습니다.
[code]
if ($category==$sca) { // 현재 선택된 카테고리라면
$category_option .= ' id="bo_cate_on"';
$category_msg = '<span class="sound_only">열린 분류 </span>';
}
[/code]
이 코드의 내용은 주소줄에 $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 이 작동되는 상황은 아래와 같습니다.
[code]
if ($category==$sca) { // 현재 선택된 카테고리라면
$category_option .= ' id="bo_cate_on"';
$category_msg = '<span class="sound_only">열린 분류 </span>';
}
[/code]
이 코드의 내용은 주소줄에 $sca 변수값이 존재할 때 #bo_cate_on 의 css가 활성화된다는 의미입니다.
10년 전
네, 그건 저도 봐서 알았지만 스타일 시트의 문제는 아니었어요.
그 문제였다면 애초에 전체 카테고리일 때도 on이 먹히지 않았겠죠....
저는 상단에 global $sca; 이걸 추가해서 문제를 해결했습니다.
(제가 했다기보다 다른 분께 도움을 얻었어요.... ㅎ)
그 문제였다면 애초에 전체 카테고리일 때도 on이 먹히지 않았겠죠....
저는 상단에 global $sca; 이걸 추가해서 문제를 해결했습니다.
(제가 했다기보다 다른 분께 도움을 얻었어요.... ㅎ)
10년 전
앗, 제가 제시해 드린 함수 안에 전역변수 선언이 $board 뿐이었군요...
혹시, 이 팁을 사용하시는 다른 분들은 "이미님"의 댓글을 참고하시어
함수 안에 $sca 를 전역변수로 선언하여 사용하시기 바랍니다.
수정된 부분은 아래와 같습니다.
[code]
//갯수반영 카테고리 옵션
function new_category_option($bo_table)
{
global $board, $sca; //$sca 전역변수로 추가
~ 이하 생략 ~
[/code]
혹시, 이 팁을 사용하시는 다른 분들은 "이미님"의 댓글을 참고하시어
함수 안에 $sca 를 전역변수로 선언하여 사용하시기 바랍니다.
수정된 부분은 아래와 같습니다.
[code]
//갯수반영 카테고리 옵션
function new_category_option($bo_table)
{
global $board, $sca; //$sca 전역변수로 추가
~ 이하 생략 ~
[/code]
8년 전
이거 적용하면 어마어마하게 느려지는데.. 혹시 인덱스 튜닝을 어떻게 해야할지 알려주시면 정말 감사하겠습니다
그누보드 버전은 5.2.7 쓰고 있습니다
그누보드 버전은 5.2.7 쓰고 있습니다
민쯩먼저깔게요
8년 전
감사합니다
민쯩먼저깔게요
8년 전
하지만 어마어마하게라니 겁납니다..ㅎ
이거 1주일에 대해서만 한다면 빠르지 않을까요?
이거 1주일에 대해서만 한다면 빠르지 않을까요?
게시판 목록
그누보드5 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 공지 | 3년 전 | 4402 | ||
| 2574 | 10개월 전 | 561 | ||
| 2573 | 10개월 전 | 937 | ||
| 2572 |
두리삼촌v
|
10개월 전 | 607 | |
| 2571 | 10개월 전 | 555 | ||
| 2570 | 10개월 전 | 598 | ||
| 2569 |
두리삼촌v
|
10개월 전 | 636 | |
| 2568 |
두리삼촌v
|
10개월 전 | 665 | |
| 2567 |
두리삼촌v
|
10개월 전 | 460 | |
| 2566 |
두리삼촌v
|
10개월 전 | 442 | |
| 2565 | 10개월 전 | 738 | ||
| 2564 | 10개월 전 | 667 | ||
| 2563 | 10개월 전 | 472 | ||
| 2562 | 10개월 전 | 1028 | ||
| 2561 |
|
10개월 전 | 674 | |
| 2560 | 10개월 전 | 917 | ||
| 2559 | 10개월 전 | 655 | ||
| 2558 |
|
10개월 전 | 503 | |
| 2557 | 11개월 전 | 656 | ||
| 2556 | 11개월 전 | 953 | ||
| 2555 | 11개월 전 | 1335 | ||
| 2554 | 11개월 전 | 751 | ||
| 2553 |
|
11개월 전 | 744 | |
| 2552 | 11개월 전 | 673 | ||
| 2551 | 11개월 전 | 863 | ||
| 2550 | 11개월 전 | 765 | ||
| 2549 |
|
11개월 전 | 716 | |
| 2548 | 11개월 전 | 1029 | ||
| 2547 | 11개월 전 | 669 | ||
| 2546 | 11개월 전 | 1203 | ||
| 2545 | 11개월 전 | 660 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기