Smartyのループ処理についての覚え書き

カラーミーショップや、EC-CUBEは「Smarty」というテンプレートエンジンを利用しています。

で、このSmatyはループ処理を柔軟にカスタマイズすることが出来るという
非常に便利な機能があるのですが、項目が多くて覚えきれません。。。。

かなり今更な内容ですが、今回、調べる必要があったので、ついでにまとめておきました。

配列$arrayの内容をループする処理。

<{section name=test loop=$array [start] [step] [max]}>
値が存在するときの処理
<sectionelse}>
値が存在しないときの処理
<{/section}>

start・・・ループを開始するインデックス位置。
step・・・ループインデックスを進めるために使われるステップ値。例えばstep=2なら、インデックスは0, 2, 4をループします。stepの値が負の場合は、配列の前方に向かって進みます。

max・・・セクションがループする最大の回数

【sectionの中でしか使えない変数】

* index……現在のループインデックス
* index_prev……前回のループインデックス
* index_next……次回のループインデックス
* iteration……現在のループ回数
* rownum……現在のループ回数(iterationの別名)
* first……最初の反復の時,True
* last……最後の反復の時,True

※カラーミーショップでは、以下のようなコードが利用されています。

<{if $smarty.section.num.iteration % 5 == 0 and $smarty.section.num.last == false}><br class="clear" />

【sectionの外でも使える変数】

* loop……最後のインデックス
* total……ループ回数

※今回の覚え書きを作成するに当たって、xoops技術報告書 – Wander Wonder xField様のコンテンツを参考にさせて頂きました。

This entry was posted in Smarty and tagged . Bookmark the permalink. Comments are closed, but you can leave a trackback: Trackback URL.