2013-02-04 4 views
0

Je ne peux pas changer le tableau qui est passé dans Smarty bien au moment où j'ai:Merge répéter la section Smarty dans 1

{if $cms.featured && $cms.featured.haspictures} 
{foreach from=$cms.featured.pictures key=id item=row name=foo} 
{if $id eq 0} 
<div class="sliderkit-panel"> 
    <a href="{$cms.featured.url}" title="{$cms.featured.title|truncate:60}"><img src="{$HOME}/get/wide{$row.filename}" alt="{if $row.description}{$row.description}{else}{$cms.featured.title}{/if}" /></a> 
</div> 
{/if} 
{/foreach} 
{/if} 

{if $cms.featured1 && $cms.featured1.haspictures} 
{foreach from=$cms.featured1.pictures key=id item=row name=foo} 
{if $id eq 0} 
<div class="sliderkit-panel"> 
    <a href="{$cms.featured1.url}" title="{$cms.featured1.title|truncate:60}"><img src="{$HOME}/get/wide{$row.filename}" alt="{if $row.description}{$row.description}{else}{$cms.featured1.title}{/if}" /></a> 
</div> 
{/if} 
{/foreach} 
{/if} 

{if $cms.featured2 && $cms.featured2.haspictures} 
{foreach from=$cms.featured2.pictures key=id item=row name=foo} 
{if $id eq 0} 
<div class="sliderkit-panel"> 
    <a href="{$cms.featured2.url}" title="{$cms.featured2.title|truncate:60}"><img src="{$HOME}/get/wide{$row.filename}" alt="{if $row.description}{$row.description}{else}{$cms.featured2.title}{/if}" /></a> 
</div> 
{/if} 
{/foreach} 
{/if} 

Y at-il de toute façon je peux réduire ce code répété?

Répondre

0

Essayez enfermant la fonction répétée dans une boucle {pour} et en utilisant une variable comme l'index de tableau, quelque chose comme

{for $loop=1 to 3} 
    {$featured='featured'} 
    {if $loop!=1}{$featured=$featured|cat:$loop}{/if} 

    {if $cms.$featured && $cms.$featured.haspictures} 
    .... 


{/for}