Smarty包括没有包含文件

时间:2014-02-10 17:08:51

标签: include smarty

我有一个基本页面:base.tpl,其中包含我网站上每个页面的页眉和页脚。特定页面(例如:home.tpl)扩展({extends file ='.. / templates / base.tpl'})基页。在基页中,我有一个状态栏的包含,位于标题下方 ({include file = $ statusbar})。我包含正确的状态栏,具体取决于用户是否已登录或注销...但在某些情况下,我不希望包含状态栏。当用户选择注册时,我只想显示注册表单,或者当用户尝试登录并失败时我希望向他显示详细页面,以及如何注册/检索密码的额外信息。 但是如果我尝试包含一个空值($ smarty-> assign(“statusbar”,“”)),我会收到一个错误,页面上没有任何内容呈现。我正在考虑添加一个空白的.tpl并链接到它。但我想知道这是否是一个“好”的解决方案。有没有更好的方法呢?

2 个答案:

答案 0 :(得分:1)

您可以为模板部分定义块。然后在您的扩展模板上留下空白块 例如:base.tpl

<head>{block name = "head"}<title>Welcome</title>{/block}</head>
{block name = "status_bar"}{include file = $statusbar}{/block}
{block name = "footer"}Some footer{/block}

ex:register.tpl

{extends file = 'base.tpl'}
{block name = 'head'}<title>Register</title>{/block}
{block name = 'status_bar'}{/block}

如果您不想更改任何块的内容,请不要输入

答案 1 :(得分:0)

是的,您只需要添加一个条件来查看$ statusbar是否有任何值:

{if $statusbar!=''}
   {include file=$statusbar}
{/if}