5 votes

if else condition in smarty .tpl for nth-child list/div

Je travaille avec Smarty. Je veux ajouter un if else condition dans mon .tpl pour les classes nth-child li/div.

J'ai deux tailles d'image. Je veux utiliser l'image de 600 px dans la première. li l'image de 400 px dans les 2ème et 3ème, et de nouveau l'image de 600 px dans la 4ème li et ainsi de suite.

Actuellement, j'utilise la technologie CSS3 nth-child et en utilisant des images de 400 px. Mais le temps de chargement est mauvais. Je veux utiliser des images plus petites là où c'est nécessaire.

Je suppose que c'est très complexe. Est-ce que c'est le cas ?

Voici mon code :

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

et il existe dans la boucle {section name=i loop=$posts} {include file="posts.tpl"} {/section} à l'intérieur posts.tpl .

2voto

dev-null-dweller Points 19874

cycle sera utile.

Supposons que vous disposiez d'un tableau contenant des chemins d'accès à des images dans deux champs : image-600 et 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}

dans votre cas, cela ressemblera probablement à ceci :

{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}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X