You cannot see this page without javascript.

Skip Navigation

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


00:00

날씨

    • 흐림
    • 19.0°C
    • 85%
    • 30%
    • 흐림
    • 19.0°C
    • 90%
    • 30%
    • 흐림
    • 20.0°C
    • 85%
    • 30%
    • 흐림
    • 24.0°C
    • 70%
    • 30%
    • 흐림
    • 24.0°C
    • 70%
    • 30%
    • 흐림
    • 22.0°C
    • 75%
    • 30%
    • 흐림
    • 21.0°C
    • 85%
    • 30%
    • 흐림
    • 20.0°C
    • 90%
    • 30%
    • 26.0°C
    • 70%
    • 1mm
    • 23.0°C
    • 85%
    • 11mm
발표시간: ,
날씨 정보 저작권자 © 기상청
모듈
2020.08.13 14:54

프론트엔드와 백엔드 뷰(View)

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

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

Front and back ends

프론트 엔드(front-end)와 백 엔드(back-end)는, 사용자가 접근하는 영역을 말하는데 이때 사용자는 사람이 아닌 프로그램이 될 수도 있다. 예를 들어 컴퓨터 OS의 그래픽 파일 관리자는 컴퓨터의 파일 시스템에 대한 프론트 엔드이고 사용자와 직접 상호작용을 할 수 있다. 백 엔드 응용프로그램은 보통 요구되는 자원들에 가깝게 있거나, 또는 요구되는 자원들과 교신할 수 있는 능력을 가지는 등을 통해 프론트 엔드를 간접적으로 지원하게 된다. 프론트 엔드는 사용자가 직면하고 백 엔드는 응답에서 운영 체제의 프로그램을 시작한다.

CMS(Web content management systems)에 있어서 프론트 엔드(front-end)와 백 엔드(back-end)의 의미는, 모델-뷰-컨트롤러, 데이터베이스, 사용자 및 데이터의 처리와 구성 요소에 대해 개발을 단순화하거나 유지 보수를 쉽게 하기 위해 분리의 개념(Separation of presentation and content)과 설계 방식으로, 사용자가 직접 접근 할 수 있는 뷰(View)를 출력하는 것과 구성 함수들의 모음을 프론트 엔드, 모듈의 관리를 목적으로 접근하는 관리자 뷰(Administrator View)와 구성 함수들의 모음을 백 엔드라고 표현한다.

 

프론트 엔드
front-end
module_name.view.php
module_name.model.php
module_name.controller.php
skins/User_Skin/
list.html
백 엔드
back-end
module_name.admin.view.php
module_name.admin.model.php
module_name.admin.controller.php
tpl/
index.html

 

XE 코어의 모듈에서 뷰(View)를 출력하기 위한 클래스와 함수는 [모듈이름.admin.view.php] 파일과, [모듈이름.view.php] 파일이 관리한다. tpl 폴더는 관리자 뷰(Administrator View)를 위해 사용되는 템플릿 파일이 들어 있고, skins 폴더는 사용자를 위한 모듈의 프론트 엔드를 출력하는 스킨 파일이 들어 있다.

 

 

[예제] example 모듈을 만들고 엔드(Ends) 뷰(View) 구현하기

"end"란 "끝, 말단"이라는 뜻이다. 위에서 설명한 프론트 엔드와 백 엔드의 뜻과 더불어 사용자와 관리자 모두에게 가장 처음 또는 가장 가깝게 접근하는 영역을 엔드 뷰라고도 표현할 수 있다. 물론 프론트와 백 엔드 프로그램의 최종적인 결과물을 표시하게 된다. "end"와 비슷한 의미로 사용되는 것이 포트(port)다. 흔히 모바일 환경에서 뷰포트(Viewport)라는 메타태그를 들어봤을 것이다. 포트(Port)는 가장 먼저 접하게 되는 "대문"이기도 하면서 end와 같이 "끝, 말단"을 의미하기도 한다. 항구(seaport)와 공항(airport)을 표현 할 때도 포트(port)를 사용하는 것이 바로 그런 의미이다. 즉, 뷰포트(Viewport)란, 모바일 기기 환경에서 사용자가 가장 먼저 접하게 되는 뷰(View) 영역이면서 또한 기기와의 의사소통을 할 수 있는 창구, 대문, 화면상의 화상표시영역을 말한다.

