AnimeClub - zbXE... : zeroboard XE

XpressEngine에 관련 내용에 대해서 이야기 합니다.

icon 라르게덴님 도와주세요.. ^^;; (일반테이블 접근 처리)

우암
조회 수:4150 댓글:4 등록일:2010.01.04 14:04:03 (*.138.10.142)




일번 게시판 목록에서

그 게시판 상단에에 원하는 확장변수가 들어있는 글을 출력하고 싶어서 구현중입니다.

게시물 리스트상단에 확장변수1이 "A"인 게시물을 검색하여 그에 맞는 제목을  목록형식으로 게시판 위에뿌려주려고합니다.
확장변수1이 "A"가 들어있는 게시물이 2~3개가 될수도 있습니다. 이것을 모두 상단에 출력하고 싶습니다

꼭 필요한 부분이라 구현을 해야하는데 잘 안되네요.
func_include 애드온을 이용해 이것저것 봐도, 라르게덴님이 제작하신 로그인소스를봐도 잘 이해가 안가네요 ㅎㅎㅎ;;;
제로보드4에 너무 익숙해져서 그런걸까요 ;;;

가능하시다면, 설명과 함께 소스로 기본예제정도 하나 만들어주시면 정말 감사하겠습니다 (__)

새해복 많이 받으세요.. ^_^

조회 수 :
4150
등록일 :
2010.01.04
14:04:03 (*.138.10.142)
엮인글 :
http://animeclub.net/zbXE/73288/07f/trackback
게시글 주소 :
http://animeclub.net/73288

라르게덴

2010.01.04
20:57:30
(*.79.64.110)
profile
음... XML Query를 만드셔야겠군요.
내일 xe 기본 게시판 스킨으로다가 샘플만들어 드릴게요. ^^

우암

2010.01.04
21:40:47
(*.138.10.142)
라르게덴님은 천사이십니다!! 정말 감사합니다 ^_^

라르게덴

2010.01.05
12:15:36
(*.234.236.218)
profile
xe_board 를 기준으로 하였습니다. func_include를 모듈전체에 사용으로 해두세요.

xe/.../xe_board/php/class.php 경로와 파일을 만드시고 아래의 내용을 삽입
<?php
    if(!defined("__ZBXE__")) exit();

    class extra_vars {

        function extraList($args){
            $eids = "test";
            $obj->eids = ($args->eids)?$args->eids:$eids;
            $obj->value = ($args->value)?$args->value:false;
            $obj->s_value = ($args->s_value)?$args->s_value:false;
            $obj->var_idxs = ($args->var_idxs)?$args->var_idxs:false;                                   

            $obj->sort_index = "documents.list_order";
            $obj->order_type = "desc";
            $obj->page = Context::get("page");
            $obj->list_count = 20;
            $obj->page_count = 10;
           
            $output = executeQueryArray('board/skins/xe_board.getExtraVars', $obj);

            if(!$output->toBool()) return;
           
            Context::set("etotal_count", $output->total_count);
            Context::set("etotal_page", $output->total_page);
            Context::set("epage", $output->page);
            Context::set("epage_navigation", $output->page_navigation);

            return $output->data;
        }
    }
?>

xe/.../xe_board/queries/getExtraVars.xml 경로와 파일을 만드시고 아래의 내용을 삽입
<query id="getExtraVars" action="select">
    <tables>
        <table name="documents" alias="documents" />   
        <table name="document_extra_vars" alias="document_extra_vars" />
    </tables>
    <columns>
        <column name="documents.*" />
    </columns>
    <conditions>
        <condition operation="equal" column="documents.document_srl" var="document_extra_vars.document_srl" pipe="where" />
        <group pipe="and">
            <condition operation="in" column="document_extra_vars.eid" var="eids" notnull="notnull" pipe="and" />
            <condition operation="equal" column="document_extra_vars.value" var="value" notnull="notnull" pipe="and" />
            <condition operation="like" column="document_extra_vars.value" var="s_value" notnull="notnull" pipe="and" />
            <condition operation="in" column="document_extra_vars.var_idx" var="var_idxs" notnull="notnull" pipe="and" />       
        </group>
    </conditions>
    <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>

xe/.../xe_board/style_list.html 최 상단에 아래를 삽입하세요.
<!--@if($func_check)-->
{@
    func_include($tpl_path.'php/class.php');
    $oExtra_vars = new extra_vars();
    $extra->eids = "'test','test2'";
    $extra->value = "A";
//    $extra->var_idxs = "'1','2'";
    $oExtra_info = $oExtra_vars->extraList($extra);
}
    <!--@if($oExtra_info)-->
        <ul>
        <!--@foreach($oExtra_info as $key => $val)-->
            <li>{$val->document_srl} : {$val->title} ({$val->nick_name})</li>
        <!--@endforeach-->
        </ul>
    <!--@endif-->
