웹마스터 팁

 게시판 정렬 순서를 알바트로스 버젼에서 구현해 주셨습니다.

아랫글 내용 중 board.view.php에 대한 내용은 필요가 없겠습니다.
스킨의 list.html에 대한 수정 내용은
역순으로 출력할 경우 번호가 1부터 나오도록 할 경우에 적용할 수 있겠습니다.
될 때까지 하다 보니 코딩이 좀 복잡해진 것 같습니다..

[꼭 반영되길 바라는 마음으로 동일한 내용을 여기저기에 올려 놓았습니다. 양해해 주시길 바랍니다.]

예전부터 이런 제안을 했는데 알바트로스에서도 반영이 안되어 있더군요..
이 기능 때문에 모듈 php를 수정해야 한다는게 조금 답답합니다.

board 모듈의 board.view.php 파일에서 두세줄만 추가하고 수정해서 배포해주시면 안될까요?
function init() 이 함수에
             $this->order_type = $this->module_info->order_type?$this->module_info->order_type:asc;
이 한줄 추가하고

 function dispBoardContent()  이 함수에서
            // 스킨에서 설정한 기본 정렬 대상을 구함
            if(!$args->sort_index) {
                switch($this->module_info->order_target) {
                    case "updated" :
                            $args->sort_index = "update_order";
                            $args->order_type = "asc";
                        break;
                    default :
                            $args->sort_index = "list_order";
                            $args->order_type = "asc";
                        break;
                }
            }
     이 부분에서  "asc"를 $this->order_type 로 바꿔주시고

            Context::set('order-type', $output->order-type);

     이 한줄만 추가해주시면

스킨에서 정렬 순서를 오름차순과 내림차순을 선택해서 사용할 수 있겠는데
위에서 언급한 부분이 없어서 모듈을 수정해야만 합니다.
모듈을 수정해서 쓰면 업그레이드 할 때마다 저 부분을 고쳐주어야만 합니다.
어쩌다 쓰는 모듈도 아니고 사이트에 없어서는 안될 필수적이 게시판 모듈을
매번 고쳐서 쓸수도 없고....

배포전에 위에서 설명한 부분을 포함시켜 주시면 대단히 감사하겠습니다.

이러한 옵션이 필요한 이유는 게시판의 성격이 새로운 글들이 누적되는 형태가 아닌
레코드 수가 한정적일 때가 있다는 것입니다.
예를 들면
http://www.hanmoon.kr/lib1000
이 게시판은 천자문 게시판인데
천자문은 분량이 한정되어 있지요..
천지현황 우주홍황에서부터 위어조자 언재호야까지 125개의 연으로 되어있지요..
일반적인 게시판을 그대로 쓰면 천지현황부터 입력하면 언재호야 부터 게시판에 보이게 되겠지요..
천지현황 우주홍황부터 보이게 하려면 위어조자 언재호야부터 입력해야합니다.
그렇게도 할 수 있지만.. 다른 경전이나 교육 내용을 모두 입력 완료한 다음에 공개할 수 도 없는 노릇이고..
어떻게든 처음 입력한 내용이 처음 나오는 형태로 게시판에 보여 주고 싶습니다.

그래서  board.view.php 파일을 위와 같이 수정하고
스킨의 list.html을 아래와 같이 수정했습니다.
리스트의 thead부분에서 order type부분을 클릭했을 때 바꿔주는 부분을 
            <!--@if(!$order_type)-->
              <!--@if($module_info->order_type == "asc")-->
                {@ $order_type = "desc" }
              <!--@else-->
                {@ $order_type = "asc" }
              <!--@end-->
            <!--@end-->
            <!--@if($order_type == "desc")-->
                {@ $order_icon = "buttonDescending.gif" }
                {@ $order_type = "asc"; }
            <!--@else-->
                {@ $order_icon = "buttonAscending.gif" }
                {@ $order_type = "desc"; }
            <!--@end-->
이렇게 수정하고..
no가 출력되는 부분을 head 부분은
            <!--@if($module_info->display_number!='N')--><th scope="col" class="num"><a href="{getUrl('sort_index','regdate','order_type',$order_type )}">{$lang->no}<img src="/images/common/{$order_icon}" alt="" width="5" height="3" class="sort" /></a></th><!--@end-->
리스트 부분은
           <!--@if($module_info->display_number!='N')--><td class="num"><!--@if($document_srl == $document->document_srl)--><img src="/images/common/iconArrowD8.gif" border="0" alt="" /><!--@else--><!--@if($order_type == "asc")-->{$no}<!--@else-->{$total_count - $no + 1}<!--@end--><!--@end--></td><!--@end-->
이렇게 고쳐서 스킨을 만들었습니다.
역순 정렬되면 no의 일련번호도 1번부터 나오도록 고친 것이지요..

그리고 skin.xml의 확장변수에서 이것을 추가했습니다.
    <var name="order_type" type="select">
        <title xml:lang="ko">정렬 순서</title>
        <type>select</type>
        <description xml:lang="ko">정렬 순서 선택.</description>
        <default>desc</default>
        <default>asc</default>
    </var>
 
이렇게 스킨수준에서 정렬순서를 설정할 수 있도록 모듈 board.view.php 파일을 수정해서 배포해 주시면 대단히 감하사겠습니다.
제로보드 공식사이트에 팁게시판에 올릴 성격의 글을 이렇게 올린 이유는
가능하면 꼭 반영해 주시기를 바라는 마음에서 입니다.
모듈 파일의 변형이 개발하시는 의도나 구조 문제에 별다른 문제가 없으시다면 반영해 주시기 바랍니다.