웹마스터 팁
게시글 확장변수 순으로 정렬하기 (2010.01.18 13:18 수정)
2010.01.11 18:49
게시글을 특정 확장 변수 값 순으로 정렬합니다.
날짜 형식 확장 변수를 사용하실 때 유용합니다.
1. 사용하는 게시판 확장 변수 설정에서 정렬할 확장 변수 이름을 sortkey로 변경
2. 사용하는 게시판 skin의 list.html 최상위에 아래 code 추가
<!--@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('sortkey');
$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-->
댓글 24
-
토토
2010.01.12 07:31
-
June Oh
2010.01.12 07:37
몇가지 빠뜨린 부분이 있었네요. 수정했습니다. 다시 적용해보세요~
-
누리안
2010.01.12 10:14
오! 아주 멋진 기능이네요. 감사합니다.
헌데 그렇다면 sortkey 라는 이름을 가진 확장 변수 이외에 다른 변수는 정렬시킬 수 없는 것인가요?
다른 변수도 더 정렬할 수 있으면 더욱 좋을 것 같아요.
-
June Oh
2010.01.12 10:37
sortkey라는 이름은 예제를 위해 만든 임의의 이름이고, 물론 다른 변수로도 가능합니다.
다른 이름을 원하신다면 간단히 sortkey 부분을 다른 변수명으로 바꾸시거나,
혹은 사용자 마음데로 정렬할 수 있게 하려면 목록 등에서 매개 변수를 얻어올 수 있도록 수정해야 하는데,
그러기 위해서는 수정할 부분들이 여러모로 많아지고 범위가 넓어지므로 우선 생략했습니다.
-
June Oh
2010.01.12 10:34
내용 수정하였습니다. (확장 변수 정렬에서 제목순 등 게시판 정렬 명령 무시 현상 고침)
이전에 적용하신 분들은 새로 변경된 내용으로 다시 적용해주시길 바랍니다.
-
SMaker
2010.01.12 16:42
무척 유용한 팁이네요 ㅎㅎ
그런데 쿼리를 두 번 날려서 비효율적인 것 같네요.
XE Core에 들어가야 할텐데 말이죠.
-
June Oh
2010.01.13 13:51
그러게 말입니다. 어찌 보면 매우 기본적인 기능이라 생각할 수 있는데 말이죠.
헌데 DB에서 확장 변수는 게시글 목록과 따로 표가 갈리기 때문에...
정작 개발자분들 측에서 보면 더 힘든 일일지도 모르겠네요. ㅠㅠ
-
토토
2010.01.13 23:42
고쳐주신후 잘 쓰고 있습니다. 수고하셨습니다. 감사합니다.
-
klaist
2010.01.14 21:28
좋은팁이네요..
단, 번호 정렬이... 0번부터 카운트 됩니다.
만일 총 10개의 게시물중에 5개 항목씩 보기로 설정하면,1페이지는 게시물 번호가 0~4
2페이지는 게시물 번호가 0~1
출력됨.
전 특정 확장변수를 가진 게시글을 지정 회원에게만 보여주는 기능을 만들다가 위와 같은 문제 때문에 따로 카운트 했던 기억이 있네요..
그나저나 이런저런 버그가 있는 확장변수 이거..
지금처럼 엔진 업데이트때 마다 확장변수 문제는 매번 뒤로 밀려나있고, 업뎃 안되는 상태에서 이렇게 팁만 계속 나오다가 시간지나서 한번 업데이트 된다면..... 나중을 생각하면 살떨림...
그래도 난 오늘도 수정 -_-;; -
June Oh
2010.01.15 20:24
PHP 4 이하에서 문제가 생기는 구문이 있어 내용 수정했습니다.
-
쑤
2010.01.15 22:49
정말정말 바라던 기능입니다. 감사합니다. T-T
-
June Oh
2010.01.18 13:32
게시글 주소로 직접 접속시 page 계산이 안되던 문제 수정했습니다.
-
오뎅궁물
2010.01.20 12:52
저는 게시판에 업무진행일이라는 확장변수를 사용하고 있습니다.
필요한 부분을 이렇게 해결해 주셔서 덕분에 잘사용하고 있습니다. 감사합니다.
염치 없지만 실력이 딸려서 한가지더 부탁 드린다면 게시물 번호를 0~ 가 아닌 1부터 하고 오래된 것이 1번으로 되게 하려면 어떻게 해야 하는지요?
-
June Oh
2010.01.20 13:55
죄송합니다. 번호는 도와드릴 수 없네요... 혹 해결하신 다른 분이 있다면 댓글 부탁드립니다.
-
klaist
2010.01.24 00:10
게시물의 카운트를 역순으로 해야 합니다.
게시물의 총 갯수($total_count)를 받아서 역순으로 재카운트 시켜 출력하는 방법입니다.
[방법1] - 최근에 등록된 게시물 기준으로 5-4-3-2-1 순으로 출력을 원할 경우
위 팁을 적용한 스킨의 리스트 출력에 관련된 (예. _style.list.html) 파일을 열어서
{$no} 를 찾으신 후
{@ $recno = ($no-$total_count)*(-1)}{$recno} 으로 변경 하시기 바랍니다.이렇게 하시면 최근에 게시한 글이 제일 높은 번호를 가지게 됩니다.
[방법2] - 최근에 등록된 게시물 기준으로 1-2-3-4-5 순으로 출력을 원할 경우.
위 팁을 적용한 후의 목록번호 순서를 유지한체 0부터가 아닌 1부터 출력 되길 원하신다면
{$no} 를 찾으신 후
{$no+1} 으로 변경 하시기 바랍니다.문제가 발생한다면 댓글을...
-
오뎅궁물
2010.01.26 10:12
위 팁을 적용한 스킨의 리스트 출력에 관련된 (예. _style.list.html) 파일을 열어서
{$no} 를 찾으신 후
{@ $recno = ($no-$total_count)*(-1)}{$recno} 으로 변경 하시기 바랍니다.이렇게 하시면 최근에 게시한 글이 제일 높은 번호를 가지게 됩니다.
이부분 만을 적용해도 번호가 오래된 게시물부터 1~로 되고 잘 됩니다.
넘 감사드립니다.
-
이온디
2017.04.08 06:00
감사합니다. 그런데 공지사항이 있다거나
카테고리-하위카테고리 안에 공지사항이 있을 경우
이런 공지사항을 제외하거나 할 경우는 어떻게 하나요? -
이근우495
2010.02.12 13:39
아.. 원하던 기능인데요...
이걸... 날짜, 조회 수 처럼 해당 확장변수 제목을 클릭했을시에만 정렬하는 방법으로는 안될까요?
그리고... 그런 기능을 각각의 확장변수에 적용할 수 있었으면 좋겠습니다.
Board EX에는 해당기능이 적용되어 있는데... 스킨이 기본 스킨뿐이 없어서... 이러지도 저러지도 못하고 있네요 ㅠ.ㅠ
-
rihito
2010.04.14 11:03
검색에 문제가 있습니다.
위 소스 삽입 시 검색이 제대로 되지 않습니다.
어찌하여야 할까요??
-
flyanne
2010.06.29 10:39
아. 진짜 그렇네요 ㅠ
-
chohee
2010.08.16 17:55
1.4.3 에서 적용시켜보았는데, 안되네요...^^
정말 필요한 기능인데요..저만 그런건지요...
-
팔공산
2010.08.28 10:09
{@ $document_list = array_slice($document_list, $module_info->list_count * ($page-1), $module_info->list_count, true); } 위의 코드중 true로 된 부분이 php5.0.2부터 지원되는 부분이라서 php4이하 버전에서는 목록이 출력이 되지를 않는다고 SMaker님이 답변을 주셨는데 이 부분을 php4이하 버전에서도 정상적으로 되게끔 할려면 어떻게 수정을 해야 하나요. 그리고 이 코드를 삭제해도 출력은 되는데 목록수 조절이 안되고 한페이지에 전체 목록이 출력되네요. -
똑디
2010.12.06 13:01
게시판 Core 기능에 기본으로 들어가면 좋을듯한 내용입니다.^^ 멋지네요.
-
zhoto
2012.11.13 14:00
감사합니다.
아주 좋은 기능 잘 사용했습니다.
2가지 오류가 있어 겪었던 시행착오를 알려드립니다.
1. array_multisort($extra_sortkey, $extra_sortkey2, $document_list); 에서 $document_list가 NULL인 경우.
Warning: array_multisort() [function.array-multisort]: Argument #1 is expected to be
이 발생합니다.
위쪽에 한줄을 추가해주시면 됩니다.
if (count($document_list)>0)
2. 현재 소스에서는 검색에서 카테고리 검색만 지원됩니다.
확장변수 검색까지 지원이 필요하고,
검색어 UTF8 검사로 넘겨야 온전하게 검색어에 나타나고, 검색도 됩니다.
간단하게 4줄 정도 추가하시면 됩니다.
// $search_keyword 키워드가 UTF8인지 확인하고, 아니면 iconv 합니다.
if ( detectUTF8($search_keyword)==FALSE)
$search_keyword = iconv('euc-kr', 'utf-8', $search_keyword);.. 생략..
// getDocumentList()의 args에 검색 대상과 검색어를 넘겨줍니다.
$args->search_target = $search_target;
$args->search_keyword = $search_keyword;이렇게 하시면 한글이 들어간 검색도 잘 되실겁니다.
저는 카테고리 사용하지 않고 확장변수로 카테고리처럼 만들어쓰는데, 잘 되더군요.
화면도 깔끔해지고..
이제 확장변수 여러개를 한번에 검색하는 것을 도전해봐야 하는데..
어렵네요..
제목 | 글쓴이 | 날짜 |
---|---|---|
OpenSSL 웹에 직접 구축하기 [2] | 워리도꾸 | 2016.02.16 |
스케치북 갤러리 제목에 카테고리 추가하기. [1] | 보보2 | 2017.07.17 |
XE 공식(?) 버튼 삽입하기 [다들 알지도 모르겠네요,,] [77] [1] | 웹엔진 | 2011.02.28 |
글등록시 포인트차감으로 등록불가 설정시 개별설정이 아닌 전체 설정 기준으로만 사용할 경우는 적용 안 되는 버그 수정법 | sejin7940 | 2017.08.23 |
폰갭 자기 전화번호 추출 | 한꼬마 | 2017.08.14 |
폰갭 버전 업데이트 후 push 안되시는 분들께.. | 한꼬마 | 2017.08.09 |
포인트 적립 횟수 일별 제한하기 (게시글 및 댓글 작성시) | Redback | 2017.06.18 |
다음 우편번호 5자리 적용 [1] | 뒤늦게입문 | 2017.03.15 |
HTML, CSS 등 코드를 깔끔하게 정렬 [6] | 참치.k | 2013.01.11 |
SASS? CSS확장판 | 키큰아이 | 2017.05.09 |
사용자정의에서 URL형, email형, textarea 형등에서도 기본값 인식하게 하려면 | sejin7940 | 2017.04.25 |
비밀글에 대해서도 썸네일이미지는 출력되도록 하고 싶으면 | sejin7940 | 2017.04.12 |
제로보드 사용시 아이프레임의 크기를 내용에 따라 바꿔주는 스크립트 [7] | 쿨리안 | 2003.06.28 |
게시글 확장변수 순으로 정렬하기 (2010.01.18 13:18 수정) [24] | June Oh | 2010.01.11 |
인기글 [1] | kdp | 2015.05.07 |
[주옥시리즈]최신글,인기글 위젯에 댓글수 표기하기 [1] | socialskyo | 2013.10.01 |
.htaccess 파일 관련 팁(웹 사이트 퍼포먼스 향상 및 트래픽 절감 효과) [21] | 서시빈목 | 2013.10.22 |
압축 풀어 설치했던 XE를 git으로 변환하기 [6] | 기진곰 | 2015.02.25 |
반응형 기본 개념 | Ansi™ | 2017.02.27 |
[도로명주소 krzip] 1.7.4 이전 버전들에 이용하기 [3] | XE플스 | 2014.02.06 |
너무 필요한 기능이었는데 감사합니다. 변수대로 정렬하라는 지시를 어디서 하나요? 이 code 를 skin 의 list.html 에 넣으니까 아무것도 안뜨네요.