我刚刚通过了一个应用程序来处理用智能模板编写的应用程序,所以我不熟悉整个工作原理。
所以我的问题是聪明的是从应用程序级别的文件中获取模板,因此它会影响网站上的每个页面。我需要一种方法来告诉单个模板忽略应用程序级别提取。
因此,在应用程序级别,它是echo $ smarty-> fetch('layout / main.html.tpl');我只是想在一个模板上忽略它。有人可以帮忙吗?
答案 0 :(得分:0)
您希望在应用程序获取该模板的任何位置添加一些逻辑。这个问题并不聪明,而是应用程序。一个聪明的模板无法干扰呈现它的php,也不能在php脚本中引入逻辑。
答案 1 :(得分:0)
您可以从脚本而不是模板中调用$ smarty-> fetch()。您可以使用逻辑来选择不同的模板名称并获取适当的模板,因此单个脚本可以轻松调用任何模板。
例如......
$template = 'error.tpl';
if($conditions =='right')
{
$template = 'normal.tpl';
}
echo $smarty->fetch("layout/$template");
另请注意,您可以使用display()方法而不是使用fetch()回显:
$smarty->display("layout/$template");
这样您就不会将模板存储到您要输出的变量中。
如果是一个简单的情况,一个脚本调用模板“A”而另一个调用模板“B”...
//call in template A
$smarty->display("layout/templateA.tpl");
//call in template B
$smarty->display("layout/templateB.tpl");
在这种情况下无需额外的逻辑。