就好比類的繼承一樣,模板也可以定義一個<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" />
???這里我有疑問
> 在當前子模板中,只能定義區塊而不能定義其他的模板內容,否則將會直接忽略,并且只能定義基礎模板中已經定義的區塊。
在子模板中,可以對基礎模板中的區塊進行重載定義。
如果沒有重新定義的話,則表示沿用基礎模板中的區塊定義;
如果定義了一個空的區塊,則表示刪除基礎模板中的該區塊內容。
子模板中的區塊定義順序是隨意的。