웹마스터 팁


 라르게덴님의 이전글, 다음글 가져오는 소스를 봤는데 제가 코어를 건드리는걸 별로 안좋아해서

 그냥 제 방식대로 게시판 스킨에서 바로 쓸 수 있게 만들어봤습니다.


 필요하신 분은 쓰세요.


 * 발코딩이므로 코드해석하려고 하시면 정신건강에 해로우니 해석하려고 하지마세요.


{@$doc_count = count($document_list)}
	{@$z=0}
	<!--@foreach($document_list as $no => $document)-->
		{@ $doc_srl[$z] = $document->document_srl}
		<!--@if($document->document_srl == $oDocument->document_srl)-->
			{@ $now_z = $z }
		<!--@end-->
		{@$z++;}
	<!--@end-->

	<!--@if($now_z == 0 && $page > 1)-->

		{@
			$oModuleModel = &getModel('module');
			$module_srl_temp = $oModuleModel->getModuleSrlByMid($mid);

			if(is_array($module_srl_temp)) $module_srl = $module_srl_temp[0];
			else $module_srl = $module_srl_temp;

			$args->module_srl = $module_srl;
			$args->category_srl = $category_srl;
			$args->list_count = $module_info->list_count;
			$args->search_target = $search_target;
			$args->search_keyword = $search_keyword;
			$args->page = $page-1;
			$args->sort_index = $module_info->sort_index;
			$args->order_type = $module_info->order_type;

			$docList_output = executeQueryArray('document.getDocumentList', $args);
		}

		{@$x=0}
		<!--@foreach($docList_output->data as $doc)-->
			<!--@if($x == count($docList_output->data) - 1)-->
				{@ $beforeDoc = $doc->document_srl }
			<!--@end-->
			{@$x++;}
		<!--@end-->

		{@ $afterDoc = $doc_srl[$now_z+1] }

	<!--@else if($now_z == $doc_count - 1 && $page < $total_page)-->

		{@
			$oModuleModel = &getModel('module');
			$module_srl_temp = $oModuleModel->getModuleSrlByMid($mid);

			if(is_array($module_srl_temp)) $module_srl = $module_srl_temp[0];
			else $module_srl = $module_srl_temp;

			$args->module_srl = $module_srl;
			$args->category_srl = $category_srl;
			$args->list_count = $module_info->list_count;
			$args->search_target = $search_target;
			$args->search_keyword = $search_keyword;
			$args->page = $page+1;
			$args->sort_index = $module_info->sort_index;
			$args->order_type = $module_info->order_type;

			$docList_output = executeQueryArray('document.getDocumentList', $args);
		}

		{@$x=0}
		<!--@foreach($docList_output->data as $doc)-->
			<!--@if($x == 0)-->
				{@ $afterDoc = $doc->document_srl }
			<!--@end-->
			{@$x++;}
		<!--@end-->

		{@ $beforeDoc = $doc_srl[$now_z-1] }

	<!--@else-->

		{@ $beforeDoc = $doc_srl[$now_z-1]; $afterDoc = $doc_srl[$now_z+1]; }

	<!--@end-->

	<!--@if(!$beforeDoc)-->
		{@ $beforeDoc = $oDocument->document_srl }
	<!--@else if(!$afterDoc)-->
		{@ $afterDoc = $oDocument->document_srl }
	<!--@end-->



<a href="{getUrl('document_srl',$beforeDoc,'listStyle',$listStyle, 'cpage','', 'page', '')}">이전글</a>
<a href="{getUrl('document_srl',$afterDoc,'listStyle',$listStyle, 'cpage','', 'page', '')}">다음글</a>


$beforeDoc은 이전글

$afterDoc은 다음글

사용하실려면 윗처럼 getUrl 에서 page 값을 빈값('')처리 해줘야 합니다.




14.07.15

팁을 올리고 나서 생각보다 반응이 좋아서 코드를 약간 업데이트 해서 다시 올립니다. 참고 하시라고 주석도 조금 달아봤습니다.

많은 도움이 됬으면 합니다!


<!-- 이전글, 다음글 구하기 : s -->
{@$doc_count = count($document_list)}
{@$z=0}
<!--@foreach($document_list as $no => $document)-->
	{@ $doc_srl[$z] = $document->document_srl}
	<!--@if($document->document_srl == $oDocument->document_srl)-->
		{@ $now_z = $z }
	<!--@end-->
	{@$z++;}
<!--@end-->

<!-- 현재 글이 현제 페이지에서 첫번째 글이며, 현재 페이지가 1이 아닐 때 -->
<!-- 이전 페이지의 document_list를 가져와서 마지막 글의 document_srl을 구한다 -->
<!--@if($now_z == 0 && $page > 1)-->
	{@
		$oModuleModel = &getModel('module');
		$module_srl_temp = $oModuleModel->getModuleSrlByMid($mid);

		if(is_array($module_srl_temp)) $module_srl = $module_srl_temp[0];
		else $module_srl = $module_srl_temp;

		$args->module_srl = $module_srl;
		$args->category_srl = $category_srl;
		$args->list_count = $module_info->list_count;
		$args->search_target = $search_target;
		$args->search_keyword = $search_keyword;
		$args->page = $page-1;
		$args->sort_index = $module_info->sort_index;
		$args->order_type = $module_info->order_type;

		$docList_output = executeQueryArray('document.getDocumentList', $args);
	}

	{@$x=0}
	<!--@foreach($docList_output->data as $doc)-->
		<!--@if($x == count($docList_output->data) - 1)-->
			{@ $beforeDoc = $doc->document_srl }
		<!--@end-->
		{@$x++;}
	<!--@end-->
	{@ $afterDoc = $doc_srl[$now_z+1] }

<!-- 현재 글이 현제 페이지에서 가장 마지막 글이며, 현재 페이지가 마지막 페이지가 아닐 때 -->
<!-- 다음 페이지의 document_list를 가져와서 첫번째 글의 document_srl을 구한다 -->
<!--@else if($now_z == $doc_count - 1 && $page < $total_page)-->
	{@
		$oModuleModel = &getModel('module');
		$module_srl_temp = $oModuleModel->getModuleSrlByMid($mid);

		if(is_array($module_srl_temp)) $module_srl = $module_srl_temp[0];
		else $module_srl = $module_srl_temp;

		$args->module_srl = $module_srl;
		$args->category_srl = $category_srl;
		$args->list_count = $module_info->list_count;
		$args->search_target = $search_target;
		$args->search_keyword = $search_keyword;
		$args->page = $page+1;
		$args->sort_index = $module_info->sort_index;
		$args->order_type = $module_info->order_type;

		$docList_output = executeQueryArray('document.getDocumentList', $args);
	}

	{@$x=0}
	<!--@foreach($docList_output->data as $doc)-->
		<!-- 첫번째 글일 경우 -->
		<!--@if($x == 0)-->
			{@ $afterDoc = $doc->document_srl }
		<!--@end-->
		{@$x++;}
	<!--@end-->
	{@ $beforeDoc = $doc_srl[$now_z-1] }

<!-- 그 외 -->
<!--@else-->
	{@ $beforeDoc = $doc_srl[$now_z-1]; $afterDoc = $doc_srl[$now_z+1]; }
<!--@end-->

<!--@if($beforeDoc)-->
	{@ $beforeHref = getUrl('document_srl',$beforeDoc,'listStyle',$listStyle, 'cpage','', 'page', '') }
<!--@else-->
	{@ $beforeHref = "javascript:;" }
<!--@end-->

<!--@if($afterDoc)-->
	{@ $afterHref = getUrl('document_srl',$afterDoc,'listStyle',$listStyle, 'cpage','', 'page', '') }
<!--@else-->
	{@ $afterHref = "javascript:;" }
<!--@end-->

<!-- 이전글, 다음글 구하기 : e -->

<style>
	a#prevDocBtn, a#nextDocBtn { border: 1px solid green }
	a#prevDocBtn.disabled, a#nextDocBtn.disabled { border: 1px solid red; cursor: text }
</style>

<a href="{$beforeHref}" id="prevDocBtn" class="disabled"|cond="!$beforeDoc">이전글</a>
<a href="{$afterHref}" id="nextDocBtn" class="disabled"|cond="!$afterDoc">다음글</a>


이전글이 없거나 다음글이 없을 경우 자동으로 버튼이 disable 됩니다. 스타일화 하시려면 <style> 부분을 활용하시길^^;

 

제목 글쓴이 날짜
Windows 서버에서 XE 속도 대폭 개선 방법 [29] StyleRoot 2013.02.25
기본 url 을 공란으로 둔 경우 `잘못된 요청입니다' 메시지 [6] samsara 2013.02.24
출석부 소시랑 스킨 출석회원없을때 우측위젯이 아래로 떨어지는 현상 해결방법 [3] garnecia 2013.02.23
XE를 아주 간편하게 루트로 옮기기. [23] file LI-NA 2013.02.23
XE 그룹아이콘 레벨아이콘 아이콘샵 동시출력하기(모르는분들 있으까봐올립니다.) [1] 모앱 2013.02.22
XE 1.4.X 용 nginx rewrite rule 입니다! (xzet 1.4 기준) CM(OEZ) 2013.02.21
XE 1.5.X 용 nginx rewrite rule 입니다! CM(OEZ) 2013.02.21
[수정1차] XE 1.7.X 용 nginx rewrite rule 입니다! [15] CM(OEZ) 2013.02.21
스케치북5 글 관리자만 익명으로 보기 [3] taemin-ho 2013.02.19
Content (and확장) 위젯에서 추출대상 첨부이미지일 경우 카테고리명 및 이미지+제목 형식 섬네일 표시 못하는 문제 으흥 2013.02.17
팝업창 자동 사이즈 조절 js Alex 2013.02.17
방명록 모듈 1.5.1.1에서 비회원이 남긴글 삭제하기 조슈아킴 2013.02.14
이미디오 (이미지->동영상) 기능을 적용해보자. [8] file asterisk 2013.02.12
흥미로운 AND, OR 조건문 엘카 2013.02.10
ShopXE 상품 첨부 - 상품이미지 등록시 첨부 용량 초과 에러 수정 hhgyu 2013.02.05
[SocialXE] 트위터 로그인시 프로필 사진이 표시되지 않는 문제 해결하기 [3] file TUW 2013.02.03
문서에서 원하는 썸네일 뽑아오기. [16] Xiso 2013.02.01
NAVER Analytics 모듈 1.5.4.X 에서 사용하기 hhgyu 2013.01.30
소스 수정할 때, utf-8로 한글 적는 방법. $lang 때문에 애먹는 분들에게 드리는 초간단 팁... utf-8 <-> euc-kr 변환방법 [2] 최르토스 2013.01.30
이전글, 다음글 코어 건드리지 않고 사용하기 (모듈X, 애드온X) (업데이트) [8] 시니시즘 2013.01.26