프로그래밍.../Smarty | Posted by 고기킬러 2009. 12. 23. 10:09

Smarty 템플릿 포함하기(INCLUDE)

INCLUDE (템플릿 포함하기)
-------------------------

이제는 Smarty에서 다른 템플릿 파일들을 어떻게 포함하는지 살펴보도록 하지요. 이것은
당신이 headers나 footers같은 반복적인 템플릿 데이터를 사용할 경우를 위한 것인데요.
이를 위해서는 templates/header.tpl과 templates/footer같은 별도의 템플릿 파일들을 만
들 필요가 있답니다.


--------- index.php --------
<?php
require("Smarty.class.php");
$smarty = new Smarty;
$smarty->assign("Name","Ned");
$smarty->assign(array(
"FirstName" => "Ned",
"LastName" => "Flanders",
"Address" => "Springfield"
));
$zipcode = "55555";
$smarty->assign("Zipcode",$zipcode);
$smarty->display("index.tpl");
?>

--------- templates/index.tpl --------
{include file="header.tpl" title="Home Page"}
Hello, {$Name}!<br>
{$FirstName}, {$LastName}<br>
{$Address}, {$Zipcode}
{include file="footer.tpl"}

--------- templates/header.tpl --------
<HTML>
<TITLE>{$title|default:"no title"}</TITLE>
<BODY>

--------- templates/footer.tpl --------
</BODY>
</HTML>


우리가 포함한 header.tpl에 어떻게 "title"이라는 변수를 넘겨주고 있는지 주목해 보세
요. 당신은 이런 식으로 당신이 원하는 더 많은 변수들을 넘겨줄 수 있어요. 포함된 템플
릿 파일들은 현재 템플릿 변수들을 모두 물려받게 되고 또한 위와 같이 넘겨진 변수들도
가지게 되는데, 이렇게 넘겨진 변수들은 오직 포함된 템플릿 파일에만 유효한 변수가 되
지요[역주: 함수에 넘겨진 변수는 함수 내에서만 접근되고 그 다음 사라지듯이 Smarty도
템플릿에서 포함한 파일로 이루어지는 변수 전달을 같은 방식으로 처리한다는 뜻입니다].

그리고 templates/header.tpl에서 $title 변수를 어떻게 출력하는지도 주목할 필요가 있
겠지요. 이것은 "default"라고 불리는 변수 변환자[역주: "variable modifier"가 원문인
데 변수 치환자라고 할까 하다가 이렇게 번역했습니다]를 사용한 모습이랍니다.

{$title}이라는 문장이 $title로 대입된 변수가 없으면 아무것도 하지 않는데 반하여
{$title|default:"no title"}이란 문장은 $title로 대입된 변수가 없어도 앞의 경우처럼
빈둥거리는 대신 "no title"이라는 출력을 수행한답니다..


출처 : PHP SCHOOL
역자 : 조한석 님 <sizer@systong.co.kr>

'프로그래밍... > Smarty' 카테고리의 다른 글

Smarty 섹션: 동적 블럭(SECTIONS: Dynamic Blocks)  (0) 2009.12.23
Smarty IF/ELSEIF/ELSE  (0) 2009.12.23
Smarty 변수대입(ASSIGNING VARIABLES)  (0) 2009.12.23
Smarty 설치하기  (0) 2009.12.23
Smarty 시작하기  (0) 2009.12.23