You cannot see this page without javascript.

Skip Navigation

XE 레이아웃 카메론 XE LAYOUT CAMERON XE2.0.15


00:00

날씨

    • 흐림
    • 24.0°C
    • 50%
    • 30%
    • 흐림
    • 21.0°C
    • 60%
    • 30%
    • 구름 많음
    • 19.0°C
    • 75%
    • 20%
    • 구름 많음
    • 17.0°C
    • 80%
    • 20%
    • 흐림
    • 16.0°C
    • 90%
    • 30%
    • 구름 많음
    • 16.0°C
    • 90%
    • 20%
    • 흐림
    • 19.0°C
    • 75%
    • 30%
    • 흐림
    • 23.0°C
    • 55%
    • 30%
    • 흐림
    • 23.0°C
    • 55%
    • 30%
    • 흐림
    • 21.0°C
    • 65%
    • 30%
    • 흐림
    • 19.0°C
    • 75%
    • 30%
    • 흐림
    • 18.0°C
    • 80%
    • 30%
    • 흐림
    • 23.0°C
    • 70%
    • 30%
    • 흐림
    • 20.0°C
    • 85%
    • 30%
발표시간: ,
날씨 정보 저작권자 © 기상청
모듈
2020.08.13 15:02

모듈 확장과 모델(Model)

profile
(*.168.0.1) Views 35 Votes 0 Comment 0
Extra Form
원문주소
페이지 00025
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

모듈 확장과 모델(Model)

관리자를 위한 백 엔드 뷰(View)가 실행되면 관리자-인덱스로 설정했던 dispExampleAdminList 액션이 작동하고 그 진행과정을 설명한 그림이다. 또한 앞으로 만들게 될 관리자 목록 보기를 위한 설계도이다. 이 과정에서는 어드민 모델(example.admin.model.php)을 이용할 계획이다. 실제로 게시판(Board) 모듈에서는 2번이 생략되고 곧장 쿼리(query)를 실행하여 xe_modules 테이블에서 필요한 값을 찾아 온다. 하지만 학습에 필요한 예제이기 때문에 모델(Model)을 활용하는 방법으로 진행하고자 한다.

dispExampleAdminList

 

XE코어의 모듈 중에는 모듈(module)이라는 이름의 모듈이 있다.(혼동하기 않기 위해 앞으로 module 이라고 표기한다.)
이 module이 하는 일은 다른 모듈들이 만든 모듈의 식별 번호(module_srl) 또는 모듈의 아이디(mid)를 등록하고 관리하는 일을 한다. 즉 module을 확장(extends)하여 사용한다는 것은 추가된 모듈(example 모듈)이 앞으로 만들게 될 모듈의 아이디(mid)를 module이 관리하는 테이블(xe_modules)에 등록하고 사용할 수 있도록 module의 도움을 받겠다는 뜻이다.

 

xe_modules

예를 들어, 게시판 모듈을 1개 생성하면 새로운 모듈 고유 번호(module_srl)와 모듈의 아이디(mid)가 만들어지고 이 게시판에서 작성된 글은 새로운 문서 고유 번호(document_srl)가 붙게 된다. 그런데 이 문서는 어디를 가든지 부모의 이름을 가지고 다닌다. 즉 어느 부모의 자식인지 알 수 있도록 모듈 번호(module_srl)를 함께 저장해 두었다는 뜻이다. (옛날 주민등록증에는 자신의 이름 밑에 부모의 이름이 함께 기록되어 있었다...^^)

관리자 목록은 module을 확장하여 앞으로 example 모듈이 생성하게 될 모듈의 아이디와 모듈 번호, 즉 모듈의 정보를 module 테이블에 등록하고 조회/수정/삭제하는 기능을 하게 된다.

1. 관리자 목록

최종적인 결과물을 목록으로 출력하는 관리자 페이지를 먼저 만들어 보자. 6번에서 처럼 $example_list 변수가 값을 받아 올 것이다. $example_list 변수는 배열의 형태이고 foreach 문을 이용해 루프 형식으로 각각 값에 접근하여 출력한다. tpl/index.html에 다음의 내용을 추가하고 업로드한다.

