模板機制

2024-07-17 23:44 更新

為了獲取更多最新內(nèi)容及功能更新,請直接訪問我們的首頁以查看DzzOffice筆記的最新地址。

DzzOffice擁有完善的模版機制,支持模版和程序的分離,方便模版風(fēng)格的擴展開發(fā)。

先說Dzz模版機制!非常重要!非常重要!非常重要!

Dzz在運行時,您可能會覺得是直接調(diào)用data/templete目錄下的模板,然后您修改了該目錄下的模板,并看到了立竿見影的效果,但您已經(jīng)陷入了陷阱!

data/templete目錄下的同名模板文件僅僅是系統(tǒng)緩存。過一段時間后,系統(tǒng)會自動回收它們。這絕對是一個大陷阱!

如果不事先說明的話,你幸幸苦苦修改了data/templete下的的模版,過段時間系統(tǒng)自動就讓你突然回到解放前,血的教訓(xùn)!

說明

通常,模板文件存放在template目錄下,文件格式為htm。調(diào)用模板的形式如下:

include template('common/index');

其中

common

為當(dāng)前模塊template目錄下的子目錄名稱,

index

為模板文件名稱。如在template目錄下

common

可省略,即:

include template('index');

此時,Dzz模板引擎主要進行了如下的行為:

  • 根據(jù)傳入的參數(shù)計算得到完整的文件路徑和名稱(有關(guān)更多參數(shù),請參閱 /core/function/function_core.php 中的 template 函數(shù))
  • 檢查文件是否存在以及解析之后的模版緩存是否存在及是否已經(jīng)過期
  • 根據(jù)上一步的判定,決定是否進行模板解析。若未解析,將解析后的可執(zhí)行文件存入 /data/template/ 目錄下以備調(diào)用
  • 返回解析后的模板文件地址并加載
  • 加載成功

注意:

請確保 /data/template/ 目錄具有寫入權(quán)限。在后臺更新模板緩存時,該目錄將被清空。若沒有權(quán)限,可能會導(dǎo)致模板無法加載或無法更新。

模板重用機制

DzzOffice具備模板重用機制(三重重用機制)。程序調(diào)用模板時,將優(yōu)先尋找當(dāng)前層,當(dāng)程序調(diào)用模板時,將優(yōu)先搜索當(dāng)前層,例如應(yīng)用 dzz/test,將搜索 test 對應(yīng)目錄下的 template 目錄中的模板文件。如果未找到,將向上搜索 dzz 下的模板目錄。如果仍然無法找到,將調(diào)用 /core/template/default/common/ 目錄下的模板文件。其中找到任意一層將不再向上查找。

模板緩存機制

DzzOffice采用預(yù)編譯的模板緩存機制。在程序調(diào)用模板過程中,將首先檢測是否存在緩存。如果存在已編譯的模板文件,則直接調(diào)用編譯后的模板緩存(位于 /data/template/ 目錄中)。否則,將進行一次模板編譯。 模板編譯的工作原理如下:


模板套系與風(fēng)格區(qū)別

模板套系:統(tǒng)一的一類模板,集中放置并打包的系列。模板風(fēng)格:使用某個模板套系代碼,僅改變其中變量設(shè)置的一個方案。(默認一個模板套系下就一個風(fēng)格方案,通過“復(fù)制”功能,可以復(fù)制出不同的風(fēng)格,進行不同的設(shè)置,比如改變logo設(shè)置)

模板風(fēng)格(框架)


框架說明

container 容器(整個界面) ├── commer_header 頭部 │ ├── header_left 左側(cè) │ ├── header_search 中間 │ └── header_right 右側(cè) │ ├──notificationapp_ajax 應(yīng)用中心 │ ├──notification 通知 │ └──navmenu 導(dǎo)航菜單 ├── left 左側(cè)邊欄 ├── main-container 正文容器 │ ├── main-header 正文頭部 │ └── main-content 正文主體 └── right 右側(cè)邊欄

以下是對該結(jié)構(gòu)的介紹:

  1. container(容器):這是整個界面的最外層容器,用于包裹并承載頁面的所有內(nèi)容。
  2. commer_header(頭部):位于頁面頂部,通常包含網(wǎng)站的logo、導(dǎo)航鏈接、搜索框等重要元素。
  3. header_left(左側(cè)):位于頭部區(qū)域的左側(cè),通常包含網(wǎng)站的logo、應(yīng)用名等重要元素。
  4. header_search(中間):在頭部區(qū)域占據(jù)中間位置,通常包含搜索框或類似的功能模塊。
  5. header_right(右側(cè)):位于頭部區(qū)域的右側(cè),通常包含用戶登錄狀態(tài)、通知、應(yīng)用中心、語言選擇等重要元素。
  6. app_ajax(應(yīng)用中心):位于頭部區(qū)域的右側(cè),這是一個特殊的模塊,用于展示應(yīng)用庫。
  7. notification(通知):位于頭部區(qū)域的右側(cè),這是一個特殊的模塊,用于展示通知信息,與AJAX技術(shù)結(jié)合使用以實現(xiàn)動態(tài)內(nèi)容更新。
  8. navmenu(導(dǎo)航菜單):位于頭部右側(cè)的頭像區(qū)域,提供語言選擇、退出登錄、用戶中心、關(guān)于等重要元素。
  9. left(左側(cè)邊欄):頁面左側(cè)的邊欄區(qū)域,通常包含分類導(dǎo)航、側(cè)邊廣告、導(dǎo)航鏈接或其他輔助信息。
  10. main-container(正文容器):頁面主要內(nèi)容的區(qū)域,是用戶訪問網(wǎng)站時最關(guān)注的部分。
  11. main-header(正文頭部):位于main-container內(nèi)部,是正文內(nèi)容的標(biāo)題或引導(dǎo)部分。
  12. main-content(正文主體):位于main-container內(nèi)部,是頁面主要內(nèi)容的區(qū)域,展示網(wǎng)站的核心信息或功能。
  13. right(右側(cè)邊欄):位于頁面右側(cè)的邊欄區(qū)域,通常包含廣告、相關(guān)鏈接或其他補充信息。

注意

修改以上內(nèi)容后需要再后臺清理緩存才能生效,并且在實際使用中,以上模板文件及內(nèi)容可有可無。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號