我有一個基本頁面:base.tpl,其中包含我網站上每個頁面的頁眉和頁腳。特定頁面(例如:home.tpl)擴展({extends file ='../templates/base.tpl'})的底部頁面。在基本頁面中,我有一個包含狀態欄的標題 ({include file = $ statusbar})。我包括正確的狀態欄,取決於用戶登錄或退出......但在某些情況下,我不希望包含狀態欄。當用戶選擇註冊時,我只想顯示註冊表格,或者當用戶嘗試登錄並失敗時,我希望向他顯示詳細頁面,並提供有關如何註冊/檢索密碼的額外信息。 但是,如果我嘗試包括一個空值($ smarty-> assign(「statusbar」,「」)),我得到一個錯誤,頁面上沒有任何東西呈現。我正在考慮添加一個空白的.tpl並鏈接到它。但我想知道這是否是一個「好」的解決方案。有沒有更好的方法來做到這一點?Smarty包含不包含文件
2
A
回答
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}
如果你並不想改變任何塊的內容只是不類型
相關問題
- 1. 包含的文件包含它包含的文件嗎?
- 2. 將jquery包含在smarty中
- 3. 包含C頭文件包含標準包含(不包括C++ 11)
- 4. Django:包含外部包含文件
- 5. 何時包含包含文件?
- 6. 警告:文件不包含任何toctree的包含文件
- 7. 包含文件的含義
- 8. 包括包含的文件
- 9. ReturnURL不包含defaultURL文件
- 10. javascript不包含文件?
- 11. 不能包含頭文件?
- 12. 找不到包含文件
- 13. JAR不包含根文件
- 14. request.getAttribute不包含的文件
- 15. 不能包含頭文件
- 16. Eazfusctor.net - 不包含文件
- 17. 不能包含玉文件
- 18. 包含HTML文件到Smarty .tpl文件中
- 19. 自包含或不包含子包?
- 20. 包含html文件
- 21. Cmake包含文件
- 22. GoogleAccountCredential包含文件
- 23. 包含頭文件
- 24. Ajax包含文件
- 25. HTML包含文件
- 26. OpenCL,包含文件
- 27. 包含在文件
- 28. 包含文件C
- 29. HTML包含文件
- 30. PHP文件包含