2014-02-10 146 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} 

如果你並不想改變任何塊的內容只是不類型