ColorMe!ShopProのテンプレートカスタマイズで使用できるsectionループについてのメモ。
sectionとは別に<{foreach}>も使用できるが、sectionとforeachでは動作が微妙に違う。
【公式説明】 <{section}>~<{/section}>で囲まれいる部分は、リストの数分だけループします。
<{section name=num loop=$productlist}>
・
・ (ここがループ)
・
<{/section}>
sectionの後についてるのは属性名とその値。
name(属性)=num(値)のペアで設定することでループの動作を変えることが出来る。
必須属性がnameとloopなので、上記は必要最低限の指定ということになる。
また、sectionは入れ子が可能なので何重もネストして使うことが出来る。
sectionのこの文と
[smarty]<{section name=num loop=$category}>
<{$category[num].name}>
<{/section}>[/smarty]
foreachのこの文は同じ結果になる
[smarty]<{foreach from=$category item=i}>
<{$i.name}>
<{/foreach}>[/smarty]
カテゴリーリンクのsectionループ表示例
[smarty]
-
<{section name=num loop=$category start=0 max=4}>
- style=”background-image:url(<{$category[num].img_url}>)”<{/if}>>
<{if $category[num].img_url != ""}>
を参照。
独自タグ
独自タグ変数[nameでつけたセクション名].独自タグのプロパティという書き方。name
セクション名(自由につけれる)。
配列の番号が入るっぽいので、オブジェクトを代入しておく変数名という方が分かりやすいかもしれない。loop
categoryの数だけループを繰り返す。start
ループを開始するインデックス位置。通常は0から。
マイナスにすると、開始位置が最後尾からになる。 (-5にすると最後から5番目よりループが始まる)
7つしかないのに8とか設定しても、自動で切り捨てられるのでエラーにはならない。max
ループする最大回数。4にすると0~4まで出力する。step
ループインデックスを進めるために使われるステップ値。
例えばstep=2なら、インデックスは0, 2, 4の位置にあるものだけ表示。
stepの値がマイナスの場合は、ループの方向が逆になる。(0->10が10->0になる)show
表示するかどうかmaxとstartを指定すると、2つに分けることが出来たりする。
カテゴリの表示を例にすると…
[smarty]
最初のカテゴリ-
<{section name=num loop=$category start=0 max=4}>
- style=”background-image:url(<{$category[num].img_url}>)”<{/if}>> style=”background-image:url(<{$category[num].img_url}>)”<{/if}>>
「ColorMe!ShopPro sectionループについて」への1件のフィードバック