Smarty Tips

Smartyテンプレートへの CSS、JavaScript記述

{literal}
  <style rtpe="text/css">
  body {
    background: #FFBBE8;
  }
  </style>
{/literal}

CSS記述やJavaScript記述は{literal}で囲まないと { 文字、} 文字がSmartyタグだと勘違いされてしまいます

 

数字フォーマット

  • 数字に3桁区切りなどの書式
    例:123,456,789
    {$outData|number_format}
  • 数字に3桁区切りなどの書式(小数桁数2)
    例:56,789.12
    {$outData|number_format:2}

 

繰り返し(foreach)

  • 書式
    {foreach from=[配列] key=[キー] item=[アイテム] name=[このループブロックの名前]}
        // 処理
    {foreachelse}
        // 処理
    {/foreach}
  • サンプル
    {foreach from=$data key="key" item="value" name="list"}
        <li>{$key}:{$value}</li>
    {/foreach}

{$key}は 0,1,2,3……

  • 現在のループ回数($smarty.foreach.mainloop.iteration)
    {foreach from=$outMaster key=key item=val name=mainloop}
      <li>{$smarty.foreach.mainloop.iteration}</li>
    {/foreach}

{$smarty.foreach.mainloop.iteration}は 1,2,3,4……

 

デフォルト表示文字

  • 変数が存在しない場合、デフォルトの文字列を表示する
    ようこそ{$userName|default:'ゲスト'}さん
  • 管理画面等ではエラー表示部分に使えます
    <div style="color:red;">{$errorMessage|default:''}</div>

 

for文処理

  • PHP版
    for($i=0;$i<count($data);$i++){
        echo "$i:$data[$i]";
    }
  • Smarty版
    {section name="test" loop=$data}
        {$smarty.section.test.iteration}:{$data[test]}
    {/section}

 

  • PHP版
    for($i=7;$i<=10;$i++){
        echo "$i:$data[$i]";
    }
  • Smarty版
    {section name="test" start=7 loop=10 loop=$data}
        {$smarty.section.test.iteration}:{$data[test]}
    {/section}

 

デバッグ表示

Smartyテンプレートに渡された情報を表示します。

{debug}

http://k-tateno.s-tanno.com/wiki/img/dfw_smarty_debug.jpg

 
 


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-06-15 (火) 19:20:28 (85d)