我正在使用Smarty 3模板继承。我有以下问题:
这是父模板代码:
{foreach from=$items_collection item=single_item name=foo}
{block name="bar_{$smarty.foreach.foo.index}"}
some html goes here that I need to make editable if required
{/block}
{/foreach}
在此之后我通过以下方式扩展模板:
{extends file='path/to/template/file.tpl'}
{block name="bar_0"}random stuff{/block}
{block name="bar_1"}random stuff{block}
...
或者任何其他动态生成的块名称,它不会更改模板值...我对孩子的所有内容都是父级,但没有更改的块内容。
是否有特殊语法或任何其他技术来实现动态块名称。
答案 0 :(得分:1)
我认为不可能。块不作为变量保存,然后在模板显示时填充,而是编译一次,然后静态用于缓存模板。
模板继承是一个创建单个的编译时进程 编译模板文件。与基于的相应解决方案相比 它包含在{include}标记中的子模板确实有更好的效果 渲染时的表现。
很难就如何做你想做的事情提出建议,因为你很模糊,但你可以用block function
做你想做的事。