OctoberCms-layouts

介紹

布局定義頁(yè)面支架,即頁(yè)面上重復(fù)的所有內(nèi)容,例如頁(yè)眉和頁(yè)腳。布局通常包含HTML標(biāo)記以及HEAD,TITLE和BODY標(biāo)記。

布局模板位于主題目錄的/ layouts子目錄中。布局模板文件應(yīng)具有htm擴(kuò)展名。在布局文件中,您應(yīng)該使用{% page %}標(biāo)簽來(lái)輸出頁(yè)面內(nèi)容。最簡(jiǎn)單的布局示例:

<html>
    <body>
        {% page %}
    </body>
</html>

要為頁(yè)面使用布局,頁(yè)面應(yīng)在“ 配置”部分中引用布局文件名(不帶擴(kuò)展名)。請(qǐng)記住,如果從子目錄引用布局,則應(yīng)指定子目錄名稱。使用default.htm布局的示例頁(yè)面模板:

url = "/"
layout = "default"
==
<p>Hello, world!</p>

當(dāng)請(qǐng)求此頁(yè)面時(shí),其內(nèi)容將與布局合并,或更確切地說(shuō),將布局的{% page %}標(biāo)記替換為頁(yè)面內(nèi)容。前面的示例將生成以下標(biāo)記:

<html>
    <body>
        <p>Hello, world!</p>
    </body>
</html>

請(qǐng)注意,您可以在布局中渲染局部。這使您可以在不同布局之間共享公共標(biāo)記元素。例如,您可以有一個(gè)輸出網(wǎng)站CSS和JavaScript鏈接的局部文件。這種方法簡(jiǎn)化了資源管理-如果要添加JavaScript引用,則應(yīng)修改單個(gè)部分,而不是編輯所有布局。

配置”部分對(duì)于布局是可選的。支持的配置參數(shù)是namedescription。這些參數(shù)是可選的,并在后端用戶界面中使用。具有說(shuō)明的示例布局模板:

description = "Basic layout example"
==
<html>
    <body>
        {% page %}
    </body>
</html>

占位符

占位符允許頁(yè)面將內(nèi)容注入到布局中。占位符在布局模板中使用{% placeholder %}標(biāo)簽定義。在下一個(gè)例子中示出了具有占位符的布局模板頭部在HTML HEAD部分中定義。

<html>
    <head>
        {% placeholder head %}
    </head>
    ...

頁(yè)面可以使用{% put %}{% endput %}標(biāo)記將內(nèi)容注入占位符。以下示例演示了一個(gè)簡(jiǎn)單的頁(yè)面模板,該模板將CSS鏈接注入到上一個(gè)示例中定義的占位符。

url = "/my-page"
layout = "default"
==
{% put head %}
    <link href="/themes/demo/assets/css/page.css" rel="stylesheet">
{% endput %}

<p>The page content goes here.</p>

有關(guān)占位符的更多信息,請(qǐng)參見(jiàn)《標(biāo)記指南》。

動(dòng)態(tài)布局

布局(如頁(yè)面)可以使用任何Twig功能。有關(guān)詳細(xì)信息,請(qǐng)參閱動(dòng)態(tài)頁(yè)面文檔。

布局執(zhí)行生命周期

內(nèi)部布局的PHP部分可以定義下列功能用于處理頁(yè)面執(zhí)行生命周期:onInit,onStart,onBeforePageStartonEnd

onInit初始化所有組件時(shí)以及處理AJAX請(qǐng)求之前,將執(zhí)行該函數(shù)。該onStart功能在頁(yè)面處理開(kāi)始時(shí)執(zhí)行。該onBeforePageStart功能在布局組件運(yùn)行之后但在頁(yè)面onStart功能執(zhí)行之前執(zhí)行。onEnd呈現(xiàn)頁(yè)面后執(zhí)行該功能。處理程序的執(zhí)行順序如下:

  1. 布局onInit()功能。
  2. 頁(yè)面onInit()功能。
  3. 布局onStart()功能。
  4. 布局組件onRun()方法。
  5. 布局onBeforePageStart()功能。
  6. 頁(yè)面onStart()功能。
  7. 頁(yè)面組件onRun()方法。
  8. 頁(yè)面onEnd()功能。
  9. 布局onEnd()功能。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容