내정보

Guest 님
보유포인트
0
  • 재구매 할인
    30%
  • 컨텐츠 환불
    100%
  • 평점 포인트
    10%
  • 포인트 자동책정
    0%
콘텐츠 수 300

게시판 확장변수 다중검색 애드온

최초 등록일: 2018.06.26 조회수 : 2087

무료

4.9점 / 총 21명 참여
  • 구매자 155
  • 소개 게시판에서 확장변수를 읽어들여 다중검색 기능으로 확장시켜줍니다. 
  • 설치경로 ./addons/ap_extra_search 
  • 지원환경 XpressEngine,Rhymix 
  • 라이선스 기타 라이선스 (본문 기재) 
  • 분류 애드온
  • 제작자 윤삼
  • 다운로드
    ap_extra_search.0.0.2.zip 7.36KB (잔여일 : -, 잔여횟수 : -)
    ap_extra_search.0.0.3.zip 7.42KB (잔여일 : -, 잔여횟수 : -)
    ap_extra_search.0.0.4.zip 7.42KB (잔여일 : -, 잔여횟수 : -)
    ap_extra_search.0.1.0.zip 8.84KB (잔여일 : -, 잔여횟수 : -)
    ap_extra_search.0.2.0.zip 12.06KB (잔여일 : -, 잔여횟수 : -)
    ap_extra_search.0.3.0.zip 150.94KB (잔여일 : -, 잔여횟수 : -)
    ap_extra_search.0.3.1.zip 150.53KB (잔여일 : -, 잔여횟수 : -)
    ap_extra_search.0.3.2.zip 151.42KB (잔여일 : -, 잔여횟수 : -)
    ap_extra_search.0.4.0.zip 152.19KB (잔여일 : -, 잔여횟수 : -)
    ap_extra_search.0.4.1.zip 152.49KB (잔여일 : -, 잔여횟수 : -)

 

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

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

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

- 라이믹스에서만 테스트해봤습니다.  => 0.1.0 버전에서 XE 작동 확인

 

 

기본 기능

 

- 검색

  • 애드온 설정을 통해 교차검색(AND)과 누적검색(OR)을 모두 사용할 수 있습니다.
  • 검색화면을 게시판 목록화면 원하는 곳 어디에나 삽입할 수 있습니다.
  • 다중선택 체크박스로 이뤄진 확장변수도 무리 없이 잘 검색됩니다.
  • 게시판의 기본검색(제목, 내용, 태그 등)과 연동해서 사용할 수 있습니다.(0.2.0부터)
  • 회원들의 서명(프로필)도 다중검색 기능에 통합했습니다.(0.2.0부터)
  • 연월일 형식의 변수와 수치로 이뤄진 변수에 범위검색(RANGE)을 적용할 수 있습니다.(0.3.0부터)

 

- 스킨

  • 코어에서 사용하는 확장변수 입력화면과 최대한 유사하게 디자인되어 있습니다.
  • 스케치북 스킨에 어울리는 검색창 스킨을 제공합니다. 아울러 XEDITION용 스킨도 사용할 수 있습니다.
  • 사용자가 자신만의 애드온 스킨을 편하게 디자인할 수 있습니다.

기본 제공되는 스킨에서는 셀렉트 메뉴 형식의 확장변수가 라디오 형식으로 출력되도록 js로 처리했습니다. 셀렉트 메뉴 형식의 확장변수를 라디오 형식으로도 출력할 수 있는 옵션을 제공합니다.(0.2.0부터)

 

 

 

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 검색일 때) 교차검색 결과가 더 이상 없는 상황에서 추가로 검색 쿼리가 있을 경우, 검색결과가 새로 얻어지는 버그 수정

 

 

라이선스

 

  • 기본적으로 XPM 라이선스를 준용합니다.
  • XPM License 는 Xetown Point Market License 를 뜻하며, 구매자만 사용할 수 있도록 재배포를 금지합니다.
  • 이 애드온으로 스킨을 개발하시는 경우, XETOWN 무료 콘텐츠 마켓을 통해 제공해주시길 당부드립니다.
  • 그 외의 조항은 MIT License를 따릅니다.

 

 

동작 설명

 

  • 검색이 허용된 확장변수가 하나 이상 있을 경우 검색창 출력
  • 템플릿 핸들러 클래스를 통해 스킨 파일 불러들임
  • 스킨 파일의 html 코드를 원하는 위치에 삽입
  • 검색 결과를 $document_list 및 $page_navigation 변수에 반영하여 게시판 리스트로 뿌려줌
  • 그 외의 설명은 힘들어서...

 

 

테스트 환경

 

  • 크롬 66.0.3359.181 / IE 11.48.17134.0 / 엣지 42.17134.1.0
  • 라이믹스 1.9.6 / PHP 버전: 7.0.22
  • XE 1.9.7 / PHP 버전: 5.5
  • 스포어 웹호스팅 / 카페24 웹호스팅

 

 

데모

 

  • 미리보기 : https://bit.ly/2IECAeU

 

이 콘텐츠가 마음에 드셨다면 커피 한잔 (후원)

