我有一个用于菜单导航的循环,但是对于大于6个项目的列表,我想在新列表中创建其余部分,有人会介意帮助我:
{foreach from=$item1.$childs item="item2" name="item2"}
{assign var="item_url2" value=$item2|fn_form_dropdown_object_link:$block.type}
<li{if $item2.active || $item2|fn_check_is_active_menu_item:$block.type} class="cm-active"{/if}><a{if $item_url2} href="{$item_url2}"{/if}>{$item2.$name}</a></li>
{/foreach}
因此输出将是这样的:
如果有6个或更少的项目:
<ul>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
<li>list item 4</li>
<li>list item 5</li>
<li>list item 6</li>
</ul>
如果6或更多
<ul>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
<li>list item 4</li>
<li>list item 5</li>
<li>list item 6</li>
</ul>
<ul>
<li>list item 7</li>
<li>list item 8</li>
<li>list item 9</li>
<li>list item 10</li>
<li>list item 11</li>
<li>list item 12</li>
</ul>
当然,想循环每6个项目例如
提前致谢
答案 0 :(得分:1)
看看http://www.smarty.net/docsv2/en/language.function.counter.tpl 你可以使用这样的东西:
{ foreach }
{ if counter % 6 == 0 }<ul>{ /if }
<li></li>
{ if counter % 6 == 0 }</ul>{ /if }
{ /foreach }
答案 1 :(得分:0)
所以我设法找到了一个有效的解决方案,我发现很难在网上找到一个解决方案,我觉得很奇怪,因为我确定如果它们被困住,人们会追求它的常见问题继续阅读:
我尝试了上面提到的两种方法“ggonzalez”和“periklis”,我几乎开始工作,但它产生的标记是不正确的,因此打破了。在一个坚果壳中,它围绕每个列表项包装开始标记,而不是关闭,但也没有包装到我指定的特定数量的列表中。
所以经过一些游戏后,我想出了一个对我来说很好的解决方案:
我找到了一个名为“split_row”的智能插件,可以在这里找到:
http://smarty.incutio.com/?page=split_row
我创建了文件:block.split_row.php并上传到我的smarty插件目录,然后将以下内容添加到我的tpl文件中
{split_row count=8 from=$item1.$childs item="item2" name="item2"}
<ul>
{foreach from=$item2 item="item2"}
{assign var="item_url2" value=$item2|fn_form_dropdown_object_link:$block.type}
<li{if $item2.active || $item2|fn_check_is_active_menu_item:$block.type} class="cm-active"{/if}><a{if $item_url2} href="{$item_url2}"{/if}>{$item2.$name}</a></li>
{/foreach}
</ul>
{/split_row}
我希望这可以帮助其他寻找类似解决方案的人。
由于