글쓴사람 김효중
글쓴시간2008년 1월 21일 오후 10시 55분 2초
    제목두개의 템플릿 디렉토리 지정은?
{#header}
{#body}
{#footer}


요렇게 설계를 해서 씁니다.

header, footer는 A 템플릿 디자인

#body는 B,C,D 형태로 템플릿으로 인해 디자인이 바뀔수 있습니다.

문제는 #footer부분이 header 템플릿 디렉토리로 따라간다는 겁니다.
footer에다가 다시 원래 디렉토리로 설정하기가 가능한지.. 두개로 나눠서 쓸 방법 갈켜주세용..
ㅠ.ㅠ
관리자 김효중님 안녕하세요

한 가지 방법은 디렉토리가 아래와 같을 때

/service/template/shared/head.tpl
/service/template/B/body.tpl
/service/template/C/body.tpl

var $template_dir = '/service/template';


공유되는 것은

$tpl->define('head', 'shared/head.tpl');

이렇게 하고 스킨별 디렉토리는 변수를 직접 만들어서 처리합니다.

$tpl->define('body', $skin.'/body.tpl');

$skin 값을 조건에 따라 B,C,D 등으로 지정하면 됩니다.


이 때, 템플릿언더바 속성중 var $skin 속성은 디폴트값인 '' 이어야 합니다.



다른 방법으로 심볼릭링크를 이용할 수 있습니다.

첫 스킨디렉토리내에 공유디렉토리를 만들고, 그 다음 스킨 디렉토리 내에는 같은 이름으로 공유디렉토리의 심볼릭 링크를 만듭니다.

/service/template/A/shared/head.tpl
/service/template/B/shared -> /service/template/A/shared
/service/template/C/shared -> /service/template/A/shared

이렇게 하면, 스킨값(A,B,C)은 언더바의 $template_dir 속성 또는 $skin 속성을 이용해서 한 번만 지정하면 됩니다.
08-01-22 13:37
김효중 지금 현재 말씀하신 방법으로 쓰여지고 잇습니다.
이것을 각기다른 시스템으로 돌리고 있는데 한군데에서 통합으로 부르다 보니 문제가 되서....

{#footer} 라고 쓴부분을
없애고

$tpl->print_("body");
$tpl->template_dir  = ROOT.'/skin_admin';
$tpl->print_("footer");

이렇게 변수를 다시 지정하고 출력문을 써주어서 해결했습니다. ㅡ.ㅡ;
머 별수 없죠.ㅋ
08-01-22 23:11
관리자 두 가지 방법을 답변드렸는데, 둘 다 말씀하신 것과는 다르네요.

우선은.. $template_dir 속성을 중간에 바꾸는 것 보다는 define 쪽에서 변수처리하는 것이 좋아보입니다.
08-01-22 23:33
    이름
비밀번호
 
Since 2003-03-03 hosted on vultr.com