You cannot see this page without javascript.

Skip Navigation

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


확대 기본 축소
XE코어
2020.08.12 23:53

Context의 이해

profile
(*.168.0.1) Views 36 Votes 0 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

Understanding of Context

 

Context는 사전적 의미로 (어떤 일의) 맥락, 전후 사정을 뜻한다. 즉 어떤 글이 있다면 글의 맥락, 문맥이라는 뜻이기도 하다. 컴퓨터에서는 이것을 상황 정보라고도 표현한다. 쉽게 말해서 XE와 같은 CMS 프레임워크에서는 웹페이지를 만들기 위해 필요한 모든 정보를 가지는 데이터(Data)의 구조체라고도 말할 수 있다.

데이터의 구조체? 더 어려워진다...^^ Context를 어떠한 말로도 표현하기 쉽지 않다.

다음의 내용을 좀더 쉽게 이해하려면 아래 텍스트를 클릭해 보자.

 

XE에서 Context란?

XE에서 웹페이지는 이미 기본 형태를 갖춘 구조로 제공된다. 웹브라우저가 출력할 수 있는 HTML문서의 <!DOCTYPE>과 <html>, <head>, 그리고 <body>까지, XE코어를 설치하는 것만으로도 XE는 웹페이지의 모든 구조를 xe/common/tpl/common_layout.html 템플릿 파일에서 기본으로 제공하고, 위와 같은 Context 조립 키트에서 서버환경과 설치환경 그리고 관리자 설정에서 얻을 수 있는 변수와 값으로 대체되어 출력되는 것이다. 이때 $content는 사용자의 설정에 따라 모듈의 데이터(Data)가 자리를 잡게 된다. 페이지, 위젯 페이지, 외부 페이지 또는 게시판과 같은 기타 모듈의 내용값이다. 즉 위와 같이 Context는 프라모델의 조립 키트를 닮았다고 생각하면 좋다.

이렇게 완성된 웹페이지를 제공할 수 있는 가장 기초적인 데이터의 구조체, 다양한 조립 키트를 제공하는 일이 바로 Context 클래스가 하는 일이다.

XE가 동작하기 위해 처음으로 호출되는 index.php 파일을 살펴보면 $oContext = &Context;::getInstance();라는 객체 생성 구문이 있다. 즉 context.class.php 파일의 getInstance() 메서드가 반환하는 값을 참조로 받는다는 의미이다. 이때 반환되는 값 $theInstance 변수는 static 맴버변수 형태로 반환 받는다. 즉 이후 생성되는 모든 객체가 어떠한 값을 공통으로 사용해야 하는 상황에서 미리 객체를 만들지 않고도 접근할 수 있는 전역변수와 같은 역할을 한다는 의미이고, 다른 객체가 생성될 때마다 할당되는 메모리 영역이 아니라 자신만이 사용하는 전용 메모리 공간을 특별석으로 미리 확보하여 사용하겠다는 뜻이기도 하다...^^ 여하튼 Context는 모듈과 위젯이 만드는 결과물($output)과 함께 완성된 웹페이지를 출력하기 위한 모든 부품을 준비하는 조립용 키트라고 생각하면 좋다.

그러면 모듈과 위젯이 만드는 객체는 어떻게 받아서 사용하는 것일까? 해답은 새로운 부품 키트를 만드는 것이다. 아래 텍스트를 클릭해 보자.

 

Context::set()

 

이미 준비된 부품 외에도 모듈 또는 애드온, 위젯 등에서 Context::set() 메서드를 이용해 필요한 부품을 추가로 만들고 사용하는 것이다. 즉 모듈이나 위젯은 특별한(static) 객체이기 보다는 각각의 상황(Context)에 알맞게 임시로 메모리 주소를 할당받고 잠시동안 사용할 목적의 객체를 만들고 필요없는 경우 메모리 값을 해제한다. 이러한 세부적인 방법들이 Context.class.php 파일에 구현되어 있는 것이고 모듈, 애드온, 위젯은 자신의 메서드를 이용해서 얻은 데이터 값들을 우선적으로 Context에 세팅한다. 위 조립 키트의 내용은 매우 간략히 표현한 것이다. 모듈과 위젯 등이 호출되면 매우 다양한 조립 키트 부품들이 단일 또는 배열값으로 생성되고 이것을 잘 조립하면 항공모함도 만들 수 있게 된다...^^

 

