티스토리 뷰

728x90
반응형
폴더명 부분은 위젯 폴더 이름입니다.

폴더명.class.php

conf/info.xml 에서 선언한 extra_vars를 args로 받은 후 처리 합니다.
결과는 Context::set 으로 돌려주어 skin/스킨이름/폴더명.html 파일에서 사용됩니다.

예제
위젯 편집 페이지에서 입력받은 제목 값($args->title)을 obj변수($obj->title)로 받은 후,
Context::set에서 obj로 값을 돌려줍니다.
<?php
    class 폴더명 extends WidgetHandler {

        function proc($args) {

            // 템플릿 파일에서 사용할 변수들을 세팅        
            $obj->title = $args->title;
            $obj->list = $args->list;

            // 템플릿의 스킨 경로를 지정 (skin, colorset에 따른 값을 설정)
            $tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
            Context::set('colorset', $args->colorset);
            $tpl_file = '폴더명';

            Context::set('obj', $obj);

            // 템플릿 컴파일
            $oTemplate = &TemplateHandler::getInstance();
            return $oTemplate->compile($tpl_path, $tpl_file);
        }
    }
?>


conf/info.xml
var에서 지정된 변수 값은 폴더명.class.php 파일에서 args 변수로 넘어갑니다.
type이 text이면 INPUT 폼을, select이면 SELECT폼을 출력합니다.

<?xml version="1.0" encoding="utf-8"?>
<widget version="0.1">
    <title xml:lang="ko">제목</title>
    <author email_address="이메일" link="홈페이지" date="만든 날짜">
        <name xml:lang="ko">제작자</name>
        <description xml:lang="ko">설명</description>
    </author>
<extra_vars>
        <var id="title">
            <name xml:lang="ko">좌측 설명</name>
            <type>text</type>
            <description xml:lang="ko">폼 하단 설명</description>
        </var>
        <var id="list">
            <name xml:lang="ko">좌측 설명</name>
            <type>select</type>
            <description xml:lang="ko">하단 설명</description>
            <options>
                <name xml:lang="ko">목록</name>
                <value></value>
            </options>
        </var>
</extra_vars>
</widget>


skin/스킨이름/폴더명.html
Context::set 로 지정한 변수 값을 받아서 출력합니다.

예제

<div>제목: {$obj->title}</div>
<div>목록: {$obj->list}</div>
반응형
댓글
댓글쓰기 폼