[php][smarty] Wyświetlenie tablicy z newsami

0

Witam

Mam tablicę z newsami, ot zwykła tablica zawierająca pola jak id, tytul i tresc.

Newsy chcę wyświetlić w następujący sposób:

news1 news2 news3 news4
news 5 news 6 news 7 news 8
news 9 news 10 news 11 news 12
...

Czyli pętla tworzy diva, wyświetla w nim 4 newsy,zamyka diva, tworzy następnego, w nim kolejne 4 newsy itd.

Podejrzewam, że to banał, ale jakoś mam zaćmę i nic nie mogę wymyślić drugi dzień.

Używam Smarty, ale będę wdzięczny za wszelkie pomysły.

Pozdrawiam.

0

dobra, ale czego nie wiesz?
jak pobrac dane z bazy wiesz?
jak w petli przejsc przez resultset wiesz?

0

Dane mam pobrane i mam je w zmiennej $a_newsy.

Nie wiem jak je wyświetlić, jak stworzyć pętlę foreach. Mam coś takiego:

{foreach from=$a_newsy item=a_news}

{$a_news.id_newsa}
{/foreach}

Tyle, że ten kod wyświetla 1 newsa w 1 divie, a chciałbym, żeby wyświetlał po 4 newsy w każdym divie

0

{foreach from=$a_newsy item=a_news name=newsForeach}
{if $smarty.foreach.newsForeach.index % 4 == 0 }

{/if} {$a_news.id_newsa} {if $smarty.foreach.newsForeach.index % 4 == 0 }
{/if} {/foreach}

zalozmy ze masz newsy od 1 do 6 wynik:

1 2 3 4
5 6
jesli chcesz jakis separatory miedzy newsami w tym samym div dodaj po {$a_news.id_newsa} {if $smarty.foreach.newsForeach.index % 4 != 0 } ...separator... {/if}
0

Ten sposób nie działa prawidłowo. Pętla tworzy diva, wrzuca do niego newsa, zamyka diva, potem wyświetla 3 newsy bez diva i tak w kółko.

EDIT: Rozwiązałem to w następujący sposób:

{assign var='i' value=0}
{foreach from=$a_newsy item=a_news name=newsForeach}
{if $smarty.foreach.newsForeach.index % 4 == 0 }

{/if} {$a_news.id_newsa} {assign var='i' value=$i+1} {if $i==4}
{assign var='i' value=0} {/if} {/foreach}

Dzięki za pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1