웹마스터 팁


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

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


 필요하신 분은 쓰세요.


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


{@$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> 부분을 활용하시길^^;

 

제목 글쓴이 날짜
회원정보 수정 위해 비밀번호 재입력 후 튕기는 경우 [2] sejin7940 2013.01.06
제로보드에 관하여.. [3] 검정고내 2013.01.07
기본게시판에서 익명 선택하여 "게시글, 댓글" 작성이 가능하도록 세팅하기(sketchbook5 기준) [15] Ashon 2013.01.08
모바일 페이지모듈에서 스킨 설정안 되는 버그 수정법 [2] sejin7940 2013.01.08
회원 정보에 내 포인트 현황 출력하기 [3] file 화랑529 2013.01.08
xe_default 게시판 추천/비추천 색상 변경하기 file 화랑529 2013.01.08
네이버 검색 API XE하고 연동하기 [3] mindpainter 2013.01.09
HTML, CSS 등 코드를 깔끔하게 정렬 [6] file 참치.k 2013.01.11
1.5.4 업데이트 후 글 등록 무응답 상태 발생하는 경우 [2] 멀티비타민 2013.01.13
PHP 업데이트후 Strict Standards 에러로 XE 사용불가능할경우 [6] 데벨 2013.01.13
Startssl 무료인증서 백업 복구 성공기!! [2] 제이엔지 2013.01.15
서버는 euc-kr, DB는 utf-8일때 백슬래시(backslash) 표기되는 증상 [2] file 곰고긔 2013.01.16
[애드온]글 , 댓글 삭제시 휴지통으로 보내기 [13] file 민채아빠 2013.01.16
[애드온]게시글 공지 쉽게 내리기 [12] file 민채아빠 2013.01.17
[고급] 내 XE 모듈에 editor 삽입하기 [8] 개발해보쟈 2013.01.22
모바일 게시판에서 메인으로 튕기는 현상때문에 헛고생했던... [3] file 샤로우 2013.01.23
[Social XE] Social XE 댓글위젯에 SNS 전송 옵션 체크박스 추가하기 [14] file TUW 2013.01.24
TEXTYLE 파일 업로드 안되는 분들 참고하시기 바랍니다. 사자쭈꾸미 2013.01.24
TEXTYLE 카테고리 안 보이는 분들 참고하세요 사자쭈꾸미 2013.01.24
이전글, 다음글 코어 건드리지 않고 사용하기 (모듈X, 애드온X) (업데이트) [8] 시니시즘 2013.01.26