tpl/index.html

<!-- 목록 -->
<table cellspacing="0" class="rowTable">
<thead>
    <tr>
        <th scope="col"><div>{$lang->no}</div></th>
        <th scope="col" class="half_wide"><div>{$lang->mid}</div></th>
        <th scope="col" class="half_wide"><div>{$lang->browser_title}</div></th>
        <th scope="col"><div>{$lang->regdate}</div></th>
        <th scope="col" colspan="2"><div> </div></th>
    </tr>
</thead>
<tbody>
    <!-- 모듈의 관리자 목록 시작 -->
    <!--@foreach($example_list as $no => $val)-->
    <tr class="row{$cycle_idx}">
        <td class="center number">{$no}</td>
        <td>{htmlspecialchars($val->mid)}</td>
        <td><a href="{getUrl('','mid',$val->mid)}">{$val->browser_title}</a></td>
        <td class="nowrap">{zdate($val->regdate,"Y-m-d")}</td>
        <td><a href="{getUrl('act','dispExampleAdminInfo','module_srl',$val->module_srl)}" class="buttonSet buttonSetting" title="{$lang->cmd_setup}"><span>{$lang->cmd_setup}</span></a></td>
        <td><a href="{getUrl('act','dispExampleAdminDelete','module_srl', $val->module_srl)}" class="buttonSet buttonDelete" title="{$lang->cmd_delete}"><span>{$lang->cmd_delete}</span></a></td>
    </tr>
    <!--@end-->
    <!-- // 모듈의 관리자 목록 끝 -->
</tbody>
</table>

 

언어팩 {$lang->no} {$lang->mid} {$lang->browser_title} {$lang->regdate}
lang/ko.lank.php 번호 모듈 이름 브라우저 제목 등록일
변수 출력 {$no} {htmlspecialchars($val->mid)} {$val->browser_title} {zdate($val->regdate,"Y-m-d")}

 

모듈은 언어팩(lang)을 사용한다. 지금은 관리자 페이지를 만들고 있기 때문에 대부분의 단어들은 xe/common/lang/ko.lang.php 파일의 지원을 받을 수 있다. 만약 공통 언어로 등록되어 있는 단어가 아닌 새로운 단어를 추가하고 사용하려면 example 모듈에 lang/ 폴더를 새로 만들고 ko.lang.php 파일에 미리 추가해 두어야 한다.(example/lang/ko.lang.php) foreach 문을 이용해 키와 값으로 분리된 변수의 값을 해당 셀(cell)에 출력한다는 내용이다.
모듈의 설정과 삭제에 대한 액션은 다음 과정에서 진행하기 때문에 우선 넣어 두도록 한다.

2. example.admin.view.php

이전에 작성했던 어드민 뷰 파일에서 템플릿 설정 부분과 함께 추가된 내용을 포함하여 업로드 한다.

 

<?php
    /**
     * @class  exampleAdminView
     * @author XE스쿨 모듈 만들기 예제
     * @brief  example 모듈의 admin view class
     **/
 
    class exampleAdminView extends example {
 
        /**
         * @brief 초기화
         **/
        function init() {
 
            // module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅
            $module_srl = Context::get('module_srl');
            if(!$module_srl && $this->module_srl) {
                $module_srl = $this->module_srl;
                Context::set('module_srl', $module_srl);
            }
 
            // module model 객체 생성 
            $oModuleModel = &getModel;('module');
 
            // module_srl이 넘어오면 해당 모듈의 정보를 미리 구해 놓음
            // 브라우져 타이틀, 관리자, 레이아웃 등 xe_modules table의 값과 정보
            if($module_srl) {
                $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
                $this->module_info = $module_info;
                Context::set('module_info',$module_info);
            }
 
            // 관리자 템플릿 파일의 경로 설정 (tpl)
            $template_path = sprintf("%stpl/",$this->module_path);
            $this->setTemplatePath($template_path);
        }
 
        /**
         * @brief 관리자 목록 
         **/
        function dispExampleAdminList() {
 
            // 페이지 네비게시션을 위한 설정
            $page = Context::get('page');
            if(!$page) $page = 1;
            $args->page = $page;
 
            // example admin model 객체 생성
            $oExampleAdminModel = &getAdminModel;('example');
            // example module_srl 목록 가져옴
            $output = $oExampleAdminModel->getExampleAdminList($args);
 
            // 템플릿에 전해주기 위해 set함
            Context::set('example_list', $output->data);
            Context::set('page_navigation', $output->page_navigation);
 
            // 관리자 목록(mid) 보기 템플릿 지정(tpl/index.html)
            $this->setTemplateFile('index');
        }
    }
