웹마스터 팁

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

보통 개인 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 라는 테이블이 있을 경우 테이블명이 동일하기 때문에
이런 경우를 제외하고는 다 뽑는게 가능하다고 봅니다.

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

제목 글쓴이 날짜
확장변수, 회원가입 등의 한국 우편번호 검색 서버 주소 변경... [2] Double'U' 2013.12.26
레이아웃 css 쉽게 수정하는 방법 (개발자모드 이용) [1] file 멀티비타민 2013.12.29
에디터로 글 작성시 폰트 크기가 12px로 변경되는 현상 해결방법 [7] file jambox 2013.12.31
[애매모호]스케치북 게시판을 뭔가 큼직큼직하게 눈에 잘들어오게 바꾸기 [10] socialskyo 2014.01.03
이미지프로세스 ver.1.2.3.0에서 원본 다운로드가 안될 때 대암지기 2014.01.03
[10원팁] 크롬에서 글 작성시 IFRAME 박스가 생기는 경우 socialskyo 2014.01.03
[10원팁] GROUP SRL / MODULE SRL을 알아야 하는 경우 [2] socialskyo 2014.01.03
나만의 익명게시판에서 닉네임 확인하는 방법(꼼수라고 밝힙니다.) [5] 착한부산남자 2014.01.03
스케치북5 게시판 스킨 사용시 모바일 코멘트 수정이 전혀 안되는증상 [24] AJKJ 2014.01.05
[스케치북5] 댓글 수정 간략화하기.. (새로고침 없이 하는 방법 추가) [16] file XE만세 2014.01.05
스케치북 게시판 제목 과 분류 사이의 공간 제거 하기 [6] file socialskyo 2014.01.06
아이템샵 모듈에서도 『닉네임 변경시 모든 게시글,댓글 닉네임 수정 애드온』 작동하도록 수정. [3] file jambox 2014.01.06
스케치북 게시판 사용시 "내용을 입력해주세요"라고 뜨면서 댓글 입력이 안될경우 체크해봐야할 사항 [1] socialskyo 2014.01.07
댓글 익명 문자열에 색상 부여하기 [6] XE만세 2014.01.07
홈페이지 접속자, 글(댓글) 작성자 국가 국기 표시 적용 방법 [19] file 라싸 2014.01.08
파란/네이버/네이트온 메신저 이모티콘 다운로드 [1] socialskyo 2014.01.08
[10원팁] 스케치북 서명란 크기 [5] socialskyo 2014.01.08
알림센터의 익명명칭을 anonoymous에서 다른 형태로 바꾸기 [1] jambox 2014.01.08
APMSETUP7에서 PHP 버전 업그레이드 [1] YJSoft 2014.01.14
IE의 깨짐현상(호환성보기 문제) [1] Volun 2014.01.14