カラーミーショップや、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様のコンテンツを参考にさせて頂きました。