?>

 

module이 가지고 있는 모델(model)의 객체를 생성한다는 것은 module이 사용하는 방법(메소드)을 나도(example) 여기에서(exampleAdminView) 도움을 받고 싶다는 뜻이다. 당연히 module이 사용하는 모델의 메소드는 자신이 관리하고 있는 xe_modules 테이블을 조회하고 모듈의 다양한 정보들을 확인하고 체크하는 일일 것이다. 그러한 준비가 되었다면 구해온 모듈의 정보($module_info)를 템플릿 파일에 보내기 위해 URL 뒤에 붙인다. 이것이 Context::set() 이다.
다시말해서 초기화(init) 부분에서는 일단 요청이 들어온 URL 뒤에 $module_srl 이 있는지 확인해 보고, 있다면 module 모델을 확장하여 어떤 모듈인지 정보를 달라고 module 모델의 메소드를 실행해 보고, 반환된 모듈의 정보 값을 템플릿에 보내기 위해 예쁘게 세팅해 둔다...^^

관리자 메뉴에서 모듈(example)을 클릭하면 dispExampleAdminList() 함수를 찾아서 실행한다. dispExampleAdminList 액션은 이미 module.xml 파일에서 어드민-인덱스로 작성해 두었기 때문이다. 목록을 만들 준비를 하기 위해 페이지에 대한 사전 작업을 해 둔다. 이번에는 내가(example) 사용하는 모델(Model)을 확장한다. 왜냐하면 xe_modules 테이블에서 module 컬럼을 확인하고 example 이라고 등록된 모듈이 있는지 조회하고 그 결과를 반환 받기 위해서다.

따라서 example.admin.model.php 파일을 만들고 목록을 조회할 수 있는 방법(메소드)를 포함시켜야 하는데 getExampleAdminList() 함수가 그 메소드이다. 이때 페이지 변수는 우선 "1"이라고 초기화하여 함께 보낸다. 결과값은 $output 변수로 반환 받는데 일단 같은 이름으로 $output 변수에 대입해 둔다. 반환 받은 값은 다차원 배열이기 때문에 그 중에서 실제로 원하는 값은 $output->data 에 역시 배열의 형태로 들어 있다. 이것을 URL 에 붙여 보내기 위해 $output->data 값만 뽑아서 $example_list 변수에 대입하여 보내는 것이다. 반환 받은 값에는 페이지에 대한 정보도 포함되어 있을 것이다. 이것도 같이 세팅해 보낸다...^^

목록을 가져오기 위해서 모델(Model)을 사용하지 않고 $output = executeQueryArray('example.getExampleList', $args); 의 형태로 직접 쿼리를 호출할 수도 있다. 물론 example 모듈이 queries 폴더에 가지고 있는 getExampleList.xml 쿼리 파일을 찾는다.(모델을 경유하지 않고 찾는 것이다.) 어떤 방법을 사용해도 좋지만 여기서는 모델(Model)을 애용(?)하는 방법에 대해 공부하고 있다...^^

 

3. example.admin.model.php

example 모듈의 어드민 모델(Model) 파일이다. 새로 작성하여 업로드 한다.

 

<?php
    /**
     * @class  exampleAdminModel
     * @author XE스쿨 모듈 만들기 예제
     * @brief  example 모듈의 admin model class
     **/
 
    class exampleAdminModel extends example {
 
        /**
         * @brief 초기화
         **/
        function init() {
        }
 
        function getExampleAdminList($args){
            $output = executeQueryArray('example.getExampleList', $args);
            return $output;
        }
 
   }