// 모듈 정보 세팅할 때 Context::set('module_info', $module_info);

// 브라우저 타이틀 설정 Context::setBrowserTitle($oDocument->getTitleText());

// 위젯의 내용값을 세팅할 때 Context::set('widget_info', $widget_info);

// 애드온에서 필요한 파일을 세팅할 때 Context::addCssFile('./addons/resize_image/css/resize_image.mobile.css');

 

이렇게 추가로 세팅한 부품의 값은 "얻어야 한다." 따라서 Context::get(); 메서드를 이용하여 얻을 수 있고 넘겨 받은 데이터는, 다양한 방법으로 목적하는 또다른 형식의 값으로 가공하여 사용하기도 한다.

// 로그인 정보를 얻을 때 $logged_info = Context::get('logged_info');

// 요청된 변수 값들을 정리 $document_srl = Context::get('document_srl');

// 지정된 정렬값이 없다면 스킨에서 설정한 정렬 값을 이용함

              $args->sort_index = Context::get('sort_index');

              $args->order_type = Context::get('order_type');

// 선택한 목록을 세션에서 가져옴 $flag_list = $_SESSION 'document_management';

 

예제로 Context에서 얻어 볼 수 있는 현재 페이지의 값을 확인해 보자.

▶ 웹브라우저의 제목 :  {Context::getBrowserTitle()}

결과값 : Context의 이해

▶ 로그인 여부 : {$is_logged}

결과값 :

▶ 응답 방법 : {Context::getResponseMethod()}

결과값 : HTML

▶ 모듈 정보 -> 모듈 이름 : {$module_info->mid}

결과값 : xenote_understanding_of_context

 

* 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 : 17357
* Comment Count : 82
* Document Count : 36
* Document Count : 115
* Comment Count : 123
* Document Count : 2
* Comment Count : 2
* Document Count : 1
* Comment Count : -1
카카오링크
Attach Images or Files

Drop your files here, or click the button to the left.

Maximum File Size : 0MB (Allowed extentsions : *.*)

0 file(s) attached ( / )

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

회원만 쓰기 가능합니다.

