2010-10-15 29 views
2

Dwoo模板引擎中的{with}和{loop}插件更改变量名称解析的默认上下文。在Smarty 3或更早版本中是否有类似Dwoo-s {with}或{loop}的东西?

如果Dwoo你喂模板:

{$arr.foo} 
{with $arr} {$foo}/{$arr.foo} {/with} 

数据:

array('arr' => array('foo' => 'bar')) 

它会输出:

bar 
bar/

因为第二{$ arr.foo}实际上意味着{ $ arr.arr.foo}在全局上下文中。

你知道我该如何在Smarty中获得类似的效果?

有没有一些builit在功能或第三方插件,可能让我有这个?

你知道如何构建这样一个插件,如果它不存在?

回答

0

据我所知,你不能在Smarty 3或更早版本中实现这种效果。

0

你的foreach才达到了loop

{foreach from=$arr item=foo} 
    <li>{$foo}</li> 
{/foreach} 

但是,如果将此补发的with搜索,恐怕是在Smarty的没有类似命令。

+0

Dwoo中的{loop}是{foreach}和{with}的组合。如果Smarty 3中没有{with},那么也没有{loop}。 – 2010-10-20 08:45:09

+0

在Smarty中,你只需要foreach(现在),就像上面一样。你有没有尝试过的代码? – JochenJung 2010-10-20 09:17:51

+0

我知道这段代码有效,但它迫使我发明变量的名字来保存当前元素,并迫使我通过该变量访问这个元素。请看看我关于同样的事情的其他问题,看看我在说什么:http://stackoverflow.com/questions/3942034/do-you-know-of-any-popular-php-template-engines-对于-PHP-是具备的,概念的,CURR – 2010-10-20 23:21:42

相关问题