Configuration II * 이전    다음    목록
서브클래스를 사용한 환경설정예제입니다.
directory
/
web
site1 (web root)
index.php
_global (template directory)
_js
_img
skin1
layout.tpl
menu.tpl
_img
dir1
template1.tpl
dir2
dir3
skin2
directory1
index.php
directory2
directory3
site1_inc
Template_.class.php
Template.class.php
compile (compile directory)
Template.class.php
<?php
include dirname(__file__).'/Template_.class.php';
class Template extends Template_
{
   var $compile_check =true;
   var $compile_dir   ='/web/site1_inc/compile';
   var $compile_ext   ='php';
   var $skin          ='skin1';
   var $template_dir  ='/web/site1/_global';
   var $prefilter     ='adjustPath';

   function Template($skin='')
   {
      if ($skin) $this->skin = $skin;
   }
}
?>
directory1/index.php
<?php
include '/web/site1_inc/Template.class.php';
$tpl=new Template;
$tpl->define(array(
    'menu'  =>'menu.tpl',
    'main'  =>'dir1/template1.tpl',
    'layout'=>'layout.tpl',
));
...
$tpl->print_('layout');
?>
아래는 본 홈페이지에 사용된 템플릿서브클래스입니다. 실행파일들이 공통적으로 사용하는 템플릿변수,파일아이디를 할당하거나, 메서드를 추가해주면 작업 효율을 높일 수 있습니다.
Template.class.php
<?php
include dirname(__file__).'/Template_.class.php';
class Template extends Template_
{
    var $compile_check =false;
    var $compile_ext   ='php';
    var $skin          ='v1';
    var $notice        =false;
    var $path_digest   =false;

    var $prefilter     ='adjustPath';
    var $postfilter    ='removeTmpCode | arrangeSpace';
    var $permission    =0777;
    var $safe_mode     =false;
    var $auto_constant =false;

    var $caching       =true;
    var $cache_expire  =0;

    function Template()
    {
        $this->template_dir=$_SERVER['DOCUMENT_ROOT'].'/_global';
        $this->compile_dir =$_SERVER['DOCUMENT_ROOT'].'/../include/_compile';
        $this->cache_dir   =$_SERVER['DOCUMENT_ROOT'].'/../include/_cache';
        $this->define(array(
            'layout'=>'layout.htm',
            '!head' =>'layout.htm?head',
            'body'  =>'layout.htm?body',
            'menu'  =>'menu.htm',
        ));
        $this->assign('url', dirname($_SERVER['PHP_SELF']).'/');
    }
    function setMenu($page)
    {
        $this->assign('page', $page);
        $this->assign('menu', array(
            array('introduction', '/',        '머리말'),
            array('benchmark', '/benchmark/', '벤치마크'),
            array('tutorial1', '/tutorial1/', '설명서 1'),
            array('tutorial2', '/tutorial2/', '설명서 2'),
            array('tutorial3', '/tutorial3/', '설명서 3'),
            array('tutorial4', '/tutorial4/', '설명서 4'),
            array('tutorial5', '/tutorial5/', '설명서 5'),
            array('reference', '/reference/', '레퍼런스'),
            array('download',  '/download/' , '다운로드'),
            array('bbs',       '/bbs/',       '게시판'),
        ));
    }
}
?>
 이전 목록 다음 
 
Since 2003-03-03 hosted on vultr.com