묻고답하기

_search.html에서는 

<input type="hidden" id="reg_search_target" name="search_target" value="extra_vars2"/>
<input type="hidden" id="reg_search_keyword" name="search_keyword" value=""/>

<input type="hidden" id="e1_search_target" name="search_targetA" value="extra_vars9"/>
<input type="hidden" id="ot_search_target" name="search_targetB" value="extra_vars10"/>
<input type="hidden" id="e2_search_target" name="search_targetC" value="extra_vars11"/>
<input type="hidden" id="e1_search_keyword" name="search_keywordA" value=""/>                                    
<input type="hidden" id="ot_search_keyword" name="search_keywordB" value=""/>                                    
<input type="hidden" id="e2_search_keyword" name="search_keywordC" value=""/>

 

이런식으로 Get파라미터를 추가해주었고

 

document.model.php의 _setSearchOption()에서는

if(strpos($search_target,'extra_vars')!==false) {
    $args->var_idx = substr($search_target, strlen('extra_vars'));
    $args->var_value = str_replace(' ','%',$search_keyword);
    $args->sort_index = 'documents.'.$args->sort_index;
    $query_id = 'document.getDocumentListWithExtraVarsMulti';
                            
    $args->var_idxA=$args->var_idx;    $args->var_valueA=$args->var_value;
    $args->var_idxB=$args->var_idx;    $args->var_valueB=$args->var_value;
    $args->var_idxC=$args->var_idx;    $args->var_valueC=$args->var_value;
    
    $Context_GetVars = Context::getRequestVars();
    $Context_GetVars = json_decode(json_encode($Context_GetVars), true);
    $search_keywordA="";    $search_keywordB="";    $search_keywordC="";
    //var_dump($Context_GetVars["search_keywordA"]);
    if(isset($Context_GetVars["search_keyworda"]))        $search_keywordA=$Context_GetVars["search_keyworda"];
    if(isset($Context_GetVars["search_keywordb"]))        $search_keywordB=$Context_GetVars["search_keywordb"];
    if(isset($Context_GetVars["search_keywordc"]))        $search_keywordC=$Context_GetVars["search_keywordc"];
    
    if(!empty(trim($search_keywordA)))
    {
        $args->var_idxA = substr($Context_GetVars["search_targeta"], strlen('extra_vars'));
        $args->var_valueA = str_replace(' ','%',' '.$search_keywordA.' ');
    }

    if(!empty(trim($search_keywordB)))
    {
        $args->var_idxB = substr($Context_GetVars["search_targetb"], strlen('extra_vars'));
        $args->var_valueB = str_replace(' ','%',' '.$search_keywordB.' ');
    }

    if(!empty(trim($search_keywordC)))
    {
        $args->var_idxC = substr($Context_GetVars["search_targetc"], strlen('extra_vars'));
        $args->var_valueC = str_replace(' ','%',' '.$search_keywordC.' ');
    }
}

이런식으로 변경을 해주었습니다.

마지막으로 getDocumentListWithExtraVarsMulti.xml을 추가하여 아래와 같이 설정해주었습니다.

<query id="getDocumentListWithExtraVarsMulti" action="select">
    <tables>
        <table name="documents" />
        <table name="document_extra_vars" alias="extra_vars"  type="left join">
            <conditions>
                <condition operation="equal" column="extra_vars.document_srl" default="documents.document_srl" pipe="and" />
            </conditions>
        </table>
        <table name="document_extra_vars" alias="extra_varsA"  type="left join">
            <conditions>
                <condition operation="equal" column="extra_varsA.document_srl" default="extra_vars.document_srl" pipe="and" />
            </conditions>
        </table>        
        <table name="document_extra_vars" alias="extra_varsB"  type="left join">
            <conditions>
                <condition operation="equal" column="extra_varsB.document_srl" default="extra_varsA.document_srl" pipe="and" />
            </conditions>
        </table>
        <table name="document_extra_vars" alias="extra_varsC"  type="left join">
            <conditions>
                <condition operation="equal" column="extra_varsC.document_srl" default="extra_varsB.document_srl" pipe="and" />
            </conditions>
        </table>
    </tables>
    <columns>
        <column name="documents.*" />
    </columns>
    <conditions>
        <condition operation="in" column="documents.module_srl" var="module_srl" filter="number" />
        <condition operation="in" column="documents.category_srl" var="category_srl" filter="number" pipe="and" />
        <condition operation="equal" column="documents.member_srl" var="member_srl" filter="number" pipe="and" />
        <condition operation="in" column="documents.status" var="statusList" pipe="and" />
        
                <condition operation="equal" column="extra_vars.var_idx" var="var_idx"  pipe="and" />
                <condition operation="like" column="extra_vars.value" var="var_value"  pipe="and" />
                <condition operation="equal" column="extra_varsA.var_idx" var="var_idxA"  pipe="and" />
                <condition operation="like" column="extra_varsA.value" var="var_valueA"  pipe="and" />
                <condition operation="equal" column="extra_varsB.var_idx" var="var_idxB"  pipe="and" />
                <condition operation="like" column="extra_varsB.value" var="var_valueB"  pipe="and" />
                <condition operation="equal" column="extra_varsC.var_idx" var="var_idxC"  pipe="and" />
                <condition operation="like" column="extra_varsC.value" var="var_valueC"  pipe="and" />
    </conditions>
    <groups>
        <group column="documents.document_srl" />
    </groups>
    <navigation>
        <index var="sort_index" default="documents.list_order" order="order_type" />
        <list_count var="list_count" default="20" />
        <page_count var="page_count" default="10" />
        <page var="page" default="1" />
    </navigation>
