웹마스터 팁

질문&답변 란에 글이 좀 보이길래 한번 만들어봤습니다. (저도 써야하기 땜시롱)

이걸 애드온으로 해둘까하다가 그냥 입맛에 맞게 하시라고 소스만 드릴게요.
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
30
function getDocumentDivision($document_srl,$type,$order){
            $oDocumentModel = &getModel('document');
            $oDocument = $oDocumentModel->getDocument($document_srl, '');
     
                $args->module_srl = $oDocument->get('module_srl');
 
                if($order == 'list_order') {
                    $args->list_order = $oDocument->get('list_order');
                    $args->sort_index = 'list_order';
                } elseif($order == 'update_order') {
                    $args->update_order = $oDocument->get('update_order');
                    $args->sort_index = 'update_order';
                }
                if($type == 'next')    $args->order_type = 'desc';
                elseif($type == 'prev')    $args->order_type = 'asc';
 
                $args->list_count = 1;
                $args->page_count = 1;
                $args->page = 1;
 
                if($type == 'next') $output = executeQuery("document.getNextDivision", $args);
                elseif($type == 'prev'$output = executeQuery("document.getPrevDivision", $args);
 
                if($output->data) {
                    $data = array_pop($output->data);
                    $division_document = $data->document_srl;
                }
 
            return $division_document;
        }


getNextDivision.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<query id="getNextDivision" action="select">
    <tables>
        <table name="documents" />
    </tables>
    <columns>
        <column name="*" />
    </columns>
    <conditions>
        <condition operation="in" column="module_srl" var="module_srl" filter="number" />
        <condition operation="below" column="list_order" var="list_order" filter="number" pipe="and" />
        <condition operation="below" column="update_order" var="update_order" filter="number" pipe="and" />
    </conditions>
    <navigation>
        <index var="sort_index" default="list_order" order="order_type" />
        <list_count var="list_count" default="1" />
        <page_count var="page_count" default="1" />
        <page var="page" default="1" />
    </navigation>
</query>

getPrevDivision.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<query id="getPrevDivision" action="select">
    <tables>
        <table name="documents" />
    </tables>
    <columns>
        <column name="*" />
    </columns>
    <conditions>
        <condition operation="in" column="module_srl" var="module_srl" filter="number" />
        <condition operation="excess" column="list_order" var="list_order" filter="number" pipe="and" />
        <condition operation="excess" column="update_order" var="update_order" filter="number" pipe="and" />
    </conditions>
    <navigation>
        <index var="sort_index" default="list_order" order="order_type" />
        <list_count var="list_count" default="1" />
        <page_count var="page_count" default="1" />
        <page var="page" default="1" />
    </navigation>
</query>


스킨 같은 곳에서 사용 방법
{@$oDivision = &getModel('document')}
다음글 {$oDivision->getDocumentDivision($oDocument->document_srl,'next','list_order')}
이전글 {$oDivision->getDocumentDivision($oDocument->document_srl,'prev','list_order')}

list_order로 정렬 법과 update_order로 정렬 법으로 되게 해봤습니다.

executeQuery("document.getNextDivision", $args);
document 은 xml 파일이 있는 곳으로 바꿔주셔야 합니다.

xml파일을 addons/애드온명/queries/ 폴더에 넣어서 사용하실 경우는 addons.애드온명.getNextDivision 으로 되어야 겠죠.

그리고 만약 addons/애드온명 폴더 안에서 사용할 경우라면

다음글 {getDocumentDivision($oDocument->document_srl,'next','list_order')}
이전글 {getDocumentDivision($oDocument->document_srl,'prev','list_order')}

이런식으로 사용하세요.


---------------------

추가 설명 해드립니다.

제일 위의 소스파일은 제로XE/modules/document/document.model.php 의 제일 하단

        /**
         * @brief 문서 설정 정보를 구함
         **/
        function getDocumentConfig() {
            if(!$GLOBLAS['__document_config__'])  {
                $oModuleModel = &getModel('module');
                $config = $oModuleModel->getModuleConfig('document');

                if(!$config->thumbnail_type) $config->thumbnail_type = 'crop'+ '+ ';
                $GLOBLAS['__document_config__'] = $config;
            }

            return $GLOBLAS['__document_config__'];
        }


---- 요기 붙여넣기 해주세요 ----      

    }
