【问题标题】:Smarty include with no include fileSmarty 包含没有包含文件
【发布时间】:2014-02-10 17:08:51
【问题描述】:

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

【问题讨论】:

    标签: include smarty


    【解决方案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}
    

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2014-03-01
        • 1970-01-01
        • 2011-02-23
        • 1970-01-01
        • 2012-01-07
        • 1970-01-01
        • 2012-02-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多