忽略一页的Smarty Templates Fetch()

时间:2011-02-15 15:38:50

标签: php css templates smarty

我刚刚通过了一个应用程序来处理用智能模板编写的应用程序,所以我不熟悉整个工作原理。

所以我的问题是聪明的是从应用程序级别的文件中获取模板,因此它会影响网站上的每个页面。我需要一种方法来告诉单个模板忽略应用程序级别提取。

因此,在应用程序级别,它是echo $ smarty-> fetch('layout / main.html.tpl');我只是想在一个模板上忽略它。有人可以帮忙吗?

2 个答案:

答案 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");

在这种情况下无需额外的逻辑。