메뉴 건너뛰기

XE : Xpress Engine


XE에 대한 생각! XE에 대한 공감! - XE를 사용하는 다른 사람들과 의견을 나눌 수 있는 곳입니다. 많은 의견 공유로 더 좋은 XE를 만들어 주세요.


XE 사용팁

이 부분은 약간의 코어 소스 수정과 변수 선언을 해주셔야 합니다.

보통 개인 DB 건드리고 출력할 용도가 게시판, 위젯, 애드온 등이 되겠는데요.

이  팁에서는 게시판을 기준으로 설명하겠습니다.

준비물 : 팁, xml파일, func_include 애드온, class.php
사전지식 : func_include 애드온을 이용한 함수 사용법

class.php

class 클래스명 {
    function init(){
        Context::set('getTable',array('테이블명1','테이블명2'));
    }
   function getTable(){
        $output = executeQueryArray('board/skins/스킨명.테이블명', $obj);
        // 오류가 생기면 그냥 무시
        if(!$output->toBool()) return;
        return $output->data;
    }
}


테이블명.xml

<query id="테이블명" action="select">
    <tables>
        <table name="테이블명" /> <- 이곳 본인의 테이블명 적으시면 됩니다.
    </tables>
    <columns>
        <column name="*" />
    </columns>
</query>

게시판스킨 임의의 html 파일에 아래를 선언

<!--@if($func_check)-->
{@ func_include('modules/board/skins/스킨명/php/class.php') }
{@ 클래스명::init() }
{@ $tables = 클래스명::getTable() }
<!--@end-->

    <!--@foreach($tables as $key => $val)-->
         내용
    <!--@endforeach-->

core 파일 수정
xe/classes/db/DBMysql_innodb.class.php <- 이것은 각 DB 종류에 따라 그 파일을 수정해야합니다.
      /**
         * @brief insertAct 처리
         **/
        function _executeInsertAct($output) {
            // 테이블 정리
            foreach($output->tables as $key => $val) {
                $prefix = (!@in_array($key, Context::get('getTable')))? $this->prefix:false;
                $table_list[] = '`'.$prefix.$val.'`';
            }
.... 중략

        /**
         * @brief updateAct 처리
         **/
        function _executeUpdateAct($output) {
            // 테이블 정리
            foreach($output->tables as $key => $val) {
                $prefix = (!@in_array($key, Context::get('getTable')))? $this->prefix:false;
                $table_list[] = '`'.$prefix.$val.'` as '.$key;
            }
....중략
        /**
         * @brief deleteAct 처리
         **/
        function _executeDeleteAct($output) {
            // 테이블 정리
            foreach($output->tables as $key => $val) {
                $prefix = (!@in_array($key, Context::get('getTable')))? $this->prefix:false;
                $table_list[] = '`'.$prefix.$val.'`';
            }
....중략
        /**
         * @brief selectAct 처리
         *
         * select의 경우 특정 페이지의 목록을 가져오는 것을 편하게 하기 위해\n
         * navigation이라는 method를 제공
         **/
        function _executeSelectAct($output) {
            // 테이블 정리
            foreach($output->tables as $key => $val) {
                $prefix = (!@in_array($key, Context::get('getTable')))? $this->prefix:false;
                $table_list[] = '`'.$prefix.$val.'` as '.$key;
            }
....중략



$prefix 로 시작하는 것 하고 그 밑에 내용 두줄을 위와 같이 교체 해주세요.


원리는 위에 지정한 테이블명과 접근하려는 테이블명이 같을 경우 xe_ 등의 말머리를 출력하지 않게 하는 겁니다.
그렇게 때문에 본인의 DB에 xe_documents 라는 테이블과 documents 라는 테이블이 있을 경우 테이블명이 동일하기 때문에
이런 경우를 제외하고는 다 뽑는게 가능하다고 봅니다.

좀 더 간편한 방법이 없을까 하지만 아직 실력이 이것 밖에 안되네요 ^^

번호 제목 글쓴이 날짜 조회 수
공지 질문은 묻고 답하기로~ TSCMD 2012.02.03 366
675 textyle Domain 접속방법 [5] file [레벨:5]왜만지냐 2009.10.15 1127
674 파일 첨부시 사라지는 현상 [6] [레벨:1]Isaac Shepherd 2009.10.07 1112
673 사이트 먹통 되었을 때 대처법 [4] [레벨:3]LunarDream 2009.08.14 4292
672 zbxe 기본글꼴(폰트) 바꾸는 방법 [9] file [레벨:1]핸디지 2008.04.22 1076
671 zb4 방명록 -> XE 방명록 답글을 코멘트로 넣기. [2] [레벨:1]St.Veiry 2010.01.13 1054
670 개인서버(윈도XP) + apmsetup6 + XE 설치하기 [1] [레벨:2]꽃들 2010.01.06 1505
» XE용 query xml 방식으로 일반 테이블도 접근 처리 하기 [1] [레벨:18]라르게덴 2009.06.18 1288
668 APM_Setup 7 사용자중에서 첨부 파일 업로드시 100%에서 사라지는 문제 [2] [레벨:1]레드파카 2010.01.04 1255
667 Apache,PHP,MySQL,Zend,OpenSSL,PEAR 설치 메모 [1] [레벨:7]엘카 2009.12.03 1202
666 ZBXE용 모니위키 연동 플러그인 소스 [4] [레벨:7]베니 2007.10.17 4582
665 widgets/member_group/스킨/스킨명/list.html 에 성별아이콘 나타내기 [2] file [레벨:2]늘푸른이 2010.01.03 2588
664 xe초보가 업데이트 하기 [레벨:0]글로벌 2010.01.06 1137
663 초간단! 게시물주소 클릭시 복사하기 ! [4] file [레벨:9]gnee 2008.07.26 5089
662 첨부파일이 용량에 따라 등록되기도 하고 안되기도 할 때 해결방법 (웹호스팅) [1] [레벨:2]꽃들 2010.01.02 1209
661 1.3.1.1 에서 첫 화면 안나오시는분들 [1] [레벨:17]하늘03 2009.12.26 1247
660 2차 메뉴가 없을 경우 왼쪽 메뉴 숨기기 [5] file [레벨:2]엔시아- 2009.07.16 1198
659 스패머에게 대항하라! 스팸봇 차단 방법 (검증 안됨) [1] [레벨:6]빛의바다 2009.12.26 2086
658 로고 위치 변경하기 [4] [레벨:2]김영훈715 2007.08.21 1654
657 레벨 아이콘이 제대로(찌그러지는 등) 출력되지 않을 때 수정방법 [레벨:6]必得力 2007.11.07 4202
656 다중의 이종 웹 브라우저에서 웹 사이트 테스트하기 [1] [레벨:2]NetEagle 2007.10.01 20321