我刚刚通过一个应用程序工作在smarty模板中编写,所以我不熟悉整个事情的工作原理。忽略一个Smarty模板抓取()一页
所以我的问题是smarty是从应用程序级别的文件中获取模板,因此它会影响网站上的每个页面。我需要一种告诉单个模板忽略应用程序级别获取的方法。
因此,在应用程序级它是echo $ smarty-> fetch('layout/main.html.tpl');我只想在一个模板上忽略它。谁能帮忙?
我刚刚通过一个应用程序工作在smarty模板中编写,所以我不熟悉整个事情的工作原理。忽略一个Smarty模板抓取()一页
所以我的问题是smarty是从应用程序级别的文件中获取模板,因此它会影响网站上的每个页面。我需要一种告诉单个模板忽略应用程序级别获取的方法。
因此,在应用程序级它是echo $ smarty-> fetch('layout/main.html.tpl');我只想在一个模板上忽略它。谁能帮忙?
你想添加一些逻辑到应用程序的任何一点获取该模板。这个问题并不聪明,它是应用程序。聪明的模板无法干扰呈现它的php,也不能在php脚本中引入逻辑。
您可以从脚本调用$ smarty-> fetch(),而不是模板。您可以使用逻辑来选择不同的模板名称并获取适当的模板,以便单个脚本可以轻松调用您的任何模板。
例如...
$template = 'error.tpl';
if($conditions =='right')
{
$template = 'normal.tpl';
}
echo $smarty->fetch("layout/$template");
另外请注意,您可以使用display()方法,而不是取()回应:
$smarty->display("layout/$template");
这样,你不存储将模板放入要输出的变量中。
如果它是其中一个脚本调用模板“A”,另一个电话模板“B”一个简单的例子...
//call in template A
$smarty->display("layout/templateA.tpl");
//call in template B
$smarty->display("layout/templateB.tpl");
没有必要在这种情况下,额外的逻辑。
感谢超现实主义,有没有什么我可以坚持在相关的脚本附加到模板,有点像控制器在轨? – 2011-02-15 16:11:59