웹마스터 팁

Include 변수 담기

2011.05.03 02:15

니오티

View 클래스의 표현할 Function 쪽에
Context로 include 할 file들을 배열로 담습니다.

$formats = array('a.html','d.html','c.html','d.html');
Context::set('formats', $formats);

이런식으로 담은 후, tpl에서

<?php foreach(Context::get("formats") as $key=>$val){ 
    $oTemplate = &TemplateHandler::getInstance();
    print $oTemplate->compile('./modules/모듈명/tpl/', $val);
} ?>

로 뽑아온 후 로 찍어줍니다.

Template 치환 로직을 보면 {@}, {} 들이 모두 include보다 낮은 단계에서 실행합니다.
(여기서 낮다는 의미는 뒤늦게 파싱된다는 의미)

따라서, Include 함수를 파싱할때 context의 내용을 먼저 파싱함으로 이와같이 멋지게 선언할 수 있습니다.
여기서 템플릿에 <?, ?> 사용하게되는데요.

사용이 껄끄러우시다면 dispView쪽 Function쪽으로 처리를 숨기시면되겠지만, template에 담아 쓰심이 훨씬 후에 관리하기도 용의할겁니다.

이슈쪽에 남기신분이 있길래, 변수를 못쓰는게 아니고, 파싱이 늦게될뿐이에요.
그리고 include 쪽에도 context를 읽는 부분이 있긴합니다만, for문을 쓰시려면 이렇게 쓰셔도 좋다는 의미에서 올려봅니다.^^;

이건 포털..(http://niotsoft.com)