이온디
호스팅센터
웹디벨로퍼
프리랜서카페
스레드

- 본 애드온의 제목은 '게시판 확장변수 다중검색 애드온'입니다.

- 게시판을 아카이브 등의 목적으로 사용할 때 좋습니다.

- 초보 실력으로 만든 것이어서 많이 부족합니다. 변수의 개수가 많거나 게시량이 많은 경우 서버에 무리를 줄 수 있습니다. (다중검색 기능이 정말로 필요한 게시판에서만 사용하시기 바랍니다.)

- 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 단위로 움직임)

    3.png

  • 스킨 파일에서 서버에 따른 스크립트 변수 인식 오류 수정
  • 수정된 파일
    - 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)

 

  • 날짜 검색시 범위검색 적용 가능
    1.png
  • 수치 검색시에도 범위검색 적용 가능

    3.png

  • 애드온 설정 일부 추가
    : 검색창을 삽입할 위치의 클래스(class) 이름을 복수로 입력할 수 있으며, 앞선 순번에 따라 삽입 위치를 탐색하게 됨
    : 범위 검색을 적용할 확장변수의 사용자정의 이름(eid)를 임의로 입력할 수 있음

    6.png

  • 범위 검색 적용에 따라 스킨단 소스 구조에도 중요 수정이 있음
    (기존에 스킨을 만드셨더나 수정하셨던 분들께 양해 부탁드립니다ㅜ 앞으로는 버그만 잡고 구조변경은 없을 예정이므로 안정적으로 스킨을 개발하셔도 됩니다ㅠㅠ)

 

 

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
  • 스포어 웹호스팅

 

 

데모

 

 


내용을 입력하세요
0
댓글은 로그인 사용자만 작성 가능합니다. 로그인하기