따라서 XE 모듈의 엔드뷰(ends-view)라는 것은 사용자가 요청하는 모듈의 액션에 대한 응답과, 관리자가 백 엔드(back-end)에 요청한 내용의 결과물이라고 말할 수 있다. 당연히 사용자는 모듈의 액션(act) 이름을 모른다. 따라서 다음 과정에서 example 모듈을 예제로 만들어 보고 사용자가 접근하였을 때와 관리자가 접근할 때의 첫 결과물을 각각 나누어 보여주는 엔드뷰를 만들어 보자.

  • 완성된 예제 example 모듈 다운로드 : example.zip
  • 모듈 만들기 세부 옵션 및 속성 정보는 개발자 메뉴얼 참고 : 개발자 메뉴얼
  • 첨부된 모듈 파일은 백엔드 관리자 뷰(View) 구현을 위해 입력/수정/삭제 기능을 포함한 예제(example) 모듈이다.
  • 다음의 과정은 첨부파일이 없어도 단계별로 따라하면서 배울 수 있도록 준비된 기초 모듈 동작 설명서이다.

 

1. example 모듈의 생성과 conf/info.xml

1) XE 코어의 모듈 폴더(modules) 안에 example 폴더를 만들고, 모듈의 설정(config) 파일을 넣을 하위폴더로서 conf 폴더를 만든다.

/xe/modules/example/

2) 다음과 같은 info.xml 파일을 작성하여 conf 폴더 안에 추가한다.

conf/info.xml
<?xml version="1.0" encoding="UTF-8"?>
<module version="0.2">
    <title xml:lang="ko">example</title>
    <description xml:lang="ko">XE스쿨 모듈 만들기 예제</description>
    <version>0.1</version>
    <date>2011-10-01</date>
    <category>service</category>

    <author email_address="xeschool@xeschool.com" link="http://www.xeschool.com/">
        <name xml:lang="ko">XE스쿨</name>
    </author>
</module>

info.xml은 모듈의 제작자 정보와 설명에 대한 내용이다. 카테고리(category) 요소의 service는 관리자 메뉴에서 모듈 분류를 나타낸다. 즉 새로 추가되는 모듈의 이름을 서비스 관리 항목에 출력할 것인지 정보관리(content) 항목에 출력할 것인지 알려주는 옵션이다. 모듈의 기능과 성격에 따라 원하는 항목에 출력할 수 있다.(p.24)

2. 액션(action) 명세서 작성 : module.xml

conf/module.xml
<?xml version="1.0" encoding="utf-8"?>
<module>
    <grants />
    <permissions />

	<actions>
		<action name="dispExampleContentList" type="view" index="true" />
		
		<action name="dispExampleAdminList" type="view" admin_index="true" />
    </actions>
</module>

모듈의 동작과 관련된 액션(act)의 이름을 선언해 두는 정의 파일이다. 쉽게 말해서 앞으로 이 모듈이 해야 할 일(action)을 자세히 적어 둔 함수들의 명세서라는 뜻이다. 이 명세서에 함수들의 이름과 권한 등을 미리 기록해 두지 않으면 모듈에게 일을 시켜도 "난 모르오~!" 한다.

 

모듈의 처리

 

 

명세서에 적힌 액션의 이름, 즉 함수들의 이름은 XE코어에서 모듈 형제들을 관리, 감독하고 있는 모듈 핸들러(Module Handler)가 미리 확인한다. 핸들러(Handler)는 "조정기"라는 뜻이다. 자동차를 운전할 때 좌로, 우로 방향을 조정하는 장치의 이름 또한 핸들이다...^^ 마찬가지로 이 모듈이 작동하게 되는 기능적인 방향을 미리 모듈 핸들러에게 설명하는 것이다. 설명하는 방법은 간단 명료해야 하고 누가, 어떤 권한으로 사용할 액션인지도 알려 주어야 한다.

액션의 이름은 "disp+모듈이름+기능" 또는 "disp+모듈이름+관리자+기능"의 형식으로 머릿글을 제외한 단어의 첫 글자는 대문자로 작성하고(이것을 낙타 표기법이라고 한다.) 권한이 필요한 경우 Admin을 포함한다. Admin을 포함한다는 것은 결국 백엔드에서 사용할 함수라는 뜻이기도 하다. disp 대신 proc를 머릿글로 사용하는 경우 컨트롤러 함수명을 뜻한다. 당연히 컨트롤러 파일에 작성된 함수의 이름을 가리키고 type 역시 type="controller"라고 작성한다.

