1

我正在学习 smarty 大约两个月,我发现自己面临一个问题。

我正在创建一个动态菜单,该菜单从该文件中名为 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 等。

有人知道如何帮助我吗?

4

1 回答 1

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

迭代包含当前循环迭代并且总是从一开始,这与索引不同。它在每次迭代时加一

{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}
于 2013-09-24T20:05:25.787 回答