画像を表示して、その下に登録している画像の枚数分のリンクを表示させるsmartyのコードです。忘れないようにメモしておきます。
{if $num == ''} {assign var="num" value="1"} {/if} {assign var="num" value="`$num-1`"} <img src="{$foo[$num]}" /><br /> foreach from="$myArray" item="foo" name="loop"} {if $smarty.foreach.loop.index < 3 } {if $num != $smarty.foreach.loop.index} <a href="item.php?id={$myId}&num={$smarty.foreach.loop.iteration}"> {/if} {$smarty.foreach.loop.iteration}{if $num != $smarty.foreach.loop.index}</a>{/if} {/if} {/foreach}
assign
assignは、テンプレート変数をテンプレート実行時に代入するもの。
assign var="num" value="1"
numという変数に1を代入しています。
foreach
foreachは連想配列をループします。smartyとかphpとかを始めた時にこのforeachがどういうことなのかを理解するのにものすごく苦労しましたが、初心者に説明しろと言われても未だにいまく説明できません。
{if $smarty.foreach.loop.index < 3 } {if $num != $smarty.foreach.loop.index} <a href="item.php?id={$myId}&num={$smarty.foreach.loop.iteration}"> {/if} {$smarty.foreach.loop.iteration}{if $num != $smarty.foreach.loop.index}</a>{/if} {/if}
index
今日忘れないように一番書いておきたいことが、このindex(インデックス)です。
配列をゼロから数えた値がこのインデックスです。
iteration
現在のループが反復された回数を表示するのがiteration(イテレーション)です。
indexとは異なり、常に1から始まります。各ループごとに1ずつ加算されます。
他にfirst、last、show、totalなどがありますが、また使う機会があれば書こうと思います。
コメント