2012-07-15 57 views
5

我正在与Smarty合作。我想在我的.tpl文件中为nth-child li/div类添加if else条件。if else smarty .tpl for nnth-child list/div

我有两个图像大小。我想在第一个li中使用600px图像,在第二个和第三个中使用400px图像,并且使用第四个li中的600px图像等等。

当前我正在使用CSS3 nth-child选择器并使用缩放的400像素图像。但加载时间很糟糕。我想在需要的地方使用较小的图像。

我猜它非常复杂。是吗?

这里是我的代码:

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

,并在循环{section name=i loop=$posts} {include file="posts.tpl"} {/section}posts.tpl存在。

回答

2

cycle将会有帮助。

让我们假设你有阵列路径存放在两个领域的图片:image-600image-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} 

在你的情况可能会是这样的:

{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

请检查以上码。感谢您的帮助。我研究过周期,它似乎是正确的方法。 – 2012-07-15 21:42:28

+0

对于600px,我的图片标记为'{$ purl}/thumbs/s - {$ r [i] .pic}'为400px,'{$ purl}/thumbs/{$ posts [i] .pic}'希望它会帮助你理解 – 2012-07-15 21:53:25

+0

谢谢老兄,它的工作完美。 :) 你真棒 – 2012-07-15 22:18:10