AnimeClub - zbXE... : zeroboard XE

XpressEngine에 관련 내용에 대해서 이야기 합니다.

icon 카테고리 최신글, 수정글 아이콘 표시 위젯

조회 수:3445 댓글:5 등록일:2008.11.19 22:29:31 (*.234.236.247)
category.jpg

제목이 좀 애매하네요.
위에 보시는 바와 같이 해당 카테고리에 글이 등록되거나 수정 될때의 아이콘을 표기해주는 기능을 추가 했습니다.
누군가 요청하셔서 올려 드립니다.
실제 출력은 위와 같진 않고 default 스킨으로 가능합니다.(위에꺼는 제가 임의로 만든거고요.)

http://www.animeclub.net/zbXE 여기서 확인 가능합니다.

설치 방법
1. ./widgets/category 폴더를 백업한다 (꼭 백업 후 사용하세요!)
2. 아래 첨부파일(category.zip) 을 다운받아 압축을 푼 후 ./widgets/ 안에 복사
(덮어씌우셔도 됨)

위젯은 기존 설정에 변경 없이 바로 적용 됩니다.

원리
category.class.php 안에 함수가 하나 만들어져 있습니다.
굳이 이걸 다운받지 않으셔도 해당 함수를 임의의 곳에서 호출해주시면 됩니다.
함수를 이곳에 적어 놓겠습니다.(아래의 함수를 파일 '?>' 바로 전에 삽입해주세요.)
category.class.php
        function category_newest($category_num,$time_interval = 43200){
            
            $mo_document = &getModel('document');
            $category_list = $mo_document->getCategoryList(Context::get('module_srl'));
            $category_info = $category_list[$category_num];
            $category_info->childs[] = $category_num;
            $category_srl = implode(',',$category_info->childs);

            $obj1->sort_index = 'list_order';
            $obj1->order_type = 'asc';
            $obj1->list_count = 1;
            $obj1->category_srl = $category_srl;

            $output1 = executeQueryArray('widgets.category.getCategoryDocuments', $obj1);
             // 오류가 생기면 그냥 무시
            if(!$output1->toBool()) return;
            if(!$output1->data[0]->document_srl) return;
            
            $obj2 = $obj1;
            $obj2->sort_index = 'update_order';
            $output2 = executeQueryArray('widgets.category.getCategoryDocuments', $obj2);
             // 오류가 생기면 그냥 무시
            if(!$output2->toBool()) return;
            if(!$output2->data[0]->document_srl) return;

            $list_order = $output1->data[0]->list_order;
            $update_order = $output2->data[0]->update_order;

            if($list_order > $update_order) {
                $value = 'update'; 
                $time = $output2->data[0]->last_update;
            } else {
                $value = 'new'; 
                $time = $output1->data[0]->regdate;
            }

            // 최신 시간 설정
            $time_check = date("YmdHis", time()-$time_interval);

            // 새글 체크
            if($time<$time_check) return;

            // 아이콘 디렉토리 구함
            $path = sprintf('%s%s',getUrl(), 'modules/document/tpl/icons/');
   
        $buff = sprintf('<img src="%s%s.gif" alt="%s" title="%s"
style="vertical-align:middle;"/>', $path, $value, $value, $value);

            return $buff;
          
        }

getCategoryDocuments.xml
<query id="getCategoryDocuments" action="select">
    <tables>
        <table name="documents" />
    </tables>
    <columns>
        <column name="*" />
    </columns>
    <conditions>
        <condition operation="in" column="category_srl" var="category_srl" filter="number" pipe="where" />
    </conditions>
    <navigation>
        <index var="sort_index" default="list_order" order="order_type" />
        <list_count var="list_count" default="20" />
    </navigation>
</query>


실행 방법
위 함수를 추가 하셨다면 스킨 파일에서  아래의 함수를 호출해주시면 됩니다.

{category_newest($val->category_srl,10800)}

'10800' 은 임의의 시간이니 알아서 수정해주시면 되겠습니다.


ps : 아래 첨부파일 받아서 설치하시는 분들은 위 함수 신경쓰지 않아셔도 됩니다.


profile

유지은

2008.11.23
12:56:40
(*.125.3.28)
Fatal error: Call to undefined function category_newest() in /web/home/vista/html/classes/template/TemplateHandler.class.php(352) : eval()'d code on line 67

이 위젯을 적용해 볼려고 하느느데요.
자꾸만  위와 같은 오류가 뜨는데요..

아 도저히 모르겠습니다. ....ㅠㅠ


라르게덴

2008.11.23
18:46:28
(*.79.64.78)
profile
함수를 호출하지 못했따는 의미인데요.
위젯 폴더에 위젯명이 category로 정확하게 들어가 있는지 확인해보셔야 합니다.
폴더명이 잘못되었거나 폴더안에 폴더가 들어가게끔 설정되어있으니 위치확인이 필요할 것 같습니다.

지하수

2008.11.30
04:18:13
(*.245.204.116)
안녕하세요!! 라르게덴님의 위젯을 사용하고자 하는데 적용시 오직 하나의 게시판 모듈 카테고리만 보여지는데 (복수의 여러 모듈을 선택해도.., 각 모듈속에 글들이 들어있고..) 뭐가 문제일까요? ㅠㅠ 그리고 라르게덴님이 사용하시는 스킨은 사용할 수 없는지요? (너무 예뻐서..^^) 암튼 감사합니다!

라르게덴

2008.12.01
10:54:57
(*.234.236.247)
profile
아이콘 띄울때 DB로 쿼리를 날리는데 모듈 대상을 검색하게 했습니다.
초기 목적이 one 모듈 one 스킨 이라서 전체 모듈까지는 생각하지 않고 개발했었는데요.
조금 시간이 나면 전체모듈의 카테고리를 뽑아와도 되도록 개선하겠습니다.

스킨은 차츰차츰 시간나면 여러개 만들어볼 예정 입니다. ^^

윤지영

2008.12.15
18:33:58
(*.147.19.37)
안녕하세요 라르게덴님~
이 위젯을 꼭 수정해서 만들고 있는 사이트에 설치하고 싶은데...도와주실 수 있으신지요?
바쁘다는 것도 알고 있고 다른 분들 글도 다 보고...나름 해봐도 안되어서 xe질답게시판에도 글 올리고...-.- 시도해봤습니다. 이젠 피로해서 집중이 안되네요..부탁드립니다...
카테고리 대신 전체 메뉴에 적용하고 싶은데 알려주신 팁...대로 해야하는 걸 알지만...무리네요...감사합니다.
http://www.zeroboard.com/17545503
List of Articles
번호 제목 글쓴이 날짜 조회 수
193 질문-답변 Cooliris PicLens alljoy 2014-02-19 22912
192 질문-답변 운영잔님 질문드립니다. [1] 인터넷짱 2013-06-08 20837
191 질문-답변 아래글에 이어서.. [4] secret 동쪽에태양 2013-02-24 9
190 질문-답변 piclens 을 수정 하고 싶어요 ^^ [2] secret 동쪽에태양 2013-02-17 3
189 질문-답변 로마네스크 재질문 [2] secret 인터넷짱 2013-01-22 5
188 질문-답변 piclens 1.2 요청합니다. [1] alljoy 2013-01-10 14075
187 질문-답변 로마네스크 최근글 질문입니다. [2] file 인터넷짱 2013-01-04 10438
186 질문-답변 아래글 이전글-다음글 관련 확인했는데... 고민하다가 2012-08-13 13466
185 질문-답변 이전글-다음글 관련 문의드립니다. [2] secret 고민하다가 2012-07-31 5
184 질문-답변 이전글 다음글 다시 질문드립니다. [2] 감사합니다. 2012-05-15 13712
183 질문-답변 이전글 다음글 문의드립니다, [2] 감사합니다 2012-05-09 56868
182 질문-답변 로마네스크 최근 문서 출력 위젯 [3] 종구이 2012-03-31 21358
181 질문-답변 json 추출 글 보고 문의 드립니다. [2] cosmos 2012-03-28 25682
180 질문-답변 이전글 다음글 출력에 관한문의 [2] file 봄날2 2012-03-16 22712
179 질문-답변 이전글 다음글 1.1 버튼색상요 [5] 열공365 2012-03-15 15818
178 질문-답변 흠.. 어떻게 하는거죠?? 위젯이 이상해요..; [3] file 2012-02-27 19964
177 질문-답변 이전글 다음글 위젯이요 [2] 열공365 2012-02-20 35815
176 질문-답변 게시판글을 xml로 파싱하는 방법을 부탁드립니다. [2] ibwj 2011-11-24 29227
175 질문-답변 Cooliris PicLens 애드온 1.5..... [3] secret alljoy 2011-10-30 7
174 질문-답변 위젯: 썸네일 생성에 대해서 질문있어요 [2] 아메아메몬 2011-03-25 18495



CATEGORY
ALL [193]
모듈 [5]
애드온 [16]
위젯 [10]
스킨 [6]
[156]
잡담 [9]
[14]
강좌 [2]

Skin Info

slide_in
 갱신
 
arrow_in