カテゴリー

月別過去記事

みるくぜりー内 検索
Loading

Smartyでfor文みたいな動きをさせるには

php+Smartyで以下のようなforを実現したい時のテンプレートの書き方をメモ。
マニュアル見る限りではできないものと思われがちなんだけど実はできるという(/ω\)
#いつも処理をしようと思うたびにぐぐってるので・・・。

php版でこれを・・・
for($i=0;$i<10;$i++){
    echo "$i<br>";
}


Smarty版
{section name=cnt loop=10}
{$smarty.section.cnt.iteration-1}<br>
{/section}
//※-1するのがポイント



とか

{section name=cnt loop=10}
{$smarty.section.cnt.index}<br>
{/section}


または

{section name=cnt start=0 loop=10}
{$smarty.section.cnt.index}<br>
{/section}
//※startを設定することで0から開始できる。一番for文っぽい動作かも。


コメント
smartyってホント便利ですよね。

$smarty.post.nameとかescapeもかけて使えば、
めちゃ楽できますし。

でもパーミッションをいじれず、
ファイルを一切書き出せないサーバーで作業を強いられて、
コンパイルファイルを作れないってエラー表示が出て
難儀しちょります。

ところで便利なデリミタ文字ってあります?

  • てかちゅう
  • 2005/11/30 3:19 PM
コメントありがとうございます。

smartyはきちんとルール付けておけばいろんなことが簡単にできるので
かなり重宝してます。

デリミタ文字は悩むとこですがいまのとこ会社ではASPっぽく<%〜%>で囲むようにしてます。
これも嫌う人がいるんですがそうそうかぶることのない文字なのでいいかなぁと(^-^;
はじめまして

あれ?for文ないのー?って思って調べたらここにたどり着きました。
かなり助かりました。

もうちょっと勉強して{for}自作しようかな・・・
  • captino
  • 2005/12/18 11:44 AM
コメントありがとうございます。

私のメモ書きエントリーが役に立ったようでよかったです。
最初はないなら自作しようかなと思っていたのですが、めんどくさかったのであきらめました(笑)
もし完成したら使ってみたいのでソース公開してもらえると嬉しいです。
こんな使い方があるとは、知らなんだ。
ありがとうございます。
  • 毘政
  • 2006/09/26 3:46 PM
captinoさんと同じく、for文ってないの?と思ってぐぐったらすぐに出てきました。
ありがとうございます。助かりました。
  • mizuki
  • 2006/12/20 4:32 PM
検索していたらたどり着きました。

参考になりました。ありがとうございました。
コメントする