讨论有关模板的几个功能
发布于:2022-01-17 09:50:54
#1 ctcwri
新板的模板的layout非常好,但功能一些不足,可能是我没有发现,还望多指教。比如说一个layout.html是这样的
首页 <{include file=$__template_file}>
如果我在子页面中,想换掉
的内容,这样就比较麻烦。我想到可以定义一个变量放在title中,比如<{$title}>这样可以实现简单的替换。但是如果我想放一大段js代码或者css在区。这样用变量就比较麻烦。这些内容应该是做在模板里面,移到php中去写就不太好。
以前我用smarty是用继承功能来解决这个的,把block定义好后,很方便。
比如说
parent.html
{block name="title"}标题{/block}
...
在子页面中只需这样写
child.html
{extends file="parent.html"}
{block name="title"}这里是对应的title{/block}
{block name="script"}
这里就是script
{/block}
所有的东西都在view层,不需要移到php中去。
新版模板怎么实现这样的功能?如果新版模板也支持多个替换,就很完美了。
2017-03-14 20:39:08
#2 jake
smarty的block功能,其实相当于include。你的需求其实不应往layout的方向思考,而是include
如,禁用或删除layout,然后某个页面模板是:
<{$title = "标题"}>
<{include file="header.html"}>
<{include file="js.html"}>
...
而在子html页面里面,可以做相应的判断。
2017-03-14 21:57:08
#3 ctcwri
谢谢jake的及时回复!
以前也有用过include,不过后来追求优雅,父类—>子类,父模板—>子模板,对应起来。只是感觉良好。。。
用include也是一样的,都能实现,我改用include了。
2017-03-14 23:09:08
#4 jake
一样的,只是命名上感觉会不一样。
include严格来说更优雅:模板组件化开发,通过include粘合到一起成为一个整体,随时更换任何一个组件模板而不会影响其他的。
2017-03-15 08:59:52