묻고답하기

_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') 를 덤프떴더니 제대로 들어가 있는게 확인 되는데

 

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

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

 

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
cozy 관리자로긴이 갑자기 안되어 아무것도 할수없어요 [3] 2017.06.16 by cozy
죠이♡ 회원가입시나 수정시 닉네임/ID /E-mail 은 중복체크를 하자나요 . 이름도 가능할까요? [1] 2017.06.15 by 블루카이
넷모아 한서버에 제로보드 xe 를 2개 설치하는방법좀 알려주세요 ^^; [1] 2017.06.15 by ruzischild
비터스윗 쇼핑몰 모바일버전, 홈페이지 리뉴얼 해주실분 [1] 2017.06.15 by ruzischild
thdwjdtjr 첨부파일 하루 다운횟수 제한하는 방법 [1] 2017.06.15 by sejin7940
시미 모바일 스킨 적용이 정말정말 안되네요.. [3] file 2017.06.15 by 시미
그때그사람 로고인시 url에러 문제 [2] 2017.06.15 by 그때그사람
상해파 한글 변환 [2] 2017.06.15 by 상해파
스무스 원페이지에서 #name 으로 이동하는법 문의드립니다 [1] 2017.06.14 by HowtoXE
머드 프레임셋 index.html 설정시 오류 [1] 2017.06.14 by SimpleCode
뻬빠 XE 설치 에러 문의 [2] 2017.06.14 by 뻬빠
칭런 디비 복구 가능할까요? [1] 2017.06.14 by 불금
주피터bff66 '로그인 유지' 기능의 문제점... [2] 2017.06.14 by 주피터bff66
집주인 메인위젯이 게시판마다 다 뜨네요.. 어떻게 하나요? [1] 2017.06.14 by ruzischild
홍길동2000 회원 가입이 안 되고 있어요 [1] 2017.06.14 by 홍길동2000
SuwonSuperStar XE기반 홈페이지를 모바일에서 접속시 다른 URL로 연결하기 [4] 2017.06.13 by SuwonSuperStar
비세 글을 드래그 복사 붙여넣기하면 흰 여백이 회색이 됩니다  
붉은석양 시놀로지NAS XE 설치중 짧은주소 설정문제 도움요청 [1] 2017.06.13 by Luatic™
파파베어 도저히 초보는 모르겠네요ㅠ; 로고줄이랑 nav줄이랑 줄바꿈과 메뉴 중간을 띄우고 싶은데요 [2] file 2017.06.13 by 파파베어
koll**** 게시글에서 글쓴 회원의 확장변수 값을 출력하고 싶습니다. [2] 2017.06.13 by koll****
창원시단기쉼터남자 홈페이지 스킨제작자에 이 곳이 떠있길래 문의합니다... [2] 2017.06.13 by 창원시단기쉼터남자
펀디자인 xe레이아웃사용시 틈이생기네요 file  
아이노코 ckeditor 서체가 다양하질 안네요 [1] 2017.06.12 by 아메리칸스타일
가리비 모바일 댓글에서 이미지 첨부 와 비밀글 기능을 넣을 수 없을까요?  
황금망치 누리고 삭제했는데 어드민 접속이 안됩니다 [2] 2017.06.12 by 불금
TCMCNC 고수님들께 질문드립니다. ip주소 변경 문제 [1] 2017.06.12 by 기진곰
koll**** 가입 폼 관리에서 닉네임과 비밀번호 찾기를 없애고 싶습니다.  
투비 첨부파일이 다운로드 안됩니다. file  
지지 댓글수 표시 없는 위젯 댓글수 표시  
코리스™ HTTP ERROR 500 [7] 2017.06.11 by 코리스™