このマニュアルはSmartyのものです。セキュリティなどの問題でRCMSでは利用できないものもありますので、ご注意ください。
第 16章プラグインによる Smarty の拡張
Smarty 2.0 から導入されたプラグインアーキテクチャにより、 Smarty のほとんど全ての機能がカスタマイズ可能になりました。 プラグインには次のものがあります。
- テンプレート関数プラグイン
- 修飾子プラグイン
- ブロック関数プラグイン
- コンパイラ関数プラグイン
- プリフィルタプラグイン
- ポストフィルタプラグイン
- アウトプットフィルタプラグイン
- リソースプラグイン
- インサートプラグイン
プラグインの動作原理
プラグインは要求があると常に読み込まれます。テンプレートから呼び出された 修飾子・関数・リソース等のプラグインだけが読み込まれます。 さらに各プラグインは同じリクエスト内に Smarty の異なるインスタンスが複数実行されていても、読み込まれるのは一度だけです。
プリフィルタ/ポストフィルタとアウトプットフィルタは少し特殊です。 これらはテンプレートから呼び出されないので、テンプレートが処理される前に API 関数を経由して明示的に登録または読み込まれる必要があります。 同じ種類の複数のフィルタが実行される順序は、それらが登録または読み込まれる順序によって決まります。
プラグインディレクトリ は、単一のパスを示す文字列または複数のパスを格納した配列でとなります。 プラグインのインストールは、単にプラグインファイルをいずれかのプラグインディレクトリ内に置くだけです。 そうすれば Smarty はそれを自動的に使用します。