List of Articles
No. Category Subject Author Date Views
Notice Tip&Tech xe 동작순서 부운영자 2015.08.24 1010
Notice Tip&Tech XE의 애드온 및 모듈의 기능 요약표 부운영자 2015.01.16 1261
Notice Tip&Tech XEReferences 부운영자 2014.11.29 933
Notice Tip&Tech XE 스킨 제작 매뉴얼 v1.1 (Korean, PDF) file 부운영자 2014.11.29 1273
Notice Tip&Tech XE 개발자 매뉴얼 v1.1 (Korean, PDF) file 부운영자 2014.11.29 1788
Notice Tip&Tech xe 레퍼런스 모음 file 부운영자 2014.10.10 2534
화제의 글 Tip&Tech PHP용 로그 라이브러리 공유합니다. 부운영자 2021.03.29 75
화제의 글 XE/라이믹스 게시글 DB 수동이동 부운영자 2021.03.17 51
화제의 글 매뉴얼 xml 쿼리 사용법 부운영자 2021.03.08 56
208 XE코어 클래스 친구들 클래스 친구들 Object.class.php Context.class.php 부운영자 2020.08.12 45
207 XE코어 설정을 위한 2개의 문서 환경설정 config.inc.php 함수라이브러리 func.inc.php 부운영자 2020.08.12 23
» XE코어 Context의 이해 Understanding of Context Context는 사전적 의미로 (어떤 일의) 맥락, 전후 사정을 뜻한다. 즉 어떤 글이 있다면 글의 맥락, 문맥이라는 뜻이기도 하다. 컴퓨터에서는 이것을 상황 정보라고도 표현한다. 쉽게 말해서 XE와 같은 CMS 프레임워크에서는 웹페이지를 만들기 위해 필요한 모든 정보를 가지는 데이터(Data)의 구조... 부운영자 2020.08.12 36
205 XE코어 xe의 시작페이지 index.php XE코어의 index.php는 무척 간단한 몇 줄의 PHP 구문으로 작성되어 있다. 하지만 index.php는 XE 전반에 걸쳐 가장 중요한 문서이다. 왜냐하면 XE가 기본적으로 사용하는 class파일을 모두 include(포함)한다. require(&#039;./config/ config.inc.php&#039;); 위 문장은 단 하나의 config.inc.php 문서파일을 불러오는 것 같지만 사실... 부운영자 2020.08.12 41
204 XE코어 xe 처럼 생각하고 말하기 클래스의 정의 class 객체 생성 class instance 상속 Extends 참조 Reference 부운영자 2020.08.12 21
203 XE코어 XpressEngine의 동작 순서 XE는 요청을 받고 이에 대한 결과를 만들어 출력을 하고 종료됩니다. 전체적인 동작순서는 아래와 같습니다. XpressEngine의 순서별 안내 XE의 각 순서별 자세한 내용은 아래와 같습니다. 1.요청 (Request) XE는 웹프로그램이며 XE가 동작하기 위해서는 브라우저, 어플리케이션, XE 혹은 다른 프로그램들을 통해서 요청을 받... file 부운영자 2020.08.12 32
202 XE코어 xe 코어 xe 코어 부운영자 2020.08.12 33
201 XE코어 xe 노트 소개 XE 코어의 이해를 위한 XE스쿨 학습 노트 XE코어를 살펴보는 것은 XE Core를 수정하거나 변경하기 위해서 공부하는 것이 아니다. XE코어가 생각하고 행동하는 방법을 유심히 살펴보는 것이고 작성된 코드의 내용을 한번 쯤 읽어보는(Reading Code) 작업이다. 그러면 XE와 좀더 친하게 지낼 수 있다...^^ 부운영자 2020.08.12 14
200 XE코어 XE 노트 xe 노트 소개 xe 코어 xe 모듈 xe 애드온 xe 위젯 부운영자 2020.08.12 15
199 Tip&Tech Chrome Console SameSite Cookie Attribute Warning 제거 Chrome Console SameSite Cookie Attribute Warning Is anybody else getting this Chrome console warning? A cookie associated with a cross-site resource at was set without the SameSite attribute. A future release of Chrome will only deliver Stack Overflow 부운영자 2020.07.29 47
198 Tip&Tech 리눅스 쉘스크립트, Crontab을 이용한 자동백업 따라해보기 리눅스 쉘스크립트, Crontab을 이용한 자동백업 따라해보기 Ubuntu 백업 스크립트 작성하기 아래 설명글은 Ubuntu 뿐만 아니라 모든 Linux 배포판에 대해서 공통적으로 실행가능합니다. 서버를 운영하면서, 백업과 보안은 항상 염두해 두어야 하는 사항이다. 리눅스 시스템.. 배우고 나누고 배우고 정리하 - RainbowM / 2017... 부운영자 2020.07.15 122
197 Tip&Tech Crontab 설정 방법 rhymix/rhymix-docs Rhymix Official Documentation. Contribute to rhymix/rhymix-docs development by creating an account on GitHub. GitHub 부운영자 2020.07.15 52
196 Tip&Tech 오류 좀 봐주세요!! mmm 이걸 해결 못하고 있네요...ㅜㅜ jQuery(function($) { if(viewer_option &lt; 1 &amp;&amp; viewer_srl.length &lt; 1 &amp;&amp; viewer_ext.length &lt; 1 &amp;&amp; viewer_url.length &lt; 1) return; var srl = viewer_srl.split(&#039; | &#039;); var ext = viewer_ext.split(&#039; | &#039;); var url = viewer_url.split(&#039; | &#039;); var l = url.length; var exts = &#039;pdf... file 부운영자 2020.07.04 49
195 Tip&Tech 빌어먹을 로봇 퇴치하기 =>SemrushBot 빌어먹을 로봇 퇴치하기 =&gt;SemrushBot 일반적으로 로봇을 차단하는데 robots.txt를 이용합니다. 하지만 robots.txt 규칙을 무시하는 빌어먹을(??) 봇들이 많습니다. .htaccess를 이용하는 방법도 있습니다. https://github.com/bluedragonz/bad-bot-blocker/blob/master/.htaccess 의 내용을 .htaccess 앞부분에 넣어주면 됩... 부운영자 2020.06.15 146
194 Tip&Tech 에디터 컴포넌트에서 특정 xml만 403 forbidden 라이믹스는 보안상 모듈 폴더 아래에 있는 xml 파일에 직접 접근하는 것을 막고 있습니다. 에디터 컴포넌트에서 xml 파일에 직접 접근할 필요가 있다면 .htaccess 파일 4번째 줄의 내용을 RewriteCond %{REQUEST_URI} !/modules/editor/(skins|styles)/ 에서 RewriteCond %{REQUEST_URI} !/modules/editor/(skins|styles|com... 부운영자 2020.05.18 123
193 Tip&Tech 크롬 사용시 로그인 풀림 현상 가생이닷컴 &gt; 공지사항 &gt; 크롬 사용시 로그인 풀림 현상 한국에 대한 해외반응 한류팬반응 일본반응 중국반응 한류영상등 번역 gasengi.com 부운영자 2020.04.27 177
192 Tip&Tech 파도타기 스크립트[ 프로모에 위치] &lt;!DOCTYPE html&gt; &lt;html lang=&quot;ko&quot;&gt; &lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; &lt;title&gt;파도타기시작 &lt;/title&gt; &lt;style type=&quot;text/css&quot;&gt; .wave_document{background: #53FF4C; width: 100px; height: 30px; border: 1px solid #CCCCCC; border-radius: 15px;} // .wave_document{background: #FFFFFF; width: 50px; height: 30px; border... 부운영자 2020.04.26 300
191 Tip&Tech 실시간 게시물 알림 모듈 1. 실시간 게시물 알림 모듈은? 사이트에 새로운 게시물(글,댓글) 등록시 사이트 하단에 알림을 띄워서 알려주는 모듈입니다. 서버와 지속적인 통신을 하므로 동시접속자가 적은 사이트에 적합합니다. https://ssgroom.com/xecenter/1368 undefined groom.com 부운영자 2020.04.25 133
190 Tip&Tech 윈도우에서 실행파일을 체크하지 못하는 문제 수정 윈도우에서 실행파일을 체크하지 못하는 문제 수정 · rhymix/rhymix@482985a https://xetown.com/questions/1333742 GitHub / 2020-02-07 부운영자 2020.02.10 434
189 Tip&Tech SSL 도입으로 http -> https 변환시에 주소 리다이렉트 시키기 SSL 도입으로 http -&gt; https 변환시에 주소 리다이렉트 시키기 여기 계신 분들이라면 당연히 다 알고 계시겠지만 문제는 인터넷에 나와 있는 한국말로 된 팁들이 대부분 어딘가 빠져 있거나 허술하거나 잘못되어 있더군요 저도 그것들을 믿고 실행했다가 작동이 안 되거나, 최상위 주소만 되고 세부주소는 안되거나 (예: xet... 부운영자 2020.01.29 437
List
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
/ 14