就好比类的继承一样,模板也可以定义一个<span style='color:green'>基础模板(或者是布局)</span>。
其中定义相关的<span style='color:green'>区块(block)</span>,然后<span style='color:green'>继承(extend)</span>该基础模板的子模板中就可以对基础模板中定义的区块进行重载。
每个区块由<span style='color:green'><block></block></span>标签组成。
> <block name="title"><title>网站标题</title></block>
<span style='color:red'>block标签必须指定name属性</span>来标识当前区块的名称,这个标识<span style='color:red'>在当前模板中应该是唯一</span>的,
block标签中可以包含任何模板内容,包括其他标签和变量
> <block name="title"><title>{$web_title}</title></block>
> <block name="include"><include file="Public:header" /></block>
子模板中使用<span style='color:green'>extend标签</span>定义需要继承的模板,extend标签的用法和include标签一样,你也可以加载其他模板
> <extend name="Public:base" />
或者使用绝对文件路径加载
> <extend name="./Template/Public/base.html" />
???这里我有疑问
> 在当前子模板中,只能定义区块而不能定义其他的模板内容,否则将会直接忽略,并且只能定义基础模板中已经定义的区块。
在子模板中,可以对基础模板中的区块进行重载定义。
如果没有重新定义的话,则表示沿用基础模板中的区块定义;
如果定义了一个空的区块,则表示删除基础模板中的该区块内容。
子模板中的区块定义顺序是随意的。