이온디
3년 전
- 본 애드온의 제목은 '게시판 확장변수 다중검색 애드온'입니다.
- 게시판을 아카이브 등의 목적으로 사용할 때 좋습니다.
- 초보 실력으로 만든 것이어서 많이 부족합니다. 변수의 개수가 많거나 게시량이 많은 경우 서버에 무리를 줄 수 있습니다. (다중검색 기능이 정말로 필요한 게시판에서만 사용하시기 바랍니다.)
- 0.5.0 버전부터는 라이믹스 2.0 및 php 7.4 이상에서만 작동합니다.
- 라이믹스에서만 테스트해봤습니다. => 0.1.0 버전에서 XE 작동 확인
기본 기능
- 검…
- 본 애드온의 제목은 '게시판 확장변수 다중검색 애드온'입니다.
- 게시판을 아카이브 등의 목적으로 사용할 때 좋습니다.
- 초보 실력으로 만든 것이어서 많이 부족합니다. 변수의 개수가 많거나 게시량이 많은 경우 서버에 무리를 줄 수 있습니다. (다중검색 기능이 정말로 필요한 게시판에서만 사용하시기 바랍니다.)
- 0.5.0 버전부터는 라이믹스 2.0 및 php 7.4 이상에서만 작동합니다.
- 라이믹스에서만 테스트해봤습니다. => 0.1.0 버전에서 XE 작동 확인
기본 기능
- 검색애드온 설정을 통해 교차검색(AND)과 누적검색(OR)을 모두 사용할 수 있습니다.검색화면을 게시판 목록화면 원하는 곳 어디에나 삽입할 수 있습니다.다중선택 체크박스로 이뤄진 확장변수도 무리 없이 잘 검색됩니다.게시판의 기본검색(제목, 내용, 태그 등)과 연동해서 사용할 수 있습니다.(0.2.0부터)회원들의 서명(프로필)도 다중검색 기능에 통합했습니다.(0.2.0부터)연월일 형식의 변수와 수치로 이뤄진 변수에 범위검색(RANGE)을 적용할 수 있습니다.(0.3.0부터)
- 스킨코어에서 사용하는 확장변수 입력화면과 최대한 유사하게 디자인되어 있습니다.스케치북 스킨에 어울리는 검색창 스킨을 제공합니다. 아울러 XEDITION용 스킨도 사용할 수 있습니다.사용자가 자신만의 애드온 스킨을 편하게 디자인할 수 있습니다.기본 제공되는 스킨에서는 셀렉트 메뉴 형식의 확장변수가 라디오 형식으로 출력되도록 js로 처리했습니다. 셀렉트 메뉴 형식의 확장변수를 라디오 형식으로도 출력할 수 있는 옵션을 제공합니다.(0.2.0부터)
0.5.0 업데이트 (2022-04-17)
라이믹스의 애드온에서의 트리거 활용과 커스텀 쿼리를 이용하여 다중검색의 속도를 개선queries/getMaxAndMinValueWithinExtraVars.xml 만 남기고 나머지 xml 파일을 모두 삭제코드 정리
- 범위 검색의 경우 최소값과 최대값의 자릿수가 다른 경우에 대비해서 앞자리에 자동으로 숫자 '0'을 붙여주고 싶다면
- ap_extra_search.addon.php 파일의 341행 쯤에 아래 코드의 하이라이트된 부분을 넣어주면 됨?
340
341
342
343
344
345
346
347
$_v = Context::get('extra_vars'.$key.'-2');
if ( $extra_keys[$key]->type !== 'date' && (strlen($extra_keys[$key]->min) !== strlen($extra_keys[$key]->max)) )
{
$str_len = strlen($extra_keys[$key]->max);
$v = sprintf('%0' . $str_len . 'd', $v);
$_v = sprintf('%0' . $str_len . 'd', $_v);
}
$conditions .= ' (var_idx = ? AND value >= ? AND value <= ?)';
수정된 파일
- conf/info.xml (버전 정보 수정)
- ap_extra_search.addon.php (코드 개선 및 정리)
- queries 폴더 (쿼리 xml 파일 삭제)카테고리 중복 선택 가능
- 스킨으로 구현된 것은 아니지만 카테고리 중복 선택도 가능합니다.
- 주소 구현 사례 : 클릭해서 보시면 팁, 에디터, 템플릿 등의 카테고리에 소속된 문서들이 목록화된 것을 보실 수 있을 겁니다.
- 관련 내용이 여기 https://xetown.com/topics/1675320 에 있으니 주소 체계 부분(category_srls[]=17330&category_srls[]=12438&category_srls[]=13007)을 참고하시어 스킨 개발하실 때 참고하셔도 좋을 것 같습니다.
0.4.2 업데이트 (2021-04-03)
queries/getDocumentListWithExtraVarsEqual.xml에 해당했던 확장변수 형식 중 checjbox를 제외해서 검색결과 오류를 수정 (dreamlizer님)0.4.0의 마늘션님 팁을 문서번호가 담길 수 있도록 수정수정된 파일
- ap_extra_search.addon.php
0.4.1 업데이트 (2019-04-07)
데이터 범위 검색시, 모바일에서도 터치 이벤트를 이용해 커서 이동이 가능하게 함 (아스타님 요청)수정된 파일
- conf/info.xml (버전 정보 수정)
- js/data_range_search.js (터치 이벤트 추가)
0.4.0 업데이트 (2019-04-05)
(검색 결과에 해당하는 문서 목록 취득시) 모든 문서의 정보를 가져온 뒤 페이지에 따라 목록을 나눠주던 방식을 폐지하고, 순서를 바꿔서 페이지에 따라 목록을 나눠준 뒤 list_count만큼만 문서 정보를 가져오게 함으로써 목록의 로딩 속도를 개선함 (마늘션님)사용자정의 확장변수의 형식이 '라디오 버튼', '셀렉트 메뉴', '체크박스' 등일 경우 변수값의 검색 조건을 like에서 equal로 수정함으로써, 검색 결과의 오류를 방지하고 검색 속도도 개선함수정된 파일
- ap_extra_search.addon.php
- conf/info.xml (버전 정보 수정)
- queries/getDocumentListWithExtraVarsEqual.xml (새로 추가)
0.3.2 업데이트 (2019-01-09)
데이터 범위 검색에서 슬라이드의 커서 이동 단위를 사용자가 직접 입력해서 사용할 수 있도록 함(기본값은 10이며, 예컨대 1을 입력하면 슬라이드 커서가 1 단위로 움직임)
스킨 파일에서 서버에 따른 스크립트 변수 인식 오류 수정수정된 파일
- ap_extra_search.addon.php
- conf/info.xml
- js/data_range_search.js
- lang/lang.xml
- skins/sketchbook5/js/default.js
- skins/xedition/js/default.js
0.3.1 업데이트 (2018-07-11)
검색 쿼리에서 list_count를 없앰으로써 문서 누락을 방지함
(이 때문에 기존보다 로딩 시간 지연이 생길 수 있습니다. 문서량이 많은 게시판에서는 기존의 유료 모듈이나 위젯을 선택하시는 게 좋습니다^^)기본 스킨(sketchbook5, xedition)에서 필수항목 표시를 제거함
0.3.0 업데이트 (2018-07-10)
날짜 검색시 범위검색 적용 가능
수치 검색시에도 범위검색 적용 가능
애드온 설정 일부 추가
: 검색창을 삽입할 위치의 클래스(class) 이름을 복수로 입력할 수 있으며, 앞선 순번에 따라 삽입 위치를 탐색하게 됨
: 범위 검색을 적용할 확장변수의 사용자정의 이름(eid)를 임의로 입력할 수 있음
범위 검색 적용에 따라 스킨단 소스 구조에도 중요 수정이 있음
(기존에 스킨을 만드셨더나 수정하셨던 분들께 양해 부탁드립니다ㅜ 앞으로는 버그만 잡고 구조변경은 없을 예정이므로 안정적으로 스킨을 개발하셔도 됩니다ㅠㅠ)
0.2.0 업데이트 (2018-07-08)
기본검색(제목, 내용, 댓글, 태그 등)과 연동 가능회원 서명(프로필)검색 기능도 추가 (skyo님) ... 단, 회원수가 많은 경우 서버 부하를 유발할 수 있음셀렉트메뉴 형식 확장변수의 라디오버튼 형식 강제출력을 선택적 출력으로 변경 (루벤님)애드온 옵션 구조화애드온 버전업에 따라 스킨의 html, css, js 등 소스 파일도 수정다국어 언어팩을 스킨이 아니라 애드온 단위에서 바로 처리 ... (기존 사용자들은 스킨 폴더의 lang 폴더를 지우시는 게 좋겠습니다.)스킨에서 필수항목 별표 표시 삭제(검색 화면에서 필수항목 표기는 필요 없는 듯)
0.1.0 업데이트 (2018-06-28, 안정화 버전)
기본 설정이 교차검색(AND)이더라도 다중선택 체크박스는 자기 배열 내에서 누적검색(OR)이 가능하도록 함 (mospia님)(0.0.3 업데이트 이후 AND 검색일 때) 첫 번째 변수의 검색값을 주지 않고 두 번째 변수부터 검색을 시도했을 때 검색결과를 가져올 수 없는 치명적 버그 수정다중검색 구조를 쉽게 알아볼 수 있도록 애드온 파일에 최대한 친절한 한글 주석 입력XE에서도 잘 작동하는 것으로 확인
0.0.4 업데이트 (2018-06-27)
일부 애드온 위치를 못 잡는 문제 수정 (mospia님)
0.0.3 업데이트 (2018-06-27)
(AND 검색일 때) 교차검색 결과가 더 이상 없는 상황에서 추가로 검색 쿼리가 있을 경우, 검색결과가 새로 얻어지는 버그 수정
라이선스
기본적으로 GPL v2 라이선스를 준용합니다.
동작 설명
검색이 허용된 확장변수가 하나 이상 있을 경우 검색창 출력템플릿 핸들러 클래스를 통해 스킨 파일 불러들임스킨 파일의 html 코드를 원하는 위치에 삽입검색 결과를 $document_list 및 $page_navigation 변수에 반영하여 게시판 리스트로 뿌려줌
테스트 환경
크롬 66.0.3359.181 / IE 11.48.17134.0 / 엣지 42.17134.1.0라이믹스 2.0.20 / PHP 버전: 7.4스포어 웹호스팅
데모
미리보기 : https://dev.aporia.blog/board_fKje43