즉 타입(type)이란 이 액션의 함수가 어떤 파일(뷰-모델-컨트롤러)에서 정의 되어 있는지를 가리킨다. 예를 들어 사용자 뷰(View)를 가리키는 ContentList 액션은 example.view.php 파일에서 정의하고 앞으로 이 파일 안에서 함수를 찾아 사용하겠다고 한다면 타입은 "view"로 한다. 마찬가지로 관리자(Admin) 뷰(View)를 위한 AdminList 액션을 example.admin.view.php 파일에서 참조하겠다고 한다면 타입 역시 "view" 이다. 하지만 Admin이 포함되어 있기 때문에 admin.view 파일을 참조한다.

또 한가지, dispExampleContentInsert 라는 액션과 procExampleContentInsert 라는 이름이 비슷한 액션을 정의할 수도 있다. 하지만 머릿말도 다르고 엄밀히 말해 전혀 다른 액션이다. 즉 disp는 기능(insert)에 필요한 실행 함수가 필요한데 이것과 관련된 액션의 머릿말을 proc라고 설명하고 컨트롤러(controller) 파일에 정의 해 두겠다는 뜻이기도 하다. 즉 타입(type) 속성을 "controller"라고 정의한 procExampleContentInsert 액션은 example.controller.php 파일을 찾아 함수를 불러 실행하는 것이다. 모델(model) 파일에서 정의한 함수는 뷰(View)파일의 실행문 안에서 모델 객체를 생성한 후에 사용하기 때문에 명세서에서는 꼭 필요하지 않다. 만약 모바일(example.mobile.php) 설정 파일을 참조한다면 타입 속성은 "mobile"이다.

인덱스(index) 속성은 "가리키다"는 뜻이다. 무엇을 가리키느냐 하면 프론트 엔드 또는 백 엔드의 요청에 대해서 처음으로 가리키는 함수의 이름, 즉 액션(act)을 말한다. 모듈 핸들러는 액션 없이 요청된 내용에 대해 우선 먼저 "(검지 손가락으로) 이것을 가리키고" 실행한 후에 그 결과물을 보여주는 것이다. 따라서 인덱스(index) 속성은 여러 액션들 중에서 단 하나에만 적용해야 한다. 위 명세서에서는 프론트 엔드와 백엔드의 액션에 각각 1개씩 인덱스(index) 속성이 적용되었다.(p.25 액션 작성에 사용되는 속성 참고)

권한(grants/permissions)에 대한 이야기는 추후로 미루고 우선 2개의 액션만 작성한다. 프론트 엔드와 백 엔드를 위한 뷰(View) 액션이다. 사용자가 모듈에 접근했을때는 목록을 보여주기 위해서 ContentList, 관리자라면 모듈의 목록을 먼저 보기 위해서 List 라는 액션으로 함수의 이름을 작성하고 기본(index) 액션으로 설정 하였다. 이렇게 작성된 액션(act)은 앞으로 모듈 핸들러가 액션을 위한 변수 $act에 담아 URL에 붙여 사용하게 된다.(act=dispExampleContentList)

conf 폴더 안에 info.xml 파일과 module.xml 파일을 작성하여 example 모듈에 업로드하게 되면 비로서 관리자 메뉴의 관리 항목에서 원하는 위치에 추가된 모듈의 이름이 나타나게 된다. 하지만 시스템 관리>모듈>모듈 목록에서는 아직까지 모듈의 정보(info.xml)가 출력되지 않는다. 모듈의 정보는 example 모듈의 최상위 클래스(high class)인 모듈 클래스(example.class.php) 파일이 업로드 된 후에야 가능하다.

3. 모듈 클래스

모듈의 설치와 업데이트, 삭제를 위한 기본 함수를 포함하고 있기 때문에 기본 클래스 파일이다. 또한 XE코어가 추가된 모듈의 정보를 인지하는 역할을 하기 때문에 모듈의 최상위 클래스라고도 부른다. 클래스의 내용은 XE의 모든 모듈 객체를 관리하고 있는 "ModuleObject 클래스를 확장하여 새로 추가하는 example 모듈의 클래스(class) 모음이다."라는 뜻이다. 모듈 클래스를 모듈 폴더에 추가함으로써 XE코어의 다른 모듈들과 함께 사용될 수 있는 신고필증과 같다.

예제(example) 모듈에서는 특별히 추가할 내용이 없다. XE코어가 미리 정의해 두고 사용하는 기본 클래스의 내용을 그대로 유지한다. 모듈 클래스 파일을 /xe/modules/example/ 폴더에 추가하면 관리자 메뉴에서 모듈의 정보(info.xml)를 확인할 수 있게 된다.