?>

 

위에서 설명했던 것 처럼 모델을 경유하는 것만 다를 뿐 같은 쿼리 요청이다. 모듈이 가지고 있는 queries 폴더에서 getExampleList.xml 파일을 찾아 실행하라는 뜻이다. 쿼리문은 XML 형식으로 작성되어 있다.(p.41) 따라온 인자들($args)은 계속 같이 전달해 준다...^^ 쿼리를 실행한 결과값은 $output으로 반환한다.

4. XML 쿼리

queries/getExampleList.xml

 

<query id="getExampleList" action="select">
    <tables>
        <table name="modules" />
    </tables>
    <columns>
        <column name="*" />
    </columns>
    <conditions>
        <condition operation="equal" column="module" default="example" />
    </conditions>
    <navigation>
        <index var="sort_index" default="module_srl" order="desc" />
        <list_count var="list_count" default="20" />
        <page_count var="page_count" default="10" />
        <page var="page" default="1" />
    </navigation>
</query>

 

XML 쿼리에 사용되는 요소와 속성에 대한 설명은 개발자 메뉴얼 p.41에 자세히 기술되어 있다. 중요한 것은 쿼리 파일의 이름이 요청 함수에서 설정한 이름과 항상 똑같아야 하고 쿼리 ID 역시 같아야 한다는 것, 그리고 함수에서 요청된 쿼리 파일은 항상 queries 폴더 안을 찾게 된다는 것이다. 기타 속성에 대한 설명은 모두 열거할 수 없기 때문에 다음과 같이 우선 간단히 정리하자.

위의 쿼리문은 다음과 같은 내용이다.

 

SELECT * FROM xe_modules WHERE ( module = 'example');

 

XE코어의 데이터베이스(DB)에 접속하여 xe_modules 테이블에 있는 모든(*) 내용을 선택하라는 뜻이다. 그런데 단 조건이 1개 있다. module 컬럼에 example 이라는 문자열이 있는 row 데이터만 골라 오라는 것이다...^^ 예를 들어 게시판(Board) 모듈이 만든 모듈은 board라고 적어 두었을 것이다. 그것은 제외하고..., 페이지(Page) 모듈이 만든것은 page라고 적어 두었을 것이다. 그것도 제외하고..., 외부페이지(Opage) 그것도 제외하고 내 것만 가져오라는 뜻이다...^^

이렇게 골라온 내용에다가 한 페이지에서 보여줄 목록의 갯수와 나누어지는 페이지의 갯수를 정리하고 모듈의 고유 번호(module_srl)를 기준으로 정렬하여 돌려 보낸다. 결과적으로 이렇게 구한 값은 $output 으로 반환되고 그 중에서 실제로 필요한 내용이 담긴 $output->data 를 $example_list 에 대입하여 관리자 뷰(View) 파일로 보낸다. 그리고 처음에 만들었던 관리자 목록에서 배열을 키와 값($val)으로 분해한 뒤 목록을 만들어 출력하는 것이다.

5. 결과 확인

당연히 아무것도 출력되지 않는다...^^ 입력된 내용이 없으니까...^^
정말로 궁금하면 default="example"에서 example을 board 또는 page로 수정해 보고 목록이 출력 되는지 확인해 보자...^^

💖 부운영자님 에게 암호화폐로 후원하기 💖

아이콘을 클릭하면 지갑 주소가 자동으로 복사 됩니다

* User ID : leesungmin
* User Name : 이성민
* Email : imadonis@naver.com
* Homepage : https://4880.net
* Birthday : 1972-07-24
* Member Group : 관리그룹, 유료회원, 문제출제
* Signup Date : 2012-07-19
* Following : 랩퍼투혼 whom the member is following.
* Following Count : 1people
* Followed by : 랩퍼투혼, 탑돌이 ... now follwing this member.
* Followed Count : 2people

