XOOPSやWordPressなど、他人が作ったデザインに対してもう少し「こうしたい!」と思うことが多々あります。Smartyのテーマで作られたデザインであれば、Smartyをちょっと変更したり、CSSを変更したりして見た目は変えられます。

ただ、やりたいことが動的な項目の場合、どうしてもプログラムを組む必要があります。システムを改変するより、Smartyにプログラムをちょっと書いて対応させてみましょう。

Smartyとは
Smartyで使用するテンプレートでは、単に値をはめ込むだけでなく、if文による条件分岐やforeachによるループ処理など、必要最低限の制御構造や組み込み関数が利用可能です。もちろんこうした機能の利用は必須ではなく、HTMLテキストと単純な変数のみでテンプレートをまとめることもできます。

 またSmartyは動作速度の面でも秀でています。最初にリクエストが発生した際に、テンプレートファイルを実行可能なPHPスクリプトにコンパイルし、その後のリクエストではコンパイルされたPHPスクリプトを再利用します。テンプレートに変更が加えられたときにのみコンパイルを再実行するなど効率面でも優れています。

 ほかにも、キャッシュ機能を搭載するなど、PHP本来のパフォーマンスを損なうことなく、ロジックとデザインを分離することができます。

XOOPSを例にすると、theme.htmlに次のように直接PHPを記述できます。

<{php}> ~~ <{/php}>

continue reading…