[공지사항]
아래와 같이 적용을 하면 확장변수로 정렬은 됩니다.
그런데 게시판에서 약간의 문제를 야기하는군요.
특히 문하우스게시판에 적용을 하면 다음/이전글에서 문제를 일으킵니다.
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>
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-->
, 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--><!--@if($module_info->extra_val_solt!='N')-->{@ $recno = ($no-$total_count)*(-1)}{$recno}<!--@else-->{$no}<!--@end--><!--@end--></td>
위와 같이 수정하시고 스킨관리에 들어가서 아래 부분을 적용하시면 됩니다.

확장변수의 이름은 정렬을 원하는 확장변수의 이름을 적어주시면 됩니다.
Tip이 도움이 되었다면 댓글과 평가 부탁합니다.
Tip에 대한 궁금한 점은 댓글로 남겨 주시면 성심껏 답변 드립니다.


원소스에 있는 아래의 부분이 php4이하 버전 호스팅에서 문제를 일으키는 것 같습니다.
{@
$document_list = array_slice($document_list, $module_info->list_count * ($page-1), $module_info->list_count, true);
}
그런데 , true 이코드를 삭제하니 작동은 되는데 게시판 목록번호가 페이지를 넘겨도 같은 번호로 나열됩니다.
이레저레 php4이하에서는 문제를 야기합니다.