계층적 카테고리 플러그인 20110812 > 그누4 플러그인

그누4 플러그인

그누보드에는 여러가지 기능 추가가 쉽도록 제작 되었습니다.
플러그인의 저작권은 해당 플러그인 제작자님께 있으며, 그누보드의 저작권과 다를 수 있습니다.
플러그인 다운로드시 좋아요와 감사의 코멘트를 남기시면 제작자에게 큰 힘이됩니다. ^^y

계층적 카테고리 플러그인 20110812 정보

계층적 카테고리 플러그인 20110812

첨부파일

multi_category-20110813.rar (10.9K) 465회 다운로드 2011-08-13 09:36:03
category_example_data.txt (2.3K) 199회 다운로드 2011-08-12 10:51:32

본문

게시판 계층적 카테고리 플러그인 (그누보드용)

* 코어파일 최소수정을 위해 카테고리 필드를 활용하여 트리형 멀티카테고리를 구현한것입니다
* 카테고리의 깊이의 제한은 없습니다
* 같은 깊이내에 위치 변경이 가능합니다
* 카테고리문서를 통하여 일괄 입력하실 수 있습니다
* 카테고리관리자에서의 작업은 게시판 테이블 데이타에 영향을 주지 않습니다


테스트 버전 : 그누보드 4.34.10 utf8
예약 테이블 : mc
예약 변수 : $__mc;
예약 테이블 필드 : 게시판 데이타 테이블 ca_name 필드 사용

-- 2011-08-13 수정사항
1. 파일 업로드시 입력처리 오류 패치
2. 관리자 접속시 브라우져 encoding 패치


-- 2011-08-12 배포

설치

1. opt_category 폴더를 skin 디렉토리에 업로드 한다 (skin/multi_category)


코어파일 수정

1. lib/common.lib.php 파일에서 get_sql_search() 함수내에 카테고리 검색부분인
if ($search_ca_name)
$str = " ca_name = '$search_ca_name' ";

    if ($search_ca_name){
if($GLOBALS['board']['bo_category_list']=='multi_category' &&
$GLOBALS['board']['bo_use_category']==1){
$str = " ca_name LIKE '$search_ca_name%' ";
}else{
$str = " ca_name='$search_ca_name' ";
}
}로 변경한다
스킨 파일 적용
(적용된 스킨은 http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=108330 에 있습니다)

1. 스킨파일 list.skin.php,write.skin.php,view.skin.php 파일 상단에
if (!defined("_GNUBOARD_")) exit; 다음에
include "$g4[path]/skin/multi_category/lib.php";
를 삽입한다


스킨 출력 설정

목록보기(list.skin.php) :

1. 카테고리 출력(셀렉트박스) 부분인
  <form name="fcategory" method="get" style="margin:0px;">
            <? if ($is_category) { ?>
            <select name=sca onchange="location='<?=$category_location?>'+<?=strtolower($g4[charset])=='utf-8' ? "encodeURIComponent(this.value)" : "this.value"?>;">
            <option value=''>전체</option>
            <?=$category_option?>
            </select>
            <? } ?>
            </form>
  을
<?php echo MC::category_search_form($sca);?>
로 교체한다

2. 카테고리명 출력 부분인
echo "<span class=small><font color=gray>[<a href='{$list[$i][ca_name_href]}'>{$list[$i][ca_name]}</a>]</font></span> "; 를
//echo "<span class=small><font color=gray>[<a href='{$list[$i][ca_name_href]}'>{$list[$i][ca_name]}</a>]</font></span> "; 로
주석처리 한다

글작성 (write.skin.php) :

1. 카테고리 선택 박스 부분인
<select name=ca_name required itemname="분류"><option value="">선택하세요<?=$category_option?></select>

<?php echo MC::write_input_select($write['ca_name']);?>
로 교체한다

2. 하단 카테고리 스크립트를 제거하거나 주석처리 한다
    // document.fwrite.ca_name.options.length += 1;
    //document.fwrite.ca_name.options[document.fwrite.ca_name.options.length-1].value = '공지';
    //document.fwrite.ca_name.options[document.fwrite.ca_name.options.length-1].text = '공지';

내용보기(view.skin.php) :

1. 카테고리명 출력 부분인
<? if ($is_category) { echo ($category_name ? "[$view[ca_name]] " : ""); } ?>
를 제거한다






사용방법 :
1. 게시판 관리자모드에서 기존 카테고리 설정을 하는 분류 에 multi_category 를 입력하고 사용을 체크한후 저장한다
2. 관리자 로그인후 계층형 카테고리가 적용된 스킨의 목록보기를 보면 카테고리관리 메뉴가 출력된다
3. 카테고리 관리페이지로 가면 최초 접속시 자동으로 테이블이 설치가 된다
4. 카테고리 데이타가 입력되지 않은경우 파일 업로드 양식과 카테고리 제목입력 양식이 있는데
파일로 입력하기
- 파일은 규격화된 양식을 따르는 파일을 업로드 하면 일괄적으로 입력할 수 있다.
* 첨부된 category_example_data.txt 파일포멧 참조
- 카테고리 데이타가 없는상태에서만 일괄입력이 가능함을 주의 하자
제목으로 입력하기
- 제목을 입력하고 확인을 누르면 root 카테고리가 생성된다
- 실질적으로 root 카테고리는 출력에 사용되지 않으므로 "카테고리" 등의 명칭으로 생성한다


삭제방법:
설치 및 수정의 역순 ㅡㅡ;;
mc 테이블은 직접 삭제하셔야 합니다~
추천
26

댓글 전체

