2014-02-10 148 views
2

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

回答

0

是的,你只需要添加一个条件,看看是否$状态栏有任何值:

{if $statusbar!=''} 
    {include file=$statusbar} 
{/if} 
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} 

例如:register.tpl

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

如果你并不想改变任何块的内容只是不类型