- CMSならRCMS ホーム
- サポート・マニュアル
- Smartyマニュアル
サポート・マニュアル
第 5章変数の修飾子
変数の修飾子は、 変数 や カスタム関数 や文字列を修飾して出力することができます。修飾子を適用するには、 変数名の後に | (パイプ) と修飾子の名前を指定します。 また、修飾子はその動作に影響を及ぼす追加のパラメータを受け入れる場合もあります。 そのパラメータは修飾子の後に続き、: (コロン) によって区切られます。 また、すべての PHP 関数は、暗黙的に修飾子として使用でき (あとで説明します)、修飾子は 組み合わせる こともできます。
配列に対して修飾子を用いた場合は、その配列に格納された全ての値に影響を及ぼします。 配列全体を1つの値として作用させるには修飾子の先頭に @ 記号をつける必要があります。
例: {$articleTitle|@count} - これは、 配列 $articleTitle の要素数を、php の count() 関数を修飾子として用いて出力します。
修飾子は $plugins_dir から自動的に読み込むか、明示的に register_modifier() 関数で登録します。2つ目の方法は、PHP スクリプトと Smarty テンプレートで 関数を共有する場合などに有用です。
先ほどの例で示したように、全ての PHP 関数は暗黙で修飾子として使用する事ができます。 しかし、修飾子としてPHP関数を使うには2つの小さな落とし穴があります。
第1に、 たまに関数のパラメータの順序が望ましいものではなくります。 $foo を {"%2.f"|sprintf:$foo} でフォーマットすることはできますが、 Smarty が提供する方式である {$foo|string_format:"%2.f"} のほうがより直感的です。
第2に、 $security が有効な場合、 修飾子として使用される全ての PHP 関数は $security_settings 配列の MODIFIER_FUNCS 要素で 信頼できるものとして定義される必要があります。
register_modifier()、 修飾子の連結 および プラグインによる Smarty の拡張 も参照してください。

![RCMSに関するお問い合せは0120-963-604[メールでのお問い合わせはこちらから!]](/files/user/img/header_banner_contact.gif)