방금 테스트 하고 왔습니다 정말 멋지네요...ㅎ
다중카테고리를 쉽게...만들 수 있는 플러그인이라고 생각하면 될듯... ^^
감사합니다 앞으로 쓸데가 많을것 같아요...
수고하셨습니다
감사히 잘받았습니다.
저는 잘 적용이 안되네요. 카테고리관리 들어갔을때 Notice: Trying to get property of non-object in 사이트주소\skin\multi_category\lib.php on line 375
에러나고 한글은 다 깨져보여요.
utf8인데 왜이러는지...
와 정말 감사합니다!!

혹시 계층적이지 않게 사용하는 방법이나, 계층적이 아닌 카테고리 플러그인 제작계획은 없으신가요

기존 소스를 여기저기 수정해서 3단, 2단 카테고리 사용하고 있지만,

관리가 정말 불편하고 필드도 추가하고, 코어파일을 많이 수정하게 됩니다..

꼭 나왔으면 좋겠네요 일반 멀티 카테고리 플러그인!
테이블 생성이 안되는데
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE, KEY `rgt` (`rgt`), KEY `ca_text` (`ca_text`) )DEFAULT CHARSET=utf8' at line 1
수고하십니다.
좋은 자료 감사드리구요..^^
저는 '카테고리관리'를 클릭하면 아무것도 없는 빈페이지가 출력되네요..
왜 그럴까요?
찾았습니다.
mysql 버전이 낮아서 그런지..
오류 메시지도 없었네요..
mysql에 직접 테이블을 추가하고 실행하니까.. 되네요.. ^^
수고하세요..
mysql 어떤부분에 어떻게 추가해야 실행이 되나요.. ㅠㅠ 저도 버젼이 낮아서 그런지 빈화면만 나오네요. 상세히 설명좀 해주시면 감사하겠습니다.
렌시아님 안녕하세요?
아래 소스를 sql에 접속하신 뒤에
sql탭에서 붙여넣기를 하시고 실행을 누르시면 됩니다. ^^

=================================================여기부터>>
CREATE TABLE IF NOT EXISTS `g4_mc` (
  `mc` int(10) unsigned NOT NULL auto_increment,
  `bo_table` varchar(32) NOT NULL,
  `lft` int(11) NOT NULL,
  `rgt` int(11) NOT NULL,
  `depth` int(11) NOT NULL,
  `title` varchar(120) NOT NULL,
  `ca_text` varchar(120) default NULL,
  PRIMARY KEY  (`mc`),
  KEY `depth` (`depth`),
  KEY `bo_table` (`bo_table`),
  KEY `opt_category` (`lft`),
  KEY `rgt` (`rgt`),
  KEY `ca_text` (`ca_text`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
<<여기까지=================================================
안녕하세요~ 왕왕초보입니당ㅠㅠ

저는 euckr로 적용중인데용
마지막 부분에서 DEFAULT CHARSET=euckr 만 수정했는데 안되네요ㅠㅠ
혹시 따로 더 수정해야될 부분 있나요?
디비는 정상적으로 ansi형태로 들어간것 같습니다.
그래도 카테고리 관리 창이 안뜨네요ㅠㅠ

아니면 혹시 카테고리 관리에서 카테고리 설정 파일이 만들어지면 그 위치를 알 수 있을까요? 파일로 입력하기라는게 있어서 그 곳에 한번 넣어보려구요

좋은 정보 감사드립니다^^
디비가 제대로 들어갔는데
카테고리 관리창이 보이지 않는다면..
일단 위에서 말한 설정을 다시 한번 확인하시구요

다운로드 받은 파일을 ansi로 변경해서 다시 업로드를 해보세요..
안녕하세요 왕왕초보입니당 ㅠㅠ
올려주신거 너무 좋아요!
근데 euckr 적용이 안되는데 따로 수정해야되는 부분이 있나요?
알려주시면 감사하겠습니다!
euckr 로 하실려면 우션 파일 인코딩을 ansi 로 변경하셔야 하구요..
디비테이블은 euckr 로 생성해주시면 됩니다..
문제가 될 부분은 ajax 부분에서 한글처리 부분인데 이부분은 테스트 해봐야 확답드릴수 있을듯,,,
죄송하지만. 필수 선택으로 사용하려면 어디를 고쳐야 하나요 ?

지금은 필수로 안되있어서.. 그냥 올리기를 눌러 버리는 사람이 많네요 .ㅠ
안녕하세요. 감사히 받아서 설치하던중에 막히는 부분이 있어.ㅠ 염치불구하고 여쭤봅니다.
1. 게시판 관리자모드에서 기존 카테고리 설정을 하는 분류 에 multi_category 를 입력하고 사용을 체크한후 저장한다. 이 부분이 어디를 말하는 것인지 모르겠어요.ㅠㅠ 관리자 메뉴로 들어가서, 게시판 관리쪽을 가도 짚이는 부분이 없습니다. 어디를 만져야 할까요..?ㅠ
안녕하세요^^
좋은 자료 너무너무 감사합니다^^ 저도 적용을 해보려고 따라해봤는데..
저 역시 윗분처럼.. '카테고리관리'를 클릭하면 아무것도 없는 빈페이지가 출력되네요
답변주신 것처럼 해봐도 나오지가 않아요..ㅠ 왕초보라... 답변부탁드립니다..ㅠ
우선 너무 잘 쓰고 있습니다 ^^
혼자 어찌 해볼려 해도 실력이 없어서 해결을 못하고 있습니다.
최신글에 카테고리 정보를 나타나게 하려면 어떻게 하여야 할까요 ?
m_latest 함수가 있는걸로 봐서는 기본 기능에 있는듯 한데 ..
전체 3,524 |RSS
그누4 플러그인 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT