Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [smarty] 8 komórek na wiersz
Forum PHP.pl > Forum > PHP
Bajki
Witam
mam w smarty napisaną taką pętle :
  1. <tr>
  2. {section name=item loop=$albums}
  3. {strip}
  4. <td><img src="images/s/{$albums[item].filename}.jpg" /></td>
  5. {/strip}
  6. {/section}
  7. </tr>


no i spoko, ona wyswietla mi w rządku jakieś tam obrazki jako tabela. Ja jednak chciał bym aby skrypt po wyświetleniu 8 komórek w wierszu przechodził do następnego. Jak napisać takie coś w smarty ? winksmiley.jpg w php stworzył bym jakąs zmienną która zwiększałą by sie o jeden przy każdym przejściu pętli a kiedy osiągała by 8 to skrypt wyświetlał by </tr><tr> i zerował zmienną winksmiley.jpg nie wiem czy to dobre rozwiązanie i nie wiem też czy należy tak to rozwiązać w smarty

czekam na propozycje smile.gif
merk
Ja bym użył foreach oraz właściwości index lub iteration tej pętli

  1. <tr>
  2. {foreach from=$albums item=item name=foo}
  3. {if $smarty.foreach.foo.iteration % 8 == 0}
  4. </tr><tr>
  5. {/if}
  6. <td><img src="images/s/{$item.filename}.jpg" /></td>
  7. {/foreach}
  8. </tr>


Więcej o foreach znajdziesz tutaj:
http://www.smarty.net/manual/en/language.f....property.index
JoShiMa
Bardziej elegancko by było gdybyś w php zrobił tabelę dwuwymiarową wtedy w smarty to będzie tak:

  1. {section name=i loop=$tablica}
  2. <tr>
  3. {section name=j loop=$tablica[i]}
  4. <td><img src="images/s/{$tablica[i][j]}.jpg" /></td>
  5. {/section}
  6. </tr>
  7. {/section}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.