raining返信Smartyでデータを出力する際に自動でエスケープ処理をするように設定していることが多いと思います。変数によってはエスケープしないで出力したい場合があります。テンプレート内の変数に「smarty:nodefaults」を指定すればエスケープ処理されずに出力することが可能です。※Smartyのバージョンによっては記述が違う場合があるそうなので注意が必要です。下記にSmartyでテンプレート変数をエスケープしないで出力する方法をメモします。エスケープ処理をしない方法Smartyクラスで全ての変数にエスケープ処理を指定している場合です。配列で設定すれば、複数の修正子を設定することができます。array('escape:"html"');変数に対して「smarty:nodefaults」を指定します。{$test|smarty:nodefaults}上記のように指定すれば、エスケープ処理されずに出力することができます。default_modifiersテンプレート内で使用する全ての変数に適用する修飾子を指定します。指定したものはデフォルトで適用されるようになります。規定でエスケープ処理をかけるように設定した方がいいと思います。raining返信Smartyでforeachを使用して、繰り返し(ループ)処理をする方法をメモします。システムを実装していると、データをforeachしてループさせることが結構あります。phpの場合と記述方法が違うので注意です。key=key}{$key}{$value}{foreachelse}データがない場合の処理を記述{/foreach}fromに配列を指定し、itemに値の名前、keyにキーの名前を指定します。データがない場合、「foreachelse」に入ります。raining返信Smartyでphpのfor文のようにループを行いたい場合があります。フォームなどで選択する月や日などはループさせて出力することが多いです。phpの記述と違って、Smartyではsectionを使用します。今回はSmartyのsectionを使用して、phpのfor文と同じように使用する方法をメモします。loop=13}{$smarty.section.i.index}{/section}Smartyではfor文ではなく、sectionを使用してループさせます。startに初期値を設定します。raining返信Smartyで数値をカンマ区切りして出力する場合、number_formatを使用します。phpのnumber_format()と同じように使用することが可能です。金額を出力するときなど便利です。今回はSmartyでnumber_formatを使用し、数値をカンマ区切りして出力する方法をメモします。【phpの場合】number_format($num);【Smartyの場合】{$num|number_format}【出力結果】1,000phpと同じようにカンマ区切りで出力することができます。※「|」の前後に半角スペースを入れた場合、動作しなかったので注意です。raining返信phpで設定した定数をSmartyテンプレートで使用したい場合、下記のように予約変数を使用して値を取得します。※予約変数「$smarty」は環境変数やリクエスト変数を取得する時に使用します。phpで設定した定数をSmartyで使用する場合{$smarty.const}【php】define('HOGE_DATA','hoge');【Smarty】{$smarty.const.HOGE_DATA}また、Smartyの予約変数ではサーバ変数なども取得することができます。サーバ変数を使用する場合{$smarty.server}・$_SERVER[‘HTTP_HOST’]を取得する場合{$smarty.server.HTTP_HOST}その他下記の値も取得することができます。