?>

나머지 xml의 내용은 제목대로(getNextDivision.xml,getPrevDivision.xml) 각각 파일로 만드셔서

제로XE/modules/document/queries/ 폴더에 넣어주세요.



주의1. 꼭 파일 저장하실때(특히 XML) UTF-8로 저장하세요.
주의2. 안되면?? ㄷㄷㄷ;;;; 저는 됐습니다. 안되면 어쩔수 없이 물어보세요 ^^
태그 연관 글
  1. [2018/11/07] 묻고답하기 제로보드4, XE 백업 파일을 xml로 추출한 파일에 한글이 안 나옵니다 by 황다인 *2
  2. [2017/03/05] 묻고답하기 게시판 스킨의 테마 컬러를 skin.xml에 정의해 스타일시트에 전달하는 방법이 궁금합니다. by RTRPRSS
  3. [2016/09/29] 묻고답하기 백업용 xml파일 저장후 삭제 문의 by 열목어 *2
  4. [2011/07/13] 묻고답하기 XE에 기상청 동네날씨예보 XML 위젯 추가하기 by 레알마네 *1
  5. [2011/05/28] 묻고답하기 설치시 문제 (The result is not valid XML) by ohjaeho *1
제목 글쓴이 날짜
아이디 첫글자에 숫자 허용 [2] wooildang 2014.07.24
기본 URL 지정 문제 해결 & 멀티도메인 1사이트 사용 간단 설정 팁 [4] SeungXE 2014.10.19
PHP에서의 파일입출력 문법 (간단히) [92] zero 2000.03.06
PHP에 대한 소개 [216] zero 2000.03.06
[SocialXE] 1.7.4.x 업데이트 후 SocialXE에서 '잘못된 요청입니다.' 오류가 뜨는 문제 해결하기 [15] file TUW 2014.03.26
업글타일 모듈에서 fail_to_trash가 뜨지만 삭제는 정상으로 진행된다면 SeungXE 2014.10.11
댓글 삭제/수정/답글 시 팝업창으로 띄우기 [22] file 고진감래 2009.10.21
[10원팁] 한서버에 2개이상의 xe를 사용할때 간헐적 백지문제 [4] 키스미베이베 2014.09.19
XE 그룹아이콘 레벨아이콘 아이콘샵 동시출력하기(모르는분들 있으까봐올립니다.) [1] 모앱 2013.02.22
방화벽 때문에 쉬운설치가 안 될경우 해결법 빛의바다 2014.10.04
회원정보 손쉽게 엑셀 파일로 저장하기 [34] thejeon 2009.08.05
메시지톡 버튼 게시판에 넣기 [18] file 착한악마 2013.11.26
php에서 한글언어 작성이 깨질때 [1] 광개토대왕3 2014.06.28
구글 API 활용(뉴스가져오기) pixfine 2014.09.24
[AJAX]DB 해당값을 검색하기 pixfine 2014.09.24
330 오류(net::ERR_CONTENT_DECODING_FAILED): 알 수 없는 오류 - 해결책 [2] 하얀마법 2012.10.25
[업데이트] [Easy Tip] [XE 1.7] XE 코어 js, css파일 jsdelivr CDN사용하기 [13] file Typhoon 2014.08.28
회원 프로필 사진 리사이징될때 ratio가 아닌 crop으로 처리하기 mAKEkr 2014.09.19
레이아웃 작업 중 갑자기 files/faceOFF/xxx/ko.cache.php 에러 발생할 시 Novelic 2014.09.19
로그인 실패 관련 쪽지 또는 메일이 안 날라오게 하는 방법 [9] sejin7940 2012.11.12