웹마스터 팁
이전글, 다음글 얻기
2008.05.29 19:17
이걸 애드온으로 해둘까하다가 그냥 입맛에 맞게 하시라고 소스만 드릴게요.
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
<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
<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. 안되면?? ㄷㄷㄷ;;;; 저는 됐습니다. 안되면 어쩔수 없이 물어보세요 ^^
- [2018/11/07] 묻고답하기 제로보드4, XE 백업 파일을 xml로 추출한 파일에 한글이 안 나옵니다 *2
- [2017/03/05] 묻고답하기 게시판 스킨의 테마 컬러를 skin.xml에 정의해 스타일시트에 전달하는 방법이 궁금합니다.
- [2016/09/29] 묻고답하기 백업용 xml파일 저장후 삭제 문의 *2
- [2011/07/13] 묻고답하기 XE에 기상청 동네날씨예보 XML 위젯 추가하기 *1
- [2011/05/28] 묻고답하기 설치시 문제 (The result is not valid XML) *1
댓글 25
-
포트거스.D.에이스
2008.05.29 20:39
-
老姜君
2008.05.29 21:56
정말 많은 분들께서 기다리시던 팁인건 분명한데.
function getDocumentDivision는 어느 파일에 넣어야 하는지요?
board 모듈에서 쓸려면(대다수 분들이 이러실것 같은데) 여기의 queries에다 xml 파일을 만들어서 넣으면 되나요? -
라르게덴
2008.05.29 22:11
내용을 수정했습니다.
애드온으로 만든다는게 함수 몇개 놓고 애드온으로 하는것도 좀 그래서요...
그렇다고 모듈안에 집어넣게 되면 업데이트 시 문제가 있기에...
사용하시려는 분이 조금 공부하셔서 어떻게 사용할지를 결정하는게 좋다고 봐요. -
착한악마
2008.05.29 23:19
오호~~감사합니다..대단합니다..정말///ㅜ,.ㅜ
이렇게 감사할수가 제가 그렇게 바라고 질문/답변에 그토록 고심했던부분을 이렇게 감사이 만들어 주셔서 감사합니다.
역시 라르게덴님께 축복과 영광을 멋져부려~~~~~
이왕 하신것 많은시간 안드신다면 애드원으로 만드시면 어떨까요 작지만 크게쓸수도 있으니깐요~~
너무 무리한 부탁이 아니시다면요 저도 지금 이 소스로 수정중입니다..^^ -
老姜君
2008.05.29 23:27
제가 실력이 없어서 그렇겠지만 여전히 모르겠습니다 =_=a 일단 위에 나온걸 다 해본 상태에서.
{@$oDivision = &getModel('document')}
다음글 {$oDivision->getDocumentDivision($oDocument->document_srl,'next','list_order')}
이전글 {$oDivision->getDocumentDivision($oDocument->document_srl,'prev'+ '+ ','list_order')}
를 zbxe/modules/board/skins/스킨이름/list.html의 원하는 위치에 넣었지만 이전글 뒤에 이전글의 숫자만 나오고 별다른 변화는 없습니다.
그리고 함수 몇개 놓고 애드온으로 하는것도 좀 그렇다고 말씀하시면, 자바스크립트 하나 넣고 애드온으로 만든 저는 매우 쪽팔립니다(...) -
라르게덴
2008.05.29 23:53
그 숫자가 documenr_srl 번호 입니다.
그리고 list.html에는 document_srl(문서의 번호) 가 정의 되어있지 않기 때문에 이전글 다음글에는 적당하지 않다고 보고요.
view_document.html에
{@$oDivision = &getModel('document')}
<a href="{getUrl('document_srl',$oDivision->getDocumentDivision($oDocument->document_srl,'next','list_order'), 'listStyle', $listStyle, 'cpage','')}">이전글</a>
<a href="{getUrl('document_srl',$oDivision->getDocumentDivision($oDocument->document_srl,'prev','list_order'), 'listStyle', $listStyle, 'cpage'+ '+ ','')}">다음글</a>
이렇게 쓰시면 되겠네요....
그리고 하다보니 next가 이전글이 되어버렸네요.. 이게 다음글 이라고 칭해야할까요?? ^^a
애드온으로 만들면 결국 배포해야하는데 그럴려면 제대로 만들 필요성이 있죠... 저도 도움을 줄까하는 차원에서 한건데 본격적으로 해보라하심은... ㅠㅠ -
착한악마
2008.05.29 23:43
헉 수정했는데 list.htm에 소스 넣었는데
{@$oDivision = &getModel('document')}
<a href="{$oDivision->getDocumentDivision($oDocument->document_srl,'next','list_order')}">다음글</a>
<a href="{$oDivision->getDocumentDivision($oDocument->document_srl,'prev','list_order')}">이전글</a>
했는데 클릭하면 162번 게시물로 가버리네요 다음글 버튼도 이전글 버튼도 ...
비극적이군요...이번엔 뭘잘못했지/ㅡ./ㅡ;;;; -
guny
2008.05.29 23:49
음...이거 되나요?
next만 글번호 제대로 가져오는것 같은데요..... -
라르게덴
2008.05.30 00:01
제가 실수를 했었네요 ^^ 위에 함수 소스 다시 적용해보세요 -
착한악마
2008.05.29 23:54
ㅜ,.ㅜ이전글은 되는데 다음글은 맨마지막글로 가버리네요.....
-
라르게덴
2008.05.30 00:00
죄송합니다. 소스 상에서 제가 실수한게 있었네요 ^^ 다시 위에 함수 소스 받아서 해보세요 ^^ -
착한악마
2008.05.30 00:15
ㅡㅡ;;;이젠 전혀 반응이 없네요 뭐지 제가 잘못적용했나요~~~ㅜ,.ㅜ;;; -
라르게덴
2008.05.30 00:17
아마도 초반에 제가 소스에 적은
$output = executeQuery("addons.anime_tools.getNextDivision", $args); 이거 때문에 그런게 아닐까요? ^^
addons.anime_tools => document 로 되어있는지 보세요 ^^ -
착한악마
2008.05.30 00:19
ㅎㅎㅎㅎ 이젠 잘됩니다.....굿~~~~~~~~~~~~~~~~~~~~좋습니다. 이토록 눈물나고 고마워 보긴 처음 이네요 ㅎㅎㅎㅎ 감사합니다... -
guny
2008.05.30 00:32
이제 잘 되네요..수고하셧습니다.
약간한 기능상 업그레이드가 있었으면 합니다...
1. 게시판 운영중 공지를 쓴 경우.....상단에만 공지가 출력되지만 다음글 이전글에는 순서로 출력됩니다..공지사항 배제..
2. 이전글, 다음글이 없을시.....이전글 혹은 다음글 표시가 안되게....
이러면 완벽할것 같은데 말입니다.... -
오뚝이
2008.05.30 09:44
좋은팁 정말 감사하구요...
너무너무 잘쓰겠읍니다....^^; 아주 잘되구요..나름 위처럼 버튼으로 수정했답니다...
zbxe/common/lang/ko.lang.php 파일에서 아래 붉은색추가하고
// 기본적으로 사용되는 action 언어
$lang->cmd_write = '쓰기';
$lang->cmd_reply = '답글';
$lang->cmd_delete = '삭제';
$lang->cmd_modify = '수정';
$lang->cmd_edit = '편집';
$lang->cmd_view = '보기';
$lang->cmd_view_all = '전체 보기';
$lang->cmd_list = '목록';
$lang->cmd_prev = '이전글';
$lang->cmd_next = '다음글';
zbxe/modules/board/skins/xe_board/view_document.html 파일에서 아래 붉은색부분을 추가하니
버튼식으로 이쁘게 되는군요 ...^^;
<!-- 목록, 수정/삭제 버튼 -->
<div class="contentButton">
{@$oDivision = &getModel('document')}
<a href="{getUrl('document_srl'+ '+ ',$oDivision->getDocumentDivision($oDocument->document_srl,'next','list_order'), 'listStyle', $listStyle, 'cpage','')}" class="button"><span>{$lang->cmd_prev}</span></a>
<a href="{getUrl('document_srl',$oDivision->getDocumentDivision($oDocument->document_srl,'prev','list_order'), 'listStyle', $listStyle, 'cpage','')}" class="button"><span>{$lang->cmd_next}</span></a>
<!--@if($module_info->default_style != 'blog')-->
<a href="{getUrl('document_srl','')}" class="button"><span>{$lang->cmd_list}</span></a>
<!--@end-->
<!--@if($oDocument->isEditable())-->
<a href="{getUrl('act','dispBoardWrite','document_srl',$oDocument->document_srl,'comment_srl','')}" class="button"><span>{$lang->cmd_modify}</span></a>
<a href="{getUrl('act','dispBoardDelete','document_srl',$oDocument->document_srl,'comment_srl','')}" class="button"><span>{$lang->cmd_delete}</span></a>
<!--@end-->
</div> -
팔공산
2008.05.31 10:30
빨간색 부분처럼 해 보니 버턴 클릭시 작동이 잘 되질 않아서
老姜君님의 팁을 응용해서 아래와 같이 해 보니 잘 됩니다.
{@$oDivision = &getModel('document')}
{@$nextdocu = $oDivision->getDocumentDivision($oDocument->document_srl,'next','list_order')}
{@$prevdocu = $oDivision->getDocumentDivision($oDocument->document_srl,'prev','list_order')}
<!--@if($nextdocu->document_srl == "")--><!--@else--><a href="{$nextdocu->document_srl}" class="button"><span>{$lang->cmd_prev}</span></a><!--@end-->
<!--@if($prevdocu->document_srl == "")--><!--@else--><a href="{$prevdocu->document_srl}"class="button"><span>{$lang->cmd_next}</span></a><!--@end--> -
老姜君
2008.05.30 11:12
다른말 할것 없고 아싸조쿠나입니다. 오뚝이님에게도 감사드립니다.
하지만 흔치 않은 기회를 잡은김에 더 뻔뻔해져서 질문을 드립니다(...) 물에 빠진놈 건져냈더니 보따리 내놓으라는 걸로 보이지만 말입니다.
예전에 제로보드4에서처럼.
이전글 : 이전글 제목 [이전글 코멘트 수] -이전글 글쓴이
다음글 : 다음글 제목 [다음글 코멘트 수] -다음글 글쓴이
처럼 나오게 할 방법은 없을까요? 현재 소스는 글 주소만 뽑아낼 수 있는것처럼 보입니다. -
라르게덴
2008.05.30 12:11
if($output->data) {
$data = array_pop($output->data);
$division_document = $data->document_srl;
--수정--
$division_document->document_srl = $data->document_srl;
$division_document->title = $data->title;
$division_document->nick_name = $data->nick_name;
.... 등등
}
return $division_document;
}
여기에 저 빨간 글자를 수정해주시면 됩니다.
Query상으로는 그 게시물 번호의 전체를 뽑아오기 때문에...
그리고 불러올때 좀 틀려집니다.
{@$oDivision = &getModel('document')}
{@$원하시는변수명 = $oDivision->getDocumentDivision($oDocument->document_srl,'next','list_order')}
{$원하시는변수명->document_srl}
{$원하시는변수명->title} 등등.... -
老姜君
2008.05.30 13:31
$division_document = $data->document_srl;
일때는 제대로 작동하는데,
$division_document->document_srl = $data->document_srl;
로 바꾸니까 화면이 아예 뜨지 않습니다? php 오류가 날때 화면이 뜨지 않는 경우가 있던데...
아마 다른 곳에도 수정을 더 해야 하는게 아닌가 생각됩니다. ...이거 너무 귀찮게 해드려서 정말 죄송합니다 =_=a -
라르게덴
2008.05.30 14:28
ㅠㅠ
{@$oDivision = &getModel('document')}
{@$원하시는변수명 = $oDivision->getDocumentDivision($oDocument->document_srl,'next','list_order')}
{$원하시는변수명->document_srl}
{$원하시는변수명->title} 등등....
불러올때도 바꿔야 합니다. 소스만 바꾸시고 불러오는 곳에서 안바꾸시면 당연히 php오류로써 흰화면만 나오지요...
그리고 기타 궁금 사항은 쪽지 주시면 제가 특별히(?) 봐드릴게요 ^^ -
老姜君
2008.05.30 19:01
딱 한가지만 더 말씀드리겠습니다.
정말 감사합니다 -_-/ -
미령전설
2008.05.30 23:20
정말 감사하다는 말씀밖에 드릴 말씀이 없습니다!!!!!!!!!
최고십니다!!
정말 감사요 ㅠ.ㅠ -
한이73
2009.05.03 21:32
감사합니다.
잘안돼더니 몇달만에 다시 처음부터 차근히 해보니 되네요..
-
궁금궁금궁금이
2012.11.03 22:21
모바일에서 아래 목록이 보이지 않아 이전 다음글을 연속적으로 보고 싶어하는 사용자들이 있으나
개인적으로 모디파이 및 구현하기 힘들어 CMD 님께 제작의뢰 드려 만들게 되었습니다. ( http://www.xpressengine.com/agent/21286701 )
수고해주신 CMD님 감사합니다.
배포하오니 필요하신분께 요긴히 사용되길 바랍니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
이전글, 다음글 얻기 [25] | 라르게덴 | 2008.05.29 |
에디터입력창 배경색상(이미지) 변경해보기 [5] [1] | 팔공산 | 2008.07.13 |
SocialXE 설치후 트위터, 페이스북 접속 안될경우??? [9] | 착한부산남자 | 2012.09.28 |
bodex 추천 & 댓글 버튼 만들기. [1] | meanie | 2012.10.28 |
게시판확장변수를 이미지로 나타내게 게시판스킨 수정법 [3] | 팔공산 | 2010.03.10 |
닉네임 변경시 기존 게시물 연동 팁 (레벨 아이콘 에드온 이용) [9] | 바붕아 | 2012.10.23 |
Zbxe 서버 이전하기 [4] | 팔공산 | 2007.08.22 |
약관 동의 후 가입하기 [2] | findwind | 2008.11.24 |
로그인 안되시는분들 참고 [8] | 화니478 | 2007.08.14 |
[XE 1.4] 모듈 개발 시 유의해야할 템플릿 버그 | 퍼니엑스이 | 2012.10.24 |
XE 1.5.3.1hotfix1에서 Content widget이 정상작동 하지 않을때 [3] | 황비 | 2012.08.29 |
메인화면에 설문조사 위젯(?) 만들기 [3] | 3D매니아 | 2010.12.14 |
팝업관리 모듈(팝업 오프너 ver. 0.0.4 )에 사용되는 addon/pop_up [25] | ForHanbi | 2011.08.21 |
알렉사 순위 가져오는 스크립트;; [30] | zero | 2001.11.06 |
FTP 쉬운설치 에러나시는분들 [4] | 조양각 | 2012.01.05 |
스케치북 게시판 스킨 사용시 확장변수 라인 CSS수정 | 해피보이 | 2012.10.17 |
운영하던 사이트의 도메인 주소를 변경했을때 기존 사이트의 이미지들이 엑박이 뜰때 해결방법 [4] | 졸라맨 | 2012.03.05 |
클립보드로 텍스트 복사하기 [5] | 베니 | 2007.11.24 |
Google Analytics Addon 자료 최신 XE 에서 작동시키는 방법 [4] | sejin7940 | 2012.10.05 |
크롭에 웹폰트 적용하기 css | 꿈틀잉 | 2012.10.07 |
애드온으로 주시지 ..... 어떻게 하는지 모르겠군요 .....