profile 사물이 거울에 보이는 것보다 가까이 있음

댓글 '73'

프로필 사진 profile
윤삼 2018.09.06 16:13 댓글 별점
스크립트에서 출생년도와 나이를 치환해서 출력 및 입력하는 트릭을 쓸 수 있을 것 같은데요.
다만 구체적인 설명이 어렵네요ㅜ
암튼 검색화면 출력할 때는 출생년도를 나이로 바꿔치기하고, 검색 질의가 전송될 때엔 다시 출생년도로 바꿔치기해서 검색을 돌리는 방법입니다ㅎ
프로필 사진 profile
순수영성 2018.09.15 13:16 댓글 별점
설정에 '검색창 삽입 위치 복수의 클래스class 이름'은 어디에서 찾나요?
프로필 사진 profile
윤삼 2018.09.15 13:21 댓글 별점
list.html 파일 중심으로 클래스 이름을 찾아보세요.
프로필 사진 profile
순수영성 2018.09.15 13:40 댓글 별점
감사합니다.
프로필 사진 profile
radix 2018.09.16 15:39 댓글 별점
좋은 자료 감사히 받아갑니다. _(_ _)_
프로필 사진 profile
빽짱구 2018.09.17 10:28 댓글 별점
멋지십니다.~~
프로필 사진 profile
티케틱 2018.10.05 17:18 댓글 별점
ap_extra_search.0.3.1.zip 다운받고, ftp에 넣으면 500에러가 뜨는데 이유가 뭘까요..?
프로필 사진 profile
윤삼 2018.10.05 19:08 댓글 별점
게시물 양이 많아서 생기는 문제일까요.. 에러 로그 확인해보시는 게 좋을 것 같아요.

그래도 여의치 않을 수 있는데요.
무료 자료다보니 기능상 헐거운 부분이 있을 겁니다.
아무래도 기존의 유료 모듈이나 위젯에 비해 성능이 많이 부족할 겁니다.
프로필 사진 profile
에띤시로 2018.10.05 21:51 댓글 별점
멋지네요! 좋은자료인것 같아요!
프로필 사진 profile
똑띠 2019.01.04 18:59 댓글 별점
좋은자료 올려주셔서 감사합니다.
그런데 전 왜 작동을 안할까요? ㅜ.ㅜ
XE 1.9.7 ( php 5.6.15)에서도 작동을 안하고, 라이믹스 1.9.9( php7.0.32) 에서도 작동을 안하네요.
설정이 잘못되었을까요?
스킨명 default로 하고 검색창 삽입 위치는 게시판 스킨에 head 파일에 별도로 div 하나 만들어 클래명 multisearch로 지정해 놓고 설정에도 multisearch로 입력했습니다. 그외는 선택 옵션이라..
뭐가문제일까요?
프로필 사진 profile
윤삼 2019.01.04 19:09 댓글 별점
검색창 스킨에 아무 것도 입력하지 않아도 잘 안 되나요?
저도 default라고 입력을 해본 적이 없어서 혹시나...
프로필 사진 profile
똑띠 2019.01.04 19:17 댓글 별점
네..검색창에 아무것도 입력하지 않아도 안되고, 혹시나 해서 스케치북을 업로드하고 테스트해 보았는데 마찬가지네요. Rhymix 1.9.9 / PHP Version 7.0.32
프로필 사진 profile
마늘션 2019.02.13 15:24 댓글 별점
안녕하세요 https://neezmoa.com 윤삼님이 만드신 확장변수 검색기능 사용하고 있습니다. 너무 느려서 사용할 수 없는 상태인데 확인 가능할까요? db는 직접입력으로 하였는데, 제가 뭐 잘못한건지, 아님 애드온의 특성인지 확인가능할까요?
프로필 사진 profile
윤삼 2019.02.13 17:07 댓글 별점
0.3.1 업데이트 이후에 공지했던 바와 같이 게시물 양이 많은 곳에서는 유료의 다른 모듈이나 위젯을 권합니다. 다소 무식한 방법으로 만든 다중검색 쿼리여서 DB를 읽을 때 시간이 많이 걸릴 겁니다.
- 개인적인 생각 1. 셀렉트나 라디오 버튼 형식의 확장변수에 대한 DB 쿼리를 like가 아니라 equal로 했으면 시간을 다소 단축했을 거란 생각은 듭니다. 하지만 그래도 속도 경감에 뚜렷한 효과가 있을지는 확신이 없네요.
- '유튜브 분류'를 그냥 카테고리로 설정하면 어떠실런지요. 현재 구조에선 사실 그렇게 하는 게 가장 나을 것 같다는 생각이 듭니다. 물론 DB 테이블 입력 방식을 다시 설계해야 하는 어려움은 있겠지만요ㅜㅜ
프로필 사진 profile
마늘션 2019.02.13 17:19 댓글 별점
답변 정말 감사합니다 ㅜㅜ 추후 다른 확장변수 검색도 추가 될 것이라, 카테고리 설정은 어렵겠어요. 추천해주신 다른 방법으로 연구해 볼게요.
프로필 사진 profile
윤삼 2019.02.13 17:11 댓글 별점
그나저나 대단한 사이트군요. 저도 킵해놔야겠습니다 ^^/
프로필 사진 profile
마늘션 2019.02.13 23:43 댓글 별점
감사합니다. ㅜㅜ
추천해주신 방법중에 다른 위젯구입은 스킨때문에 마지막방법으로 해볼 것 같네요.
말씀하신 쿼리는 테스트 해봤는데, getDocumentListWithExtraVars.xml 쿼리 자체의
문제는 아닌것 같아요. 따로 빼서 테스트하면 결과가 1초만에 나오더라고요.
검색된 게시글을 클릭하여 열람할때도 시간이 많이 걸려요.
문서를 병합하고 페이징 하거나 할 때, 혹시 의심되는 부분 있으시면 힌트 주시면 고맙겠습니다.
귀찮게 해서 죄송합니다.
프로필 사진 profile
윤삼 2019.02.14 00:07 댓글 별점
저도 전문가는 아니어서 잘 모르는데요.
XE의 검색 방식 자체만으로는 대용량 문서 테이블 검색에 한계가 있다는 이야기를 들었던 것 같아요.
언젠가 인덱싱으로 검색 속도를 혁신적으로 단축시켜주는 엘라스틱 서치라는 걸 들었던 바 있는데, 그게 XE로 포팅이 되는지는 잘 모르겠고 아마 의뢰를 하더라도 비용 지출 규모도 꽤 될 것 같더군요.
프로필 사진 profile
마늘션 2019.02.14 17:27 댓글 별점
안녕하세요 자꾸귀찮게 해서 죄송합니다. 사용할수 없을정도로 느린점은 개선했습니다.
파일목록만들때 검색결과인 모든 srl_list를 사용해서 getDocument하고 array_slice 하셨는데,
순서를 바꾸어 srl_list를먼저 array_slice해서 현재 페이지만 getDocument 하니 사용할수 없을정도로 느린문제는 해결은 되었습니다. 소스는 다음과같습니다.

