XE Tip
xpressengine.com에서 제가 필요해 가져온 XE TIp들입니다.
BGM설치팁
글 수 186
2010.08
28
| 원작자 | June Oh |
|---|---|
| 출처 | ![]() |
| XE 적용시점 버전 : | 1.4.3.1 |
[공지사항]
아래와 같이 적용을 하면 확장변수로 정렬은 됩니다.
그런데 게시판에서 약간의 문제를 야기하는군요.
특히 문하우스게시판에 적용을 하면 다음/이전글에서 문제를 일으킵니다.
XE사이트의 팁에 있는 내용을 기본으로 제가 변형해서 작성합니다.
1. skin.xml편집 -- 아래 소스를 추가합니다.
<group>
<title xml:lang="ko">확장변수 정렬</title>
<var name="extra_val_solt" type="select">
<title xml:lang="ko">확장변수로 정렬</title>
<options value="N">
<title xml:lang="ko">하지 않음</title>
</options>
<options value="Y">
<title xml:lang="ko">확장변수정렬</title>
</options>
</var>
<var name="extra_val_solt_name" type="text">
<title xml:lang="ko">확장변수 이름</title>
<description xml:lang="ko">정렬을 원하는 확장변수의 이름을 적어주세요</description>
</var>
</group>
<title xml:lang="ko">확장변수 정렬</title>
<var name="extra_val_solt" type="select">
<title xml:lang="ko">확장변수로 정렬</title>
<options value="N">
<title xml:lang="ko">하지 않음</title>
</options>
<options value="Y">
<title xml:lang="ko">확장변수정렬</title>
</options>
</var>
<var name="extra_val_solt_name" type="text">
<title xml:lang="ko">확장변수 이름</title>
<description xml:lang="ko">정렬을 원하는 확장변수의 이름을 적어주세요</description>
</var>
</group>
2. list.html 상단에 소스 추가합니다. (원본소스)
<!--@if($module_info->extra_val_solt!='N')-->
<!--@if(!$sort_index)-->
{@
$noticeTF = false;
if($module_info->except_notice == 'Y') $noticeTF = true;
$args->module_srl = $module_info->module_srl;
$args->list_count = $total_count;
$args->category_srl = $category;
$oDocumentModel = &getModel('document');
$output = $oDocumentModel->getDocumentList($args, $noticeTF);
$document_list = $output->data;
}
<!--@foreach($document_list as $no => $document)-->
{@
$extra_sortkey[$no] = $document->getExtraEidValue($module_info->extra_val_solt_name);
$extra_sortkey2[$no] = $no;
}
<!--@end-->
{@
array_multisort($extra_sortkey, $extra_sortkey2, $document_list);
if($module_info->order_type == 'asc' || $order_type == 'asc') $document_list = array_reverse($document_list);
}
<!--@if($document_srl)-->
<!--@foreach($document_list as $document)-->
{@
$extra_doc_srl[] = $document->document_srl;
}
<!--@end-->
{@
$page = ((int) (array_search($document_srl, $extra_doc_srl) / $module_info->list_count)) + 1;
}
<!--@end-->
{@
$document_list = array_slice($document_list, $module_info->list_count * ($page-1), $module_info->list_count, true);
}
<!--@end-->
<!--@end-->
<!--@if(!$sort_index)-->
{@
$noticeTF = false;
if($module_info->except_notice == 'Y') $noticeTF = true;
$args->module_srl = $module_info->module_srl;
$args->list_count = $total_count;
$args->category_srl = $category;
$oDocumentModel = &getModel('document');
$output = $oDocumentModel->getDocumentList($args, $noticeTF);
$document_list = $output->data;
}
<!--@foreach($document_list as $no => $document)-->
{@
$extra_sortkey[$no] = $document->getExtraEidValue($module_info->extra_val_solt_name);
$extra_sortkey2[$no] = $no;
}
<!--@end-->
{@
array_multisort($extra_sortkey, $extra_sortkey2, $document_list);
if($module_info->order_type == 'asc' || $order_type == 'asc') $document_list = array_reverse($document_list);
}
<!--@if($document_srl)-->
<!--@foreach($document_list as $document)-->
{@
$extra_doc_srl[] = $document->document_srl;
}
<!--@end-->
{@
$page = ((int) (array_search($document_srl, $extra_doc_srl) / $module_info->list_count)) + 1;
}
<!--@end-->
{@
$document_list = array_slice($document_list, $module_info->list_count * ($page-1), $module_info->list_count, true);
}
<!--@end-->
<!--@end-->
, true 이부분은 php4 이하버전을 사용하시는 경우는 지워주세요. 지우지 않으면 게시물이 출력되지 않습니다.
php5 이상버전 사용자는 그냥 두시면 됩니다.
3. 게시판형태 파일을 수정합니다. _style.list.html을 보기로 작업합니다.
[수정전]
<!--// 컨텐츠 종류에 따라서 출력 -->
<!--@if($val->type == 'no')-->
<td class="num"><!--@if($document_srl == $document->document_srl)--><img src="./images/common/iconArrowD8.gif" border="0" alt="" /><!--@else--> {$no} <!--@end--></td>
<!--@if($val->type == 'no')-->
<td class="num"><!--@if($document_srl == $document->document_srl)--><img src="./images/common/iconArrowD8.gif" border="0" alt="" /><!--@else--> {$no} <!--@end--></td>
[수정후]
<!--// 컨텐츠 종류에 따라서 출력 -->
<!--@if($val->type == 'no')-->
<td class="num"><!--@if($document_srl == $document->document_srl)--><img src="./images/common/iconArrowD8.gif" border="0" alt="" /><!--@else--><!--@if($module_info->extra_val_solt!='N')-->{@ $recno = ($no-$total_count)*(-1)}{$recno}<!--@else-->{$no}<!--@end--><!--@end--></td>
<!--@if($val->type == 'no')-->
<td class="num"><!--@if($document_srl == $document->document_srl)--><img src="./images/common/iconArrowD8.gif" border="0" alt="" /><!--@else--><!--@if($module_info->extra_val_solt!='N')-->{@ $recno = ($no-$total_count)*(-1)}{$recno}<!--@else-->{$no}<!--@end--><!--@end--></td>
위와 같이 수정하시고 스킨관리에 들어가서 아래 부분을 적용하시면 됩니다.

확장변수의 이름은 정렬을 원하는 확장변수의 이름을 적어주시면 됩니다.



자료실
MH 위젯스타일
문하우스 게시판스킨 V...
내용글 출력시 주소창에...
스케치북5 게시판스킨 ...
XE 1.5 이상의 버전 ...
shopXE 에서 배송지 ...
레이아웃 컨트롤 박스
SketchBook5 게시판스킨...
움직이는Gif 파일을 게...
화일첨부 디렉토리의 빈...