/example.class.php
<?php
    /**
     * @class  example
     * @author XE스쿨 모듈 만들기 예제
     * @brief  example 모듈의 high class
     **/

    class example extends ModuleObject {

        /**
         * @brief 설치시 추가 작업이 필요할시 구현
         **/
        function moduleInstall() {

            return new Object();
        }

        /**
         * @brief 설치가 이상이 없는지 체크하는 method
         **/
        function checkUpdate() {

            return false;
        }

        /**
         * @brief 업데이트 실행
         **/
        function moduleUpdate() {

            return new Object(0, 'success_updated');
        }

        /**
         * @brief 캐시 파일 재생성
         **/
        function recompileCache() {
        }

    }
?>

4. 뷰(View)

module.xml 파일에 작성된 액션은 해당 뷰(View) 파일 안에 정의된 함수를 찾아 간다.

example_module_view

뷰(View) 파일 함수는 요청에 따른 결과물을 만들고 각각 관리자용 템플릿 파일 또는 사용자를 위한 뷰 파일을 찾아 출력하게 된다. 다음과 같이 example.admin.view.php 파일과 example.view.php 파일을 작성하여 모듈 폴더 안에 업로드 하도록 한다.

1) 백 엔드 뷰(View)

/example.admin.view.php
<?php
    /**
     * @class  exampleAdminView
     * @author XE스쿨 모듈 만들기 예제
     * @brief  example 모듈의 admin view class
     **/

    class exampleAdminView extends example {

        /**
         * @brief 초기화
         **/
        function init() {
            // 관리자 템플릿 파일의 경로 설정 (tpl)
            $template_path = sprintf("%stpl/",$this->module_path);
            $this->setTemplatePath($template_path);
        }

        /**
         * @brief 관리자 목록
         **/
        function dispExampleAdminList() {
            // 관리자 목록(mid) 보기 템플릿 지정(tpl/index.html)
            $this->setTemplateFile('index');
        }
    }
?>

함수의 초기화(init) 내용에서 관리자 뷰(View) 출력을 위한 템플릿 파일의 경로(path)를 미리 설정해 둔다. 그러면 다른 함수들은 뷰 템플릿 파일의 이름만 설정해도 해당 파일을 찾아 사용하게 된다. List() 함수가 호출되면 최종적인 결과물은 tpl 폴더 안에 있는 index.html 파일을 찾아 보여주게 된다.

2) 프론트 엔드 뷰(View)

/example.view.php
<?php
    /**
     * @class  exampleView
     * @author XE스쿨 모듈 만들기 예제
     * @brief example 모듈의 view class
     **/

    class exampleView extends example {

         /**
         * @brief 초기화
         **/
         function init() {
            // 스킨 경로를 미리 template_path 라는 변수로 설정, 스킨이 존재하지 않으면 default로 변경
            $template_path = sprintf("%sskins/%s/",$this->module_path, $this->module_info->skin);
            if(!is_dir($template_path)||!$this->module_info->skin) {
                $this->module_info->skin = 'default';
                $template_path = sprintf("%sskins/%s/",$this->module_path, $this->module_info->skin);
            }
            $this->setTemplatePath($template_path);
        }
        
        /**
         * @brief 목록
         **/
        function dispExampleContentList() {
            // 내용을 출력하는 스킨 파일 지정 skins/스킨폴더/view.html
            $this->setTemplateFile('list');
        }
    }
?>

사용자 뷰(View)를 위한 스킨 파일은 "skins/스킨폴더/" 안에 넣어 두고 사용한다. 이때 모듈은 사용자가 추가한 스킨폴더를 찾아보고 없으면 default 폴더를 기본 경로(path)로 설정하는 것이다. 하지만 지금은 백엔드 프로그램에서 스킨폴더를 구하고 설정하는 함수가 아직 없다. 따라서 나중에 쓰게 될 함수임으로 그냥 넣어 두자. ContentList() 함수가 호출되면 세팅된 스킨의 경로를 따라가 list.html 파일을 찾아 보여주게 된다.

2개의 뷰(View) 파일을 모듈 폴더 안에 업로드 한 후, 관리자 항목에서 모듈의 이름을 클릭하면 다음과 같은 메시지를 확인할 수 있다.

Err : "./modules/example/tpl/index.html" template file does not exists.

사용자 뷰(View)를 확인하기 위해 URL 뒤에 다음과 같이 모듈을 찾게 되면 같은 메시지를 만나게 된다.

