smarty @Wiki

変数の修正子

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

変数の修正子

  1. capitalize
  2. count_characters
  3. cat
  4. count_paragraphs
  5. count_sentences
  6. count_words
  7. date_format
  8. default
  9. escape
  10. indent
  11. lower
  12. nl2br
  13. regex_replace
  14. replace
  15. spacify
  16. string_format
  17. strip
  18. strip_tags
  19. truncate
  20. upper
  21. wordwrap

変数の修正子は、変数やカスタム関数や文字列を修飾して出力するための修正子です。これを用いるには、変数名の後に |(パイプ)と修正子の名前を指定します。
また、修正子はその動作に影響を及ぼす追加のパラメータを 受け入れる場合もあります。そのパラメータは修正子の後に続き、:(コロン)によって分けられます。

例 5-1. 変数の修正子の例

{* $titleを大文字で表示する *}
<h2>{$title|upper}</h2>

{* $topicを40文字で切り捨て、終端に"..."をつけて表示 *}
Topic: {$topic|truncate:40:"..."}

{* リテラル文字列によって整形する *}
{"now"|date_format:"%Y/%m/%d"}

{* カスタム関数に修正子を適用する *}
{mailto|upper address="me@domain.dom"}

配列に対して修正子を用いた場合は、その配列に格納された全ての値に影響を及ぼします。
配列全体を1つの値として作用させるには修正子の先頭に@記号をつける必要があります。

(例) {$articleTitle|@count} (配列$articleTitleの要素数を出力します)

修正子は $plugins_dir から自動的に読み込むか(参照: 命名規約)、明示的に登録する事が可能です(参照: register_modifier?)。
さらに全てのphp関数は暗黙で修正子として 使用する事ができます(前述の @count の例では、Smartyの修正子ではなくphpのcount?関数を使用する)。

修正子としてphp関数を使うには2つの小さな落とし穴があります。
第1: たまに関数のパラメータの順序が 望ましいものではなくなる
({"%2.f"|sprintf:$float} は実際に動作するが、Smartyによって提供される {$float|string_format:"%2.f"} のほうがより分かりやすい)。
第2: $security が有効な場合、修正子として使用される全てのphp関数は $security_settings['MODIFIER_FUNCS']? 配列内で 信頼できるものとして定義される必要があるということ。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

記事メニュー
人気記事ランキング
目安箱バナー