Smartyで任意のディレクトリのファイルをテンプレート化

By | 2012/12/28

Smartyは、templatesディレクトリなどを作って、テンプレートはそこに置くというのが基本の使い方。
でも、実はどの階層のどのディレクトリにでもテンプレートを置くことができる。

$smarty->fetch('file:/home/xxx/public_html/information/about.html');

みたいな感じで、file:の後にフルパスで指定できる。(相対パスで書いたらtemplatesディレクトリ内での相対パスになる)

つまり、全てのhtmlファイルを前処理するようなphpスクリプトをサイトに置いて、$_SERVER['PATH_TRANSLATED'] などを参考にアクセスされたHTMLファイルのパスを取得すれば、サイトにFTPされただけの素のhtmlファイル全てに対して、Smartyテンプレートとしてタグの埋め込みが可能になる。

という事は、共通ナビゲーションの加工やログイン有無での表示切替などを、PHP+Smartyでガリガリできる。

色々面白い事ができます。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です