ほぼ一年前の記事
(MTバージョン:ヾ【MT】ノ n回繰り返しのエントリーをdivとかで囲む、包む!)
のSmartyのtplでの書き方のメモです。
プログラム的なことは分からないのですが、これぐらいならやってみようと思い、考えてみました。
section関数などはhttp://www.hazymoon.jp/php/Smarty/05.htmlのサイト様を参考に致しました。
大変ありがとうございました!
{section name=entry loop=ループ回数を決定する値}
{if $smarty.section.entry.first}<div class="entryCover">{/if}
~中身~
{if $smarty.section.entry.last}</div>{else}{if $smarty.section.entry.iteration % 3 == "0"}</div><div class="entryCover">{/if}{/if}
{sectionelse}
<p class="noentry">エントリーありません。</p>
{/section}
こんな感じです。
上は3回繰り返すとdivで包むようになっています。
まず、sectionの名前を決めます。nameですね。
{section name=entry loop=$arrEntry}
とりあえず、entryにしました。(なんでもいいんです。)
すると次に、
{if $smarty.section.entry.first}<div class="entryCover">{/if}
ループの最初だけに実行されるfirstを記述することで、始めのdivを出力できます。
同じく次に、
{if $smarty.section.entry.last}</div>{/if}
ループの最後だけに実行されるlastを記述することで、最後のdivを出力できます。
次に最後ではない場合、の処理を設定します。
最後ではない、なので、lastのif文にelseを置き、
{if $smarty.section.entry.iteration % 3 == "0"}</div><div class="entryCover">{/if}
現在のループ数(iteration)をn回繰り返し後に包みたいdivの数字で割り算します。
割り算した結果、それが0ならば閉じdivと、次の始めのdivを出力するようになります。
今のところ、これで問題ないのですが、何か問題がありましたらご教授お願いしたいと思います!
section関数などはhttp://www.hazymoon.jp/php/Smarty/05.htmlのサイト様を参考に致しました。
大変ありがとうございました!