2012-07-15 4 views
5

Pracuję z Smarty. Chcę dodać warunek if else w moim pliku .tpl dla klas n-child li/div.jeśli w innym przypadku stan smarty .tpl dla n-dzieci lista/div

Mam dwa rozmiary obrazu. Chcę użyć obrazu 600px w pierwszym li, obrazu 400px na 2. i 3. miejscu, i znowu obraz 600px w 4. li i tak dalej.

Obecnie używam selektora CSS3 nth-child i używam skalowanych obrazów 400px. Ale czas ładowania jest zły. W razie potrzeby chcę użyć mniejszych obrazów.

Myślę, że to bardzo skomplikowane. Czy to jest?

Oto mój kod:

<img src="{$purl}/thumbs/{$posts[i].pic}" alt="{$posts[i].story|stripslashes}" /> 

i istnieje w pętli {section name=i loop=$posts} {include file="posts.tpl"} {/section} wewnątrz posts.tpl.

Odpowiedz

2

cycle będzie pomocny.

Załóżmy, że masz tablicę ścieżki do obrazków zapisanych w dwóch dziedzinach: image-600 i image-400:

{foreach from=$images item=image} 
    {capture assign=currentKey}image-{cycle values='600,400,400'}{/capture} 
    <li><img src="{$image[$currentKey]}" alt="{$image.title}" /></li> 
{/foreach} 

w Twoim przypadku będzie to prawdopodobnie wyglądać tak:

{section name=i loop=$posts} 
    {capture assign=thumbSize}{cycle values='big,small,small'}{/capture} 
    <img src="{$purl}/thumbs/{if $thumbSize eq 'big'}{$posts[i].pic}{else}s-{$r[i].pic}{/if}" alt="{$posts[i].story|stripslashes}" /> 
{/section} 
+0

Proszę sprawdzić powyższe kod. dzięki za pomoc. Przestudiowałem cykl i wydaje się, że jest to właściwa metoda. –

+0

Moje tagi graficzne to '{$ purl}/thumbs/s - {$ r [i] .pic}' for 400px i '{$ purl}/thumbs/{$ posts [i] .pic}' for 600px hope it pomoże ci zrozumieć –

+0

Dzięki, koleś, działa doskonale. :) jesteś niesamowity –