Wyświetlanie zdjęć w kolumnach 2007-07-01
Przy galerii zdjęć bardzo często spotykamy się z wyświetlaniem poszczególnych zdjęć w tabeli. Automatyzacja tego zadania odbywa się poprzez wykorzystanie reszty z dzielenia, czyli mówiąc stricte informatycznie - operatora modulo, reprezentowanego w php poprzez znak %.
Często zdarza się, że przy generowanej tabeli istnieją na końcu puste pola. Np. mamy w tablicy 8 elementów, a rozdzielamy elementy na 3 kolumny. Zostanie nam 1 pole. To puste pole generuje pewne problemy przy określaniu kiedy kończy się tabela. Jednym ze sposobów poradzenia sobie z tym problemem jest dopełnić tablicę pustymi elementami, co czyni poniższy kod php.
Teraz zajmiemy się generowaniem tabeli. Postanowiłem zaprezentować rozwiązanie przy użyciu systemu szablonów smarty oraz bez. Najpierw zaprezentuje rozwiązanie w "czystym" php.
Rozwiązanie przy użyciu smarty wyglądałoby następująco.
<table>
{foreach from=$documents item=row key=key}
{if !($key % $columns)}
<tr>
{/if}
<td>
{if $row}
<img src="{$row.img}" alt="{$row.title}" />
{/if}
</td>
{if !(($key-$columns+1) % $columns)}
</tr>
{/if}
{/foreach}
</table>
Słowa kluczowe: PHP, Szablony, Techblog, kolumny, lista, tabela, zdjęcia, artykuł, blog
Kto jeszcze tabelek używa? Teraz wystarczy taki kod generować:
<div class="container">
<div><img src="obrazek01.jpg" alt="" /></div>
<div><img src="obrazek02.jpg" alt="" /></div>
</div>
I dodać trochę CSS - czytelność wyższa i możliwości zmiany większe.
Nawet div'ów nie trzeba, wystarczy float dla obrazka i ew display:block ;)
Ja tak odnośnie pierwszej części — nie lepiej zamiast tablicy hashy dać jeden wielki hash?
Tj. $aData = array('1.jpg' => 'kurs blabla', …);
Nie bardzo, dla uproszczenia przedstawiłem tylko 2 parametry, a przeważnie jest ich więcej.
Eh, jaki żal.
Autor i speedy. Jedyny sensowny zapis tego to:
<ul>
<li><img /></li>
<li><img /></li>
</ul>
po co się w sposobach prześcigacie.. niech każdy robi tak jak uważa za najprostrze :P
Jak dostaje stronę pociętą na tabelkach to trzymam się tabelek ;) Jak pisze od zera to użyje list :P
To był artykuł o php, czy css ?!