模板機制

2024-07-17 23:44 更新

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

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

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

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

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

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

說明

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

include template('common/index');

其中

common

為當前模塊template目錄下的子目錄名稱,

index

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

common

可省略,即:

include template('index');

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

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

注意:

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

模板重用機制

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

模板緩存機制

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


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

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

模板風格(框架)


框架說明

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

以下是對該結構的介紹:

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

注意

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


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號