我有一个基本页面: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文件包含