< 빌립보서 4장 13절>
내가 주 안에서 크게 기뻐함은 너희가 나를 생각하던 것이 이제 다시 싹이 남이니 너희가 또한 이를 위하여 생각은 하였으나 기회가 없었느니라   
내가 궁핍하므로 말하는 것이 아니니라 어떠한 형편에든지 나는 자족하기를 배웠노니    
나는 비천에 처할 줄도 알고 풍부에 처할 줄도 알아 모든 일 곧 배부름과 배고픔과 풍부와 궁핍에도 처할 줄 아는 일체의 비결을 배웠노라
내게 능력 주시는 자 안에서 내가 모든 것을 할 수 있느니라 

* Document Count : 17366
* Comment Count : 90
* Document Count : 36
* Document Count : 126
* Comment Count : 134
* Document Count : 3
* Comment Count : 3
* Document Count : 1
* Comment Count : -1
카카오링크

제로XE/라이믹스/그누/워드프레스

회원만 쓰기 가능합니다.

List of Articles
No. Category Subject 페이지 Author Date Views
Notice Tip&Tech xe 동작순서 부운영자 2015.08.24 1016
Notice Tip&Tech XE의 애드온 및 모듈의 기능 요약표 부운영자 2015.01.16 1266
Notice Tip&Tech XEReferences 부운영자 2014.11.29 920
Notice Tip&Tech XE 스킨 제작 매뉴얼 v1.1 (Korean, PDF) file 부운영자 2014.11.29 1283
Notice Tip&Tech XE 개발자 매뉴얼 v1.1 (Korean, PDF) file 부운영자 2014.11.29 1809
Notice Tip&Tech xe 레퍼런스 모음 file 부운영자 2014.10.10 2537
230 모듈 입력 컨트롤러(Controller) Module Admin Controller for Insert/Update 모듈 입력/수정과 컨트롤러(Controller) 예제로 만들고 있는 example 모듈에서 새로운 모듈(mid)을 추가하고 수정할 수 있는 액션과 그에 따른 진행 과정을 그린 설계도이다. 모듈(module)을 추가 한다는 것은 example 모듈과 같이 기능적인 모듈을 추가한다는 것이 아니라, 앞으... 00026 부운영자 2020.08.13 50
» 모듈 모듈 확장과 모델(Model) 모듈 확장과 모델(Model) 관리자를 위한 백 엔드 뷰(View)가 실행되면 관리자-인덱스로 설정했던 dispExampleAdminList 액션이 작동하고 그 진행과정을 설명한 그림이다. 또한 앞으로 만들게 될 관리자 목록 보기를 위한 설계도이다. 이 과정에서는 어드민 모델(example.admin.model.php)을 이용할 계획이다. 실제로 게시판(... 00025 부운영자 2020.08.13 35
228 모듈 프론트엔드와 백엔드 뷰(View) Front and back ends 프론트 엔드(front-end)와 백 엔드(back-end)는, 사용자가 접근하는 영역을 말하는데 이때 사용자는 사람이 아닌 프로그램이 될 수도 있다. 예를 들어 컴퓨터 OS의 그래픽 파일 관리자는 컴퓨터의 파일 시스템에 대한 프론트 엔드이고 사용자와 직접 상호작용을 할 수 있다. 백 엔드 응용프로그램은 보... 00024 부운영자 2020.08.13 357
227 모듈 MVC 구조의 이해 Model-View-Controller XE Core는 모델-뷰-컨트롤러(Model-View-Controller) 개발 패턴에 기반한다. 이것을 줄여서 MVC 구조라고 말한다. 소프트웨어 공학에서 프로그램의 설계는 건축(architecture)과 같다. 시스템의 운영 구조를 목적과 명세에 따라 유기적 관계로 설계하고 업그레이드를 통제하는 지침과 원칙, 이것을 아... 00023 부운영자 2020.08.13 66
226 모듈 폼(form)과 DB Form &amp; DB XE 모듈을 이해하기 위한 기초 과정으로 폼(form)의 동작 방식을 살펴보자. 모듈은 결론적으로 폼과 DB의 관계이다. 모듈은 자신이 관리하는 테이블을 한두개 이상 가지고 있고 이것을 다루기 위해 폼을 사용한다. 이때 모듈에서의 폼의 처리 과정은 모델 뷰 컨트롤러 (Model-View-Controller) 개발 패턴에 기반한... 00022 부운영자 2020.08.13 112
225 모듈 XE의 URL 규칙 URLs on XE XE에서 생성한 URL 은 깔끔하고 검색엔진에서 색인되기 좋은 구조이다. XE는 일반적인 쿼리스트링 기반의 URL이 아니라 세그먼트 기반의 URL을 사용한다. 쿼리스트링(Query string) URL이란, 다음과 같이 쿼리 문자열을 포함하는 전형적인 URL 형식이다. &lt;http://www.xeschool.com/xe/index.php?mid=freeboard&amp;do... 00021 부운영자 2020.08.13 89
224 모듈 모듈의 기본 이해 The Story of XE Modules XE코어의 모듈 이야기... 1. 백엔드 어드민(Admin) 뷰(View) 구현을 위한 example 모듈 만들기 2. 프론트 엔드 뷰(View) 구현을 위한 BOOK 모듈 만들기 3. v1.5 룰셋(ruleset)과 BOOKMARK 모듈 만들기 . XE의 URL 규칙 폼(form)과 DB MVC 구조의 이해 프론트엔드와 백엔드 뷰(View) 모듈 확장과 모... 0002 부운영자 2020.08.13 25
223 모듈 XE 모듈 The Story of XE Modules XE코어의 모듈 이야기... 1. 백엔드 어드민(Admin) 뷰(View) 구현을 위한 example 모듈 만들기 2. 프론트 엔드 뷰(View) 구현을 위한 BOOK 모듈 만들기 3. v1.5 룰셋(ruleset)과 BOOKMARK 모듈 만들기 모듈의 기본 이해 BOOK 모듈 만들기 룰셋과 북마크 모듈 만들기 0001 부운영자 2020.08.13 18
222 XE코어 반복문 loop XE Template Syntax 반복문 loop 주어진 조건에 따라 필요한 내용을 반복해서 출력해야 할 때 반복문(루프/loop)을 사용한다. 1. 반복문의 이해 반복문은 컴퓨터가 만들어지면서 가장 먼저 시도된 증조 할아버지뻘 되는 구문이고 문법이다. 1+1 은 쉽다. 하지만 1에서 10까지 더하라고 하면 약간 머리가 복잡해진다. 사람들... 00105 부운영자 2020.08.13 46
221 XE코어 조건문 IF XE Template Syntax 주어진 조건에 따라 필요한 내용을 문맥에 알맞게 출력하거나 배제할 때 조건문을 사용한다. 1. IF 문 IF 조건문은 PHP의 IF 조건문과 동일하고 &quot;if, elseif, else, end&quot;와 &quot;조건식&quot;으로 이루어져 있다. if 문이 시작되면 반드시 end 문으로 닫아서 조건문이 끝났음을 선언해야 하고 조건식의 내용은 PHP... 00104 부운영자 2020.08.13 33
220 XE코어 파일 포함 include XE Template Syntax XE 템플릿 스킨의 HTML 문서 안으로 외부 파일을 불러와 포함시키기 위한 문법이다. 파일 포함 문법에서는 불러 들이고자 하는 외부 파일의 경로 설정을 상대 경로로 표시한다. 즉 HTML 문서의 자신을 기준으로 상대적인 위치의 경로를 이용한다. HTML 문서가 있는 같은 폴더 안의 default.css 파일을 포... 00103 부운영자 2020.08.13 57
219 XE코어 기본 문법 default XE Template Syntax 1. 변수 PHP에서 변수를 다루는 것과 동일한 방법으로 XE 템플릿 안에서 변수를 정의하고 출력할 수 있다. 변수를 나타내는 문자열 앞에는 달러($) 기호를 붙여 사용하며 변수명은 대소문자를 구별한다. 변수는 프로그램에서 미리 선언한 내용 또는 템플릿 안에서 사용자의 필요에 따라 새로운 변수를 정... 00102 부운영자 2020.08.13 72
218 XE코어 XE 템플릿 문법의 이해 XE Template Syntax 템플릿(template)이란 붕어빵을 만드는 틀로 비유된다. 같은 모양, 같은 크기의 객체(object)를 만들기 쉽다. 프로그래밍 언어에서 템플릿 구문은 초등학교 시절의 플라스틱 모형자를 생각하면 이해가 쉽다. 제각각 다른 모양, 다른 크기로 그려지는 삼각형도 모형자 하나만 있으면 모두들 똑같은 삼각형... 00101 부운영자 2020.08.13 56
217 XE코어 logged_info $logged_info XE에 접근하면 XE는 항상 방문자의 로그인 여부를 우선 먼저 확인하게 된다. 이때 사용하는 변수가 $is_logged 와 $logged_info 이다. Context.class.php 파일 137라인을 참고해 보면 member 모듈의 member.controller.php 파일의 메서드(해야 할 일)를 참고하여 방문자가 로그인했는지, 로그인했다면 세션과 ... 00092 부운영자 2020.08.13 118
216 XE코어 getUrl() getUrl() XE 레이아웃에 많이 쓰이는 getUrl() 함수이다. &quot;getUrl()은 현재 요청된 RequestURI에 주어진 인자의 값으로 변형하여 url을 리턴한다.&quot;고 설명되어 있다. 또한 인자는 (key, value)... 의 형식으로 주어져야 하고 (예... getUrl(&#039;key1&#039;,&#039;val1&#039;, &#039;key2&#039;, &#039;&#039;) : key1, key2를 val1과 &#039;&#039; 로 변형) 아무런 인자가 없... 00091 부운영자 2020.08.13 120
215 XE코어 Context.class.php 요청 인자(request arguments), 환경 변수(environment variables)와 같은 모든 컨텍스트(Context)를 관리 Context::methodname()로 호출할 수도 있고 정적 객체로도 호출할 수 있는 사용하기 쉬운 이중 방식 구조를 가지고 있다. Context는 GET/POST의 값을 수신하고 변수와 다양한 정보를 템플릿에 전달한다. 또한, 요청이... 00082 부운영자 2020.08.13 86
214 XE코어 Object.class.php XE 모듈 사이의 객체 인스턴스를 전달하는 기본 클래스(데이터를 주고 받기 위한 클래스) 모든 모듈은 객체(Object)를 상속한다. 객체(Object)의 error, message, variables 를 이용하여 통신을 하게 된다 Object 함수 목록 : 속성 var $error = 0; ///&lt; 에러 코드 (0이면 에러 아님) var $message = &#039;success&#039;; ///&lt; 에러 ... 00081 부운영자 2020.08.13 69
213 XE코어 함수라이브러리 func.inc.php clone($object) iconv($in_charset, $out_charset, $str) &amp;getModule($module_name, $type = &#039;view&#039;, $kind = &#039;&#039;) &amp;getController($module_name) &amp;getAdminController($module_name) &amp;getView($module_name) &amp;getMobile($module_name) &amp;getAdminView($module_name) &amp;getModel($module_name) &amp;getAdminModel($module_name) &amp;g... 00072 부운영자 2020.08.13 160
212 XE코어 환경설정 config.inc.php XE의 버전 및 개발자용 디버깅 설정이 저장된 파일 XE가 기본적으로 사용하는 함수라이브러리 func.inc.php 파일과 클래스(class)파일을 시작페이지 index.php 파일로 가져간다 define(&#039;ZBXE_VERSION&#039;, &#039;1.4.5.7&#039;); XE코어의 버전은 이곳에서 정의된다. require(XE_PATH.&#039;config/func.inc.php&#039;); XE코어에서 사용하기 위한 ... 00071 부운영자 2020.08.13 62
211 XE코어 XML 쿼리 언어 XML 쿼리 언어 XML Query Language SMaker님의 글을 전문인용하여 재구성하였다. - http://xe.xpressengine.net/wiki/18180631 개요 쿼리 사용방법 XML sample Select query 예제 Join Select 예제 Letf Join Select 예제 Insert 예제 update 예제 delete 예제 Select Click Count 예제 개요 XpressEngine는 SQL 쿼리를 그대... 0011 부운영자 2020.08.12 52
List
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
/ 14