CMS솔루션마켓, 이온디 - 워드프레스, 라이믹스, 카페24, 그누보드, 엑셀

Contents Management System

프로그램 배우는 걸 게을리 했더니 XE 함수라고 하는지 변수라고 하는지 구분은 잘 모르겠습니다.
프로그램 쪽에서 함수라 그러고 일반 게시판 스킨을 만들 때는 템플릿 변수라고 사용하는 것 같더군요. 
XE 레이아웃을 만들 때는 이런 XE 변수를 모르면 스킨 만들기가 꽤나 곤혹스럽습니다.
원하는 값을 표현하고자 하는데 마치 말은 아는데 글은 쓰지 못하는 문맹과도 같은 느낌을 받을 때가 있습니다.
그리고 오랜만에 하는 작업에서는 그 변수들을 모두 기억하지 못합니다.
내용만 간단히 짧게 쓰려고 하는데 또 주절이 말이 길었습니다.
이번 편에서는 아예 공지로 남겨두고 두고두고 쓰고 수정하려 합니다. (__);
scr_016.png
1. 상대경로 출력변수
{$tpl_path}

XE 레이아웃 스킨이 설치된 경로를 출력합니다.
일반적으로 레이아웃 스킨을 만들 때 백그라운드 이미지를 넣는다고 이렇게 사용합니다.
<잘못된 예>
body {background: url("./images/bg/overlay2.png") repeat left top;}
하지만 위 예의 코드를 그대로 사용하면 XE 레이아웃에서는 그 경로를 찾지 못합니다.
레이아웃 기준이 아닌 XE가 설치된 디렉토리를 기준으로 하기 때문입니다.
./layouts/스킨명/images/bg/overlay2.png 
이런 식으로 경로를 입력해야 제대로 찾아줍니다.
하지만 xe가 설치된 경로를 사용자마다 다를 수가 있습니다. 최상위에 사용하는 사람도 있을 테고, xe 혹은 xe2 이렇게 디렉토리를 만들어 사용하는 분도 있을 수 있으니깐요. 
{$tpl_path} 변수는 그래서 탄생했습니다.

<올바른 예>
body {background: url("{$tpl_path}/images/bg/overlay2.png") repeat left top;}
이렇게 사용하면 xe를 어떤 경로에 설치했든 해당 레이아웃의 경로를 찾아가 이미지 파일을 출력해줍니다.
2. 도메인 출력변수
{getUrl()}

{getUrl()} 변수는 도메인을 출력해줍니다.
http://eond.com
이렇게요 :)
레이아웃 스킨에서 로고를 클릭했을 때 기본으로 나타나는 링크에 입력하면 좋습니다.
3. 모듈아이디 변수
{$mid}
{Context::get('mid')}
현재 열려진 페이지의 모듈의 아이디를 출력합니다.
3.1. 모듈아이디 번호 출력변수
{$module_srl}
{Context::get('module_srl')} 
현재 열려진 페이지의 모듈의 번호를 출력합니다.
But, 일반 페이지 모듈이나 위젯 모듈에서는 번호가 출력되지만 게시판 모듈에서는 번호가 출력되지 않습니다.
이는 게시판에서는 프로그래밍 언어/변수가 먹히지 않기 때문입니다.
board 모듈에서 Context::set 형태로 $module_srl 이 정의가 안 되어있습니다.
대신 $module_info 가 정의되어있으니 {$module_info->module_srl} 이렇게 사용하시면 됩니다
{$module_info->module_srl}
4. 컨텐츠 출력변수
{$content}
5. 현재 사용중인 언어 출력변수
{$lang_supported[$lang_type]}
6. 레이아웃에 사용되는 변수 목록 출력
{print_r($layout_info)}
7. 모듈 개발에 사용되는 변수 목록 출력
{print_r($module_info)}
8. 모듈 및 스킨 개발에 사용되는 변수 목록 출력
<?php print_r($__Context); ?>
9. 어드민바 출력 변수
{Context::set("admin_bar", "false")}
true : 출력 / false : 비출력
10. 레이아웃 설정/편집 링크
1) 레이아웃 설정(관리자 모드)
{getUrl('','module','admin','act','dispLayoutAdminModify','layout_srl',$layout_info->layout_srl)}

2) 레이아웃 설정(레이아웃 모드)
<a href="{getUrl('act','dispLayoutAdminModify','layout_srl',$layout_info->layout_srl)}" title="{$lang->cmd_layout_management}">{$lang->cmd_layout_management}</a>

3) 레이아웃 편집
<a href="{getUrl('act','dispLayoutAdminEdit','layout_srl',$layout_info->layout_srl)}" title="{$lang->cmd_edit}">{$lang->cmd_edit}</a>

11. 레이아웃 관리자 집입 링크
{getUrl('','module','admin')}

예제
<li cond="$grant->manager"><a href="{getUrl('','module','admin')}" target="_blank">대쉬보드</a></li>

12. 레이아웃 사이트 관리자 진입 링크
{getUrl('','module','homepage')}

예제
<!--@elseif($logged_info->is_site_admin)-->
<div class="loginifadmin">
<a href="{getUrl('','module','homepage')}" onclick="window.open(this.href);return false;"><span title="{$lang->cmd_management}">{$lang->cmd_management}</span></a>
</div>
<!--@end-->

13. 
참조
https://www.google.co.kr/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=xe%20%EB%A0%88%EC%9D%B4%EC%95%84%EC%9B%83%20%EA%B2%BD%EB%A1%9C%20%ED%95%A8%EC%88%98
http://www.xeschool.com/xe/xenote_useful_function_geturl
https://www.xpressengine.com/index.php?mid=qna&page=570&document_srl=22768937
관련글
1. 템플릿 변수(조건문) 팁 http://www.xpressengine.com/tip/19819051
2. cond 문법의 변수화 http://eond.com/xe_forum/329788
3. XE 구문법과 신문법, cond 사용법 http://eond.com/xe_forum/325141
4. 템플릿 cond 문법에 else를 넣어봅시다. <block cond="else"></block> http://www.xpressengine.com/tip/21368316
5. XE 모듈/스킨 개발시 사용 가능한 변수 알아내기 http://www.xpressengine.com/tip/19582757
6. 위젯 스킨에 사용되는 변수명 http://eond.com/xe_forum/50857
7. XE $module_info 변수 추출 결과 http://musiclife.tistory.com/147
8. 확장변수 및 확장변수값 출력하기 http://musiclife.tistory.com/category/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/XE%28XpressEngine%29?page=2
9. xe 로그인 정보 활용 http://musiclife.tistory.com/category/프로그래밍/XE%28XpressEngine%29?page=3
10. XE 레이아웃에서 추출할 수 있는 XE관련 변수 정보 http://nemesys.co.kr/xe/1566
11. XE 레이아웃 관련 변수 모음 http://nemesys.co.kr/xe/1457
휘즈님의 XE팁 http://phiz.kr/xetip
xe core 변수 목록 http://sexylife.co.kr/archives/120?show=slide
1번

2번 (추천)

3번

4번 (추천)

5번

6번

7번 (추천)

 
댓글은 로그인 사용자만 작성 가능합니다. 로그인하기