人気ブログランキング | 話題のタグを見る
Smartyのincludeの話
Smartyを使っててテンプレート側の共通部分を上手くまとめられないかと思いました。
例えば下記のようなテンプレートファイルがあるとします。
●hoge1.tpl

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>{$title}</title>
</head>
<body>
<form action="./check.php" method="post">
氏名:<input type="text" size="30" name="name" value=""><br>
住所:<input type="text" size="30" name="addr" value="">}<br>
<input type="submit" value="送信">
</form>
</body>
</html>



●hoge2.tpl

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>{$title}</title>
</head>
<body>
氏名:{$name}<br>
住所:{$addr}<br>
</body>
</html>


上記のテンプレートファイルですが、ヘッダ部分は共通化できますね。
ということで、Smartyの{include}を使うと、下記のようにヘッダファイルを共通化できます。

●head.tpl

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>{$title}</title>
</head>



●hoge1.tpl

{include file='head.tpl'}
<body>
<form action="./check.php" method="post">
氏名:<input type="text" size="30" name="name" value=""><br>
住所:<input type="text" size="30" name="addr" value="">}<br>
<input type="submit" value="送信">
</form>
</body>
</html>



●hoge2.tpl

{include file='head.tpl'}
<body>
氏名:{$name}<br>
住所:{$addr}<br>
</body>
</html>



リファレンスを見ると、includeするファイル名にも変数を使用できるようなので、上手くincludeを使うとかなり共通化できよりメンテナンスに強いサイトに出来るかもしれません。
by Jehoshaphat | 2012-05-13 21:33 | PHP開発


<< (Apache)名前バーチャル... (PHP)include_pa... >>