4C.3 修正子
- 表記法:
- { $value|modifier:parameter1:parameter2: ・・・ } { $value|modifier1|modifier2| ・・・ }
以下にSmatryに組み込まれている修正子の一覧を示し、簡単な説明とよく使うと思われる修正子の例題を挙げておきます。
一部の修正子は日本語対応が完全でないのでカスタマイズする必要があるかもしれません。 例えば、truncate は文字数でなくバイト数でトランケートするので漢字が2つの割られます。修正子はプラグインとして独自に組み込む事が可能です。
| 修正子 | 説明 |
|---|---|
capitalize |
全ての単語の先頭を大文字に変換します。 |
count_characters |
文字数をカウントします。 |
cat |
文字列を連結します。 |
count_paragraphs |
段落の数をカウントします。 |
count_sentences |
文の数をカウントします。 |
count_words |
単語の数をカウントします。 |
date_format |
日付と時間を strftime() のフォーマットに基づいて整形します。 この修正子はテンプレート変数がUNIXタイムスタンプや(strtotime によって解釈可能な) 文字列としてアサインされている場合に使用でみます。 date_format のフォーマット指定子は PHPマニュアルを参照して下さい。 用例:
{$today|date_format:"%Y-%m-%d %H:%M:%S"}
|
default |
変数がemptyまたはunsetである場合に、指定したデフォルト値を表示します。 用例:
{$cell|default:" "}
|
escape |
様々なエスケープを提供します。
用例:
{$contents|escape:"html"} {* & " ' < > をエスケープ *}
{$contents|escape:"htmlall"} {* 全てのhtmlエンティティをエスケープ *}
|
indent |
各行を字下げ(インデント)します。デフォルトは空白4文字です。 インデントに使用する文字と数が指定できます。(タブは"\t") |
lower |
小文字に変換します。 |
nl2br |
全ての改行文字を<br />タグに変換します。 PHPの nl2br() 関数 と同じ動作をします。 |
regex_replace |
正規表現による置換を行います。 詳細はphpマニュアルの preg_replace() 関数 を参照して下さい。 用例:
{$contents|regex_replace:"/[\r\t\n]/":" "}
{* CR,TAB,改行を空白に置換 *}
|
replace |
変数に対して正規表現を用いないシンプルな置換を行います。 用例:
{$contents|replace:" ":" "}
{* 空白文字をHTML実体参照に変換 *}
|
spacify |
文字間に指定文字を挿入します。指定文字のデフォルトは空白です。 |
string_format |
文字列をフォーマットします。 フォーマット文字列はPHPの sprintf() 関数 を参照して下さい。 用例:
{$number|string_format:"%d"}
|
strip |
連続した空白・改行・タブを、指定の1文字(デフォルトは空白)に置換します。 |
strip_tags |
< と > によって囲まれたマークアップタグを取り除きます。 |
truncate |
指定した文字長(デフォルトは 80 )で切り捨てます。 切り捨てられた時に終端に付加する文字列(デフォルトは '...' )を指定する事が出来ます。 尚、付加する文字列の文字長は元の切り捨ての長さに含まれます。 切り捨てを単語境界で行う( false )か 厳密な文字長ので行う( true )かの指定もできます (デフォルトは ture )。 用例:
{$contents|truncate:30}
{$contents|truncate:30:"...(続く)"}
{$contents|truncate:30:"...(続く)":true}
|
upper |
大文字に変換します。 |
wordwrap |
指定したカラム幅(デフォルトは 80 )で文字列をワードラップします。 次の行に ワードラップする為の文字(デフォルトは \n )の指定ができます。 また、ワードラップを単語境界で行う( false )か 厳密な文字長で行う( true )かの指定もできます (デフォルトは true )。 用例:
{$contents|wordwrap:30}
{$contents|wordwrap:30:"<br />\n"}
{$contents|wordwrap:30:"<br />\n":true}
|