</query>
 

일단 쿼리 실행 결과는 정상적으로 동작한것을 $output을 var_dump로 확인했고

board.view.php의 $this->dispBoardContentList(); 실행 후에도 Context::get('document_list') 를 덤프떴더니 제대로 들어가 있는게 확인 되는데

 

실제로 검색버튼을 누르면 그냥 전체리스트만 띄워주고있네요..

제가 뭔가 처리를 잘못한 부분이나 추가로 수정해줘야 할 부분이 있을까요?ㅠㅜㅠㅜ

 

글쓴이 제목 최종 글
BJ람보 공지 답변을 확실히 받기위한 질문자 지침서 [6] 2017.01.25 by mxin****
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [17] 2017.09.15 by 남기남
트리픽 위젯에 백그라운드이미지 삽입&첨부이미지용량수정!  
koll**** XE 날짜비교 어떻게 하나요..?? [1] 2017.04.28 by lis****
darkja**** 일본어, 중국어 메뉴 입력  
운현 유튜브 모듈 모바일스킨 관련  
트리픽 다운받은 레이아웃 수정 질문 [5] 2017.04.27 by 트리픽
sundriespds 모바일 브라우저 제목 제거 질문 [1] 2017.04.27 by LI-NA
koll**** 기존 게시판 모듈 소스 일부를 변경하여 원하는 기능을 구현하고 싶습니다. [1] 2017.04.27 by LI-NA
koll**** 쓰기 폼에서 DB에 Insert할때 변수끼리 계산 후 넣을수 있나요 ? [3] 2017.04.27 by LI-NA
bambiiii 댓글 에디터 선택하기 버튼이 작동이 안돼요  
sundriespds 위젯페이지 질문 [2] 2017.04.26 by sundriespds
havethe*** XE관리자 화면에 갤러리라는 게시판은 없어요 [1] 2017.04.26 by pmacsoft
havethe*** wXE4에서 xe로 갈아타기 [1] 2017.04.26 by pmacsoft
상록수 제로보드는 어디에 문의해야죠? [1] 2017.04.26 by YJSoft
상록수 [질문] 도와주세요. 로그인이 않되네요  
완전초보 서브도메인  
ane**** 확장검색을 위해 XML을 추가 했는데 처리가 안됩니다.ㅠ  
Ririseu xe 로그인 오류입니다.  
때린데 또때려 익명 게시판 사용시 anonymous 를 다른 이름으로 수정할수 있나요 ? [4] 2017.04.25 by 마야
멍충돋네 소시랑 한줄메모스킨 사용중인데 댓글에 html태그 적용시키는 방법있을까요 [2] 2017.04.25 by 머드
슈크림라떼 도메인 연결 후 발생하는 오류 문의드려요 [1] 2017.04.25 by 마야
noo**** PDO, mySQL 접속 방법 문의 [1] 2017.04.25 by 기진곰
xe_마니 게시판 사용자정의 설정에서 [2] 2017.04.25 by xe_마니
이진수닷넷 작성자의 "다른 게시물 보기 [1] 2017.04.25 by sejin7940
홍찬 게시판 본문에 HTML 특정 부분이전이 잘려서 View가 됩니다.  
호시초콜릿ㅇ 로그인 폼 질문입니다.  
남정환 '아이디의 값은 영문, 숫자, _만 가능하며 첫 글자는 영문이어야 합니다.' 메시지가 뜨고 로그인이 안됩니다. [2] 2017.04.24 by 잘부탁드립니다
지랭 게시판 비회원 글 등록시 관리자 메일 알림오게 하는 방법 [4] file 2017.04.24 by 지랭
이진수닷넷 Xedition레이아웃 수정 [1] file 2017.04.24 by 과니
신일섭 무료 호스팅인 InfinityFree 에서 XE를 설치할려고 합니다. [2] 2017.04.24 by Moses
Saivian777닷컴 모바일 레이아웃 질문 2가지 부탁드립니다. file