/xe/?module=example

Err : "./modules/example/skins/default/list.html" template file does not exists.

 

5. 엔드(Ends) 뷰(View) 파일

1) 관리자(Administrator) 뷰(View) 템플릿 파일

모듈의 관리자 뷰를 위한 템플릿 파일을 다음과 같이 작성하여 tpl 폴더 안에 업로드 한다.

tpl/index.html
<div style="padding:30px">
	<h1>관리자(Administrator) 뷰(View) 템플릿 파일</h1>
	<p>이 페이지가 보인다면 관리자용 백 엔드(back-end) 뷰(View) 템플릿 파일이 정상적으로 로드 된 것입니다.</p>
</div>

2) 사용자(User) 뷰(View) 스킨 파일

스킨 폴더는 사용자 추가 스킨을 말하며 여러개를 추가하고 사용 할 수 있다. 따라서 해당 스킨의 정보를 포함하고 구분할 수 있는 skin.xml 정보파일을 다음과 같이 작성하여 업로드 한다.

skins/default/skin.xml
<?xml version="1.0" encoding="UTF-8"?>
<skin version="0.2">
    <title xml:lang="ko">example Default Skin</title>
    <description xml:lang="ko">
        예제 모듈의 기본 스킨
    </description>
    <version>0.1</version>
    <date>2011-10-01</date>
    <author email_address="" link="http://www.xeschool.com">
        <name xml:lang="ko">XE스쿨</name>
    </author>
    <license>GPL</license>
</skin>

모듈의 프론트 엔드에 출력되는 스킨 파일을 다음과 같이 작성하고 업로드 한다.

skins/default/list.html
<div style="padding:30px">
	<h1>사용자(User) 뷰(View) 스킨 파일</h1>
	<p>이 페이지가 보인다면 사용자용 프론트 엔드(front-end) 뷰(View) 스킨 파일이 정상적으로 로드 된 것입니다.</p>
</div>

 

6. 결과 확인

관리자(Administrator) 뷰(View) 템플릿 파일은 관리자 메뉴의 서비스 관리 항목에 표시되는 모듈의 이름(example)을 클릭하게 되면 dispExampleAdminList() 함수를 관리자 인덱스(admin-index)로 실행하고 위에서 작성된 뷰 파일이 출력 된다. 사용자(User) 뷰(View) 스킨 파일은 URL 뒤에 /xe/?module=example 와 같이 모듈의 이름을 요청하게 되면 dispExampleContentList() 함수를 인덱스(index)로 실행하여 출력 된다. 액션에 대한 권한을 추가하지 않은 상태이기 때문에 module=example와 같이 요청해도 모듈을 찾아 액션(act)의 기본 인덱스를 실행하게 되는 것이다.

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

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

* 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 : 17371
* 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 1814
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
229 모듈 모듈 확장과 모델(Model) 모듈 확장과 모델(Model) 관리자를 위한 백 엔드 뷰(View)가 실행되면 관리자-인덱스로 설정했던 dispExampleAdminList 액션이 작동하고 그 진행과정을 설명한 그림이다. 또한 앞으로 만들게 될 관리자 목록 보기를 위한 설계도이다. 이 과정에서는 어드민 모델(example.admin.model.php)을 이용할 계획이다. 실제로 게시판(... 00025 부운영자 2020.08.13 35
» 모듈 프론트엔드와 백엔드 뷰(View) Front and back ends 프론트 엔드(front-end)와 백 엔드(back-end)는, 사용자가 접근하는 영역을 말하는데 이때 사용자는 사람이 아닌 프로그램이 될 수도 있다. 예를 들어 컴퓨터 OS의 그래픽 파일 관리자는 컴퓨터의 파일 시스템에 대한 프론트 엔드이고 사용자와 직접 상호작용을 할 수 있다. 백 엔드 응용프로그램은 보... 00024 부운영자 2020.08.13 358
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 114
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 34
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 119
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 124
215 XE코어 Context.class.php 요청 인자(request arguments), 환경 변수(environment variables)와 같은 모든 컨텍스트(Context)를 관리 Context::methodname()로 호출할 수도 있고 정적 객체로도 호출할 수 있는 사용하기 쉬운 이중 방식 구조를 가지고 있다. Context는 GET/POST의 값을 수신하고 변수와 다양한 정보를 템플릿에 전달한다. 또한, 요청이... 00082 부운영자 2020.08.13 88
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 164
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