웹마스터 팁
게시판 최초 정렬을 사용자정의(확장변수) 기준으로 설정 가능하게 하는 방법
2014.01.20 19:03
원본출처 : http://sejin7940.co.kr/index.php?mid=xe_tips&document_srl=98103
----------------------------
이번엔 조금 어려운 팁인데 유용한 팁일꺼예요.
꼭 수정되어야하는 부분이라 보기에, 추후에 Board 모듈 자체에 포함되리라 조심스레 예상합니다 ^^;;
(사실 Github 에 올렸다가 코드가 다 사라져서, 링크를 이 쪽으로 연결해둘려고 여기 쓰는거예요 ^^)
게시판 확장변수 기준으로 정렬하는 기능이 과거 XE 1.4 때에는 아예 없었고 (스킨에서 배열형태로 처리했었죠 ^^;)
XE 1.5 에서인지 1.7 에서인지 에서 기능 자체가 추가되긴했는데..
사실 이 추가된 정렬기능에 버그가 하나 있고 ^^; ( XE 1.7.4 에서 패치될 예정입니다)
http://www.xpressengine.com/index.php?mid=tip&document_srl=22479901 를 참고해서 수정하시면 됩니다.
이 구현되어있는 정렬기능도
게시판 목록 상단부분의 사용자정의(확장변수)명을 클릭함으로서 정렬 기준을 바꿀 수 있을뿐
<< 처음 게시판 접근시부터 사용자정의(확장변수) 기준의 정렬은 불가능합니다 >>
이 부분이 정렬기능에 관해 의외로 굉장히 큰 한계를 만들기에..
게시판변로 생성한 사용자정의를 기준으로 정렬기능을 설정할 수 있는 방법을 알려드리면...
1. board/tpl/board_insert.html
<option loop="$order_target=> $key, $val" value="{$key}" selected="selected"|cond="$module_info->order_target== $key">{$val}</option>
아래에다가 추가
// sejin7940 추가 ( 확장변수 기준 정렬 기능 )
{@
$oDocumentModel = &getModel('document');
$inserted_extra_vars = $oDocumentModel->getExtraKeys($module_srl);
}
<option loop="$inserted_extra_vars => $key, $val" selected="selected"|cond="$module_info->order_target== $val->eid" value="{$val->eid}">{$val->name}</option>
2. board/board.admin.controller.php 에서
function procBoardAdminInsertBoard 함수에서
if(!in_array($args->order_target,$this->order_target)) $args->order_target = 'list_order';
위에다가 추가
// sejin7940 추가 ( 확장변수 기준 정렬 기능 )
if($args->module_srl) {
$oDocumentModel = &getModel('document');
$extra_keys = $oDocumentModel->getExtraKeys($args->module_srl);
if (is_array($extra_keys)){
foreach($extra_keys as $val){
$this->order_target[] = $val->eid;
}
}
}
=== 이 부분 소스를 조금 바꿉니다 (140416) ====
3. modules/board/board.view.php 에서
function dispBoardContentList() 함수에서
if(!in_array($args->order_type, array('asc','desc'))) 위에다가 추가
// sejin7940 추가 ( 확장변수 기준 정렬 기능 )
if(!Context::get('sort_index') && $extra_keys) {
foreach($extra_keys as $key => $val) {
$order_target_extra[] = $val->eid;
}
if(in_array($this->module_info->order_target, $order_target_extra)) {
Context::set('sort_index',$this->module_info->order_target);
}
}
댓글 8
제목 | 글쓴이 | 날짜 |
---|---|---|
짧은주소 사용시 긴주소 검색엔진 차단시키기 [10] | Volun | 2014.01.14 |
업로드 용량을 .htaccess 파일로 제어하기 [9] | 야옹이님 | 2014.01.15 |
정확한 계산기 소스입니다. [2] | 현탁 | 2014.01.15 |
XE 전체 타이틀(title) 수정하기 [3] | pezex | 2014.01.16 |
[10원팁] 스케치북 추천/비추천/신고를 눈에 들어오게 | socialskyo | 2014.01.17 |
관리자가 무제한 추천 가능하게 하는 방법 [2] | sejin7940 | 2014.01.17 |
룰셋 적용 팁 [1] | 루비스코 | 2014.01.20 |
게시판 설정의 게시판 정보 탭에서, 고급 항목이 항상 노출되도록 하는 방법 [3] | sejin7940 | 2014.01.20 |
메뉴추가가 안돼요. [2] | 궁굼자 | 2014.01.20 |
게시판 최초 정렬을 사용자정의(확장변수) 기준으로 설정 가능하게 하는 방법 [8] | sejin7940 | 2014.01.20 |
[jQuery] PNG투명 이미지 animate시 IE7,8 투명이미지 표현 문제. | 투니페이퍼 | 2014.01.21 |
썸네일 특정 파일로 불러오기 [18] | Lansi | 2014.01.21 |
Captcha 애드온 준회원만 적용하기 [2] | 라싸 | 2014.01.22 |
1.7.3.8 설치 후 위에 어드민바가 안 보이는 증상을 해결하는 방법. [2] | 야옹이님 | 2014.01.22 |
input 체크박스, 라디오버튼 테두리 제거 | 헤이즈디자인 | 2014.01.22 |
faq 묘듈 사용시 레이아웃을 깨는 css [3] | 착한악마 | 2014.01.23 |
xe_2009 게시판 스킨 사용시 브라우저 타이틀 지우기 | 착한악마 | 2014.01.23 |
부트스트랩 기초 지식 강의 | 돼지코구뇽 | 2014.01.24 |
사이트맵에서 메뉴 생성할때 메뉴 추가 항목에 해당 모듈이 바로 연결되도록 [2] | sejin7940 | 2014.01.25 |
일반회원도 embed 태그 사용하는 방법! (다음/티스토리/구글드라이브 등) 가장 최근코어버전 해결완료!! [9] | 주택바가지 | 2014.01.27 |