<!--@endif-->

간단하지만 확장성을 많이 높였습니다. 더욱 높인다면 document의 item연동도 되겠지만 여기까지 해뒀으니 나머지는 입맛대로 개조해보세요.
마지막에 삽입 내용 중에 $extra 들이 옵션이고요. eid를 기준으로 찾는 방법과 var_idx를 기준으로 찾는 방법 두가지가 있습니다. 그리고 여러개 중 일치하는 방법과 포함되는 방법 두가지 선택 가능합니다.

1.대상 선정하기
- 두개 이상일 경우 각 eid, var_idx에 작은 따옴표(')를 넣고 (,)로 구분하셔야 합니다.
- 단일 일 경우는 일반 변수 선언하듯 큰 따옴표만 묶어주시면 됩니다.

2. 단어 포함 여부
- $extra->value와 $extra->s_value가 class.php에 준비되어있습니다.
- value는 말씀하신 A라는 대상을 입력하시면 됩니다.
- s_value는 A라는 단어를 포함하는 모든 대상을 뽑을 수 있게 되어있습니다.

※ value와 s_value 두개 동시에 하면 원하는 결과물이 나오지 않습니다. 하나만 조건선택해주세요.
※ eids와 var_idx 두개 동시에 하면 원하는 결과물이 나오지 않습니다. 하나만 조건선택해주세요.

3. 페이지 기능
- 저 대로 사용하게 되면 게시판이 2페이지면 2페이지에 해당하는 결과물이 나오게 되니 사용하지 않으실 거면 주석처리해주세요.
※ 페이지 기능여부는 따로 설명 드리지 않겠습니다. xe 사이트 tip란 등으로 공부해보세요.

우암

2010.01.05
16:49:30
(*.138.10.142)

"비밀글입니다."

:
List of Articles
번호 제목 글쓴이 날짜 조회 수
193 질문-답변 Cooliris PicLens alljoy 2014-02-19 23091
192 질문-답변 운영잔님 질문드립니다. [1] 인터넷짱 2013-06-08 21005
191 질문-답변 아래글에 이어서.. [4] secret 동쪽에태양 2013-02-24 9
190 질문-답변 piclens 을 수정 하고 싶어요 ^^ [2] secret 동쪽에태양 2013-02-17 3
189 질문-답변 로마네스크 재질문 [2] secret 인터넷짱 2013-01-22 5
188 질문-답변 piclens 1.2 요청합니다. [1] alljoy 2013-01-10 14264
187 질문-답변 로마네스크 최근글 질문입니다. [2] file 인터넷짱 2013-01-04 10591
186 질문-답변 아래글 이전글-다음글 관련 확인했는데... 고민하다가 2012-08-13 13673
185 질문-답변 이전글-다음글 관련 문의드립니다. [2] secret 고민하다가 2012-07-31 5
184 질문-답변 이전글 다음글 다시 질문드립니다. [2] 감사합니다. 2012-05-15 13889
183 질문-답변 이전글 다음글 문의드립니다, [2] 감사합니다 2012-05-09 57510
182 질문-답변 로마네스크 최근 문서 출력 위젯 [3] 종구이 2012-03-31 21531
181 질문-답변 json 추출 글 보고 문의 드립니다. [2] cosmos 2012-03-28 25831
180 질문-답변 이전글 다음글 출력에 관한문의 [2] file 봄날2 2012-03-16 22882
179 질문-답변 이전글 다음글 1.1 버튼색상요 [5] 열공365 2012-03-15 15991
178 질문-답변 흠.. 어떻게 하는거죠?? 위젯이 이상해요..; [3] file 2012-02-27 20159
177 질문-답변 이전글 다음글 위젯이요 [2] 열공365 2012-02-20 36006
176 질문-답변 게시판글을 xml로 파싱하는 방법을 부탁드립니다. [2] ibwj 2011-11-24 29416
175 질문-답변 Cooliris PicLens 애드온 1.5..... [3] secret alljoy 2011-10-30 7
174 질문-답변 위젯: 썸네일 생성에 대해서 질문있어요 [2] 아메아메몬 2011-03-25 18684



CATEGORY
ALL [600]
공지 [3]
[551]
사진 [39]
정보 [6]
소식 [2]
정보 [4]

Skin Info

slide_in
 갱신
 
arrow_in