Smartyを使ったテンプレート


前のブログで書いたとあるサイト用のテンプレート機能だが、ようやく希望する形が出来上がってきました。

スタンダードなSmartyのつかい方は、テンプレートファイルにSmarty独自のタグを埋め込んでそこにPHPからデータを引き渡し表示させる。
またincludeタグを使って部分的にテンプレートへ挿入する。
と言ったもの。

さて、ここで大手ブログソフトやCMSで採用されているテーマファイル(基本レイアウト(2コラム・3コラム型といったもの)と装飾されたモノ)に各ブロックデータ(機能ごとにPHP上で生成されたコンテンツ)をテーマファイルに差し込んでテンプレートとして処理を行う・・・。
こういったものを大掛かりな仕掛けでなく、もっと簡素化して実現させようとしていました。

たしかに、大手ブログソフトやCMSで採用されている方式・コードはある意味完成の域に達してるし性能も申し分ないが、そこまで高機能・高性能である必要は今回なく、コンテンツをメンテする側が抵抗感・操作に負荷がない範囲であればかまわないので、そういったニーズ用に起し直していました。


この関係に携わった人じゃなければ「なんのことやら・・・」となってしまうと思いますが・・・w

Smartyで言うテンプレートとは基本的に静的なものであり、ある程度コンテンツとしての配置も完成されたもの。

では、テーマファイルは?
というと、あくまで大まかな外観のレイアウトが組まれただけのモノあり、個々に表示したいブロックコンテンツと言われる'半'動的なコンテンツ(ブログで言うならメニュー・カレンダー・お気に入り・ブログ記事などの大まかなレイアウト)を差し込んで、Smarty風に言うテンプレートとなる。
そこに細かいデータ(ブログで言うなら記事見出し・日付・内容など)を流し込む・・・と言った流れになる。

これを実現させるため、ここ数日頭を悩ませていましたw
簡素化・軽量化・使い易さ・・・と言った目的で。

これを本体のエンジンに組み込めば、かなり完成に近い状態にもっていけそうな予感・・・。