XpressEngine에 관련 내용에 대해서 이야기 합니다.
글 수 193
이번에 스킨을 제작하다가 필요이상의 기능이 스킨상에서 이루워져야 하는 문제 등으로 애드온을 하나 만들게 되었습니다.
소개
본 애드온은 XE 스킨 상에서 특정 php의 함수를 호출하여 템플릿 실행 전 추가 시켜주는 애드온 입니다.
설치
- 아래 첨부파일 func_include.zip 파일을 다운 받아 압축을 풀어서 addons 폴더안에 넣으세요.
- 관리자 페이지에서 해당 애드온을 사용으로 설정해주세요.
사용법
본 애드온을 이용하여 스킨상에서 php문을 불러오기 처리하기 위해서는 아래와 같은 조건이 되어있어야 합니다.
파일준비
스킨상에서 선언되는 경로안에 파일이 있어야 하기 때문에
스킨폴더상에 'php 폴더명'(아무이름상관無), 'class.php'(아무이름상관無) 을 만들어주세요.
class.php의 기본 내용
<?php if(!defined("__ZBXE__")) exit(); class 클래스명 { function test(){ return 'ok'; } } ?>
위 테스트가 기본 내용 입니다.
클래스명을 임의로 만들어주시고 그 안에 함수들을 만들어주세요.
템플릿파일안에 선언
예) modules/board/skins/스킨명/아무파일중.html
<!--@if($func_check)--> {@ func_include('modules/board/skins/스킨명/php/class.php') } <!--@end-->
func_include 함수는 애드온에 포함되어 있습니다.
()안의 내용은 xe메인 폴더로 부터 이름부터 시작해서 파일확장자명까지 적어주시면 됩니다.
<!--@if($func_check)--><!--@end--> 이것을 사용하는 이유는 애드온 실행 여부 검사 입니다.
애드온 안에는 실행여부를 파악할 $func_check 변수를 생성하도록 되어있습니다.
반드시 불러온 모든 호출 함수는 위와 같이 변수로 감싸주시기 바랍니다.
ps : './, /' 등 앞에 쓰지마세요.
함수접근 및 선언법
<!--@if($func_check)--> { 클래스명::test() } <!--@end-->
위와 같이 기본적인 조건을 설정하신 후 스킨 출력을 했을 시 ok가 나오면 성공 입니다.
DB용 XML 파싱법
함수 안에서 요청받은 내용만 가공이 아니라 DB내용도 불러올 수 있습니다.
스킨상에 php폴더와 동등한 위치에 'queries'폴더를 생성해 주세요.
해당 폴더안에 제작하신 xml등을 추가해주세요.
DB XML 파싱 접근법
//스킨 $output = executeQueryArray('board/skins/스킨명.xml파일명(확장자제외)', $args); //위젯 $output = executeQueryArray('widgets.위젯명/skins/스킨명.xml파일명(확장자제외)', $args);
이상의 설명을 듣고서도 이해 되시는 분들이 있고 안되시는 분들이 계실 겁니다.
본 애드온을 이용하여 제작된 로마네스크 로그인 스킨이 있습니다.
해당 스킨안에 위 접근 법 등 기본적인 내용이 들어가 있으니 이해 안되시는 분들은
그 부분이라도 좀 더 참고해 주시기 바랍니다.
라르게덴
- 2009.01.07
- 23:50:08
- (*.79.64.78)
스킨이나 위젯을 개발하시는 분들에게 편한 애드온인데요.
XE에 기본적으로 만들어져있지 않은 별도의 기능을 만들려고 하면 함수를 하나 만들어서 사용해야 하는데요.
그 함수를 놓을 자리가 일반적으로는 없답니다.
스킨 템플릿파일(스킨파일.html)에는 if나 foreach 등은 사용가능하지만 function() 함수는 사용을 못합니다.
하여 스킨상에서도 용의하게 php파일을 불러들여 함수를 구현하게 해주는거죠.
초보자에게는 이해하기 힘들지만 이 애드온을 통해서 일반 스킨에서 만들지 못했던 기능을 다양하게 구현한다는 점에서
본 애드온을 기본으로 '사용' 으로 두시면 되는 것 입니다.
본 애드온을 '사용'으로 해두었다고 해서 홈페이지가 느려지진 않습니다.
워낙 짧은 소스이니까요...
XE에 기본적으로 만들어져있지 않은 별도의 기능을 만들려고 하면 함수를 하나 만들어서 사용해야 하는데요.
그 함수를 놓을 자리가 일반적으로는 없답니다.
스킨 템플릿파일(스킨파일.html)에는 if나 foreach 등은 사용가능하지만 function() 함수는 사용을 못합니다.
하여 스킨상에서도 용의하게 php파일을 불러들여 함수를 구현하게 해주는거죠.
초보자에게는 이해하기 힘들지만 이 애드온을 통해서 일반 스킨에서 만들지 못했던 기능을 다양하게 구현한다는 점에서
본 애드온을 기본으로 '사용' 으로 두시면 되는 것 입니다.
본 애드온을 '사용'으로 해두었다고 해서 홈페이지가 느려지진 않습니다.
워낙 짧은 소스이니까요...