我正在学习两个月的聪明才智,我发现自己处在一个问题面前。
我正在创建一个动态菜单,从该文件中名为submenu.conf的文件中读取配置:
tot_sub_menu_2 = "2"
text_sub_menu_2_1 = "Home"
text_sub_menu_2_2 = "about"
我的应用程序中的tpl文件我希望他能以这种方式动态创建菜单:
{for $foo=1 to #tot_sub_menu_2#}
<li><a href="{#text_sub_menu_2_.{$foo}}">{#text_sub_menu_2_.{$foo}}</a></li>
{/for}
我想采用动态参数text_sub_menu_2_1,第二个循环变为text_sub_menu_2_2等。
有人知道如何帮助我?
答案 0 :(得分:0)
我尚未测试,但您可以尝试使用{counter}
{for $foo=1 to #tot_sub_menu_2#}
{* initialize the count *}
{counter start=0 skip=1}
<li><a href="{#text_sub_menu_2_.{counter}}">{#text_sub_menu_2_.{counter}}</a></li>
否则您可以使用@iteration
属性。见http://www.smarty.net/docs/en/language.function.foreach.tpl#foreach.property.iteration
iteration包含当前循环迭代并始终从 一,不像索引。 每次迭代时增加1 。
{foreach from=$new_products item='product' name='newProducts'}
// Do somthing
//Here i want to increment {$count} if it's lower than 3 or set to 1 if higher than 3
{if $product@iteration <= 3}{$count = $product@iteration}{else}{$count = 1}{/if}
{/foreach}