php파일 480줄 쯤에,
$no = count($srl_list);
for ( $i = 0; $i < count($srl_list); $i++ )
{
$document_list[$no] = $oDocumentModel->getDocument($srl_list[$i]->document_srl);
$no--;
}
$document_list = array_slice($document_list, $module_info->list_count * ($page - 1), $module_info->list_count, true);
이부분을
array_reverse($srl_list);
$srl_list = array_slice($srl_list, $module_info->list_count * ($page - 1), $module_info->list_count, true);
$i=0;
foreach($srl_list as $l){
$document_list[$i] = $oDocumentModel->getDocument($l->document_srl);
$i++;
}
이렇게 수정하니 속도가 개선되었습니다.

그런데 모든 문서를 열람할때마다. 리스트를 계속해서 생성하는데, 그래서 열람속도가 불필요하게 느린것을 확인했습니다. 전역변수에 넣어 놓든지 하면 될 것같은데.. 잘모르겠더군요..
혹시 이것 개선하려면 어떻게 해야 할지 안 바쁘시다면 힌트 주시면 정말 고맙겠습니다.
프로필 사진 profile
윤삼 2019.02.14 17:47 댓글 별점
Context::get('document_srl') 가 존재하면, (리스트를 다 가져오는 게 아니라) 해당 문서가 있는 쪽수만 가지고 리스트를 그 부분만 가져오는 건 안 될까요?
당분간 작업을 할 수 없게 된 상황이어서 직접 확인은 못해보겠습니다ㅜ
프로필 사진 profile
심심이 2019.04.17 18:59 댓글 별점
꼭 필요한 것인데 잘 사용하겠습니다~~
프로필 사진 profile
로드세피 2019.05.10 21:45 댓글 별점
덕분에 잘 사용하고 있습니다. ^^
그런데 0.31까지는 다중 선택 시에도 잘 나옵니다.
예를 들어 장르로 팝, 재즈 가 입력되어 있다고 하면 팝을 골라도 나오고 재즈를 골라도 나오고 팝,재즈 둘다 골라도 나오는데요. (전부 AND검색시)
0.40부터는 검색 방식이 바뀌어서 그런지 장르에 팝,재즈 2개 다 선택이 되어 있는 게시물은 팝 골라도 안나오고 재즈 골라도 안나오고 둘다 골라도 안나오더라구요..
속도 개선도 좋지만 이것도 꼭 해결되었으면 합니다.
프로필 사진 profile
윤삼 2019.05.16 19:54 댓글 별점
그런 문제가 있군요.
속도 개선에 집중하다보니 제가 뭔가 잘못 건드린 부분이 있나봅니다.
검토 및 개선에 시일이 좀 많이 걸릴 것 같습니다.
일단 롤백해서 사용하셔야겠네요;;
혼선을 빚게 해서 죄송합니다ㅜㅜ
닫기
작가에게 커피 한잔(후원)을 사주세요.
서버에 요청 중입니다. 잠시만 기다려 주십시오...