テンプレートの動的変更箇所(ソース修正を伴わず操作/状況により自動的に表示内容を変更する箇所)を記述するためのデータ記述例を下表に示します。
尚、PHPからSMARTYへの変数などの割り当ては、同名で指定されているものとします。
データタイプ | PHP | SMARTY |
---|---|---|
変数 | $name | $name |
配列 | $array[0] | $array[0] |
連想配列 | $array[value] | $array.value |
多次元配列 | $array[days][monday] | $array.days.monday |
POST | $_POST[value] | $smarty.post.value |
GET | $_GET[value] | $smarty.get.value |
SESSION | $_SESSION[value] | $smarty.session.value |
クッキー | $_COOKIE[value] | $smarty.cookie.value |
環境変数 | $_SERVER[PHP_SELF] | $smarty.server.PHP_SELF |
定数 | ROOT_DIR | $smarty.const.ROOT_DIR |
SMARTY側でのデータの編集は、サニタイズと表示形式への成型(「2007-06」 -> 「2007年6月」)など、修飾子による加工のみ行うようにして、複雑な加工や集計などの作業はPHP側で行うようにした方が良いでしょう。可読性やデザイナーとプログラマーの分業と言う意味でも有効だと思われます。
■配列の注意事項
連想配列の表記方法がPHPとは異なり、「 . 」を使用します。
そのためPHPのように文字列の結合として「 . 」を使用する事はできません。
「 { 」、「 } 」で区切って結合します。
( 「 echo $array[year].$array[month].$array[day] 」
-> 「{$array.year}{$array.month}{$array.day} )
「 $array[”day”.$counter] 」のような表記などの複雑な記述は避けて利用する方が賢明でしょう。
(できるのかは不明。ただ、実現できてもテンプレートの可読性が損なわれると思いますよ。)
TrackBack URI : http://njcfactory.com/bbg/wp-trackback.php?p=157
Comments (0)