PR

Smartyユーザーの皆さんは既にご存知の通り修正子が用意されており、変数を加 工して出力する事が出来ます。

{assign var="corporation" value="asial corporation"}
{$corporation|capitalize}

(上記のような既存の修正子が用途に合わない場合 || 必要とあらば) pulginsの 中にmodifierファイルを作成して好きなように変数を加工することができます。

これ以外にも暗黙的な修正子としてPHP関数を修正子として利用する事ができる のです。 以下に使用例を記述します。

{assign var="password" value="Secret Password"}
{$password|md5}

勿論、md5をかけるmodifierファイルを作成していなくても動作します。

{assign var="corporation" value="asial corporation"}
{$corporation|capitalize|strtr:" ":"-"}

上記のように引数を持つ場合はSmarty変数が第1引数となり、第2引数以降は:で 区切って渡します。 このような使い方にはあまり遭遇しないと思いますが、頭の隅に入れておけば必 ず役に立つ日がきます!

また、Smartyのif文の条件式にもPHP関数がそのまま使う事が出来ます。

<select name="regist_year">
{foreach from=$year_list item=year}
  <option value="{$year|escape}"{if date("Y") == $year}
selected="selected"{/if}>{$year|escape}</option>
{/foreach}
</select>

下記のようにSmarty変数を判定の対象とすることも出来ます。

{if is_numeric($data)}数値です{else}数値ではありません{/if}

Smartyのテンプレートはあくまでビューなので、PHP関数の過度な使用はお勧め できません。 ですが、ちょっとした時にこういった使い方ができることを知っていると、何か と便利な事もあるんじゃないでしょうか。