3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

Smartyのincludeの話

Smartyを使っててテンプレート側の共通部分を上手くまとめられないかと思いました。

例えば下記のようなテンプレートファイルがあるとします。

●hoge1.tpl

http-equiv="content-type" content="text/html; charset=utf-8">

</span></a></span>{$title}<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">

action="./check.php" method="post">

氏名: type="text" size="30" name="name" value="">

住所: type="text" size="30" name="addr" value="">}

type="submit" value="送信">

●hoge2.tpl

http-equiv="content-type" content="text/html; charset=utf-8">

</span></a></span>{$title}<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">

氏名:{$name}

住所:{$addr}

上記のテンプレートファイルですが、ヘッダ部分は共通化できますね。

ということで、Smartyの{include}を使うと、下記のようにヘッダファイルを共通化できます。

●head.tpl

http-equiv="content-type" content="text/html; charset=utf-8">

</span></a></span>{$title}<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">

●hoge1.tpl

{include file='head.tpl'}

action="./check.php" method="post">

氏名: type="text" size="30" name="name" value="">

住所: type="text" size="30" name="addr" value="">}

type="submit" value="送信">

●hoge2.tpl

{include file='head.tpl'}

氏名:{$name}

住所:{$addr}

リファレンスを見ると、includeするファイル名にも変数を使用できるようなので、上手くincludeを使うとかなり共通化できよりメンテナンスに強いサイトに出来るかもしれません。