首頁 CMS教程 DEDECMS DEDECMS靜態範本類別檔案是什麼

DEDECMS靜態範本類別檔案是什麼

Dec 28, 2019 am 09:17 AM
dedecms

DEDECMS靜態範本類別檔案是什麼

DEDECMS靜態範本類別檔案是什麼?

靜態模板類別文件織夢模板引擎是一種使用XML名字空間形式的模板解析器

  推薦學習:織夢cms

使用織夢解析器解析模板的最大好處是可以輕鬆的製定標記的屬性,感覺上就像在用HTML一樣,使模板代碼十分直觀靈活,新版的織夢模板引擎不單能實現模板的解析還能分析模板裡錯誤的標記。

include/dedetag.class.php這個檔案是dedecms V5.3及之前版本使用的主要的模板類,它是解析式模板類,並非編譯式的(區別是前者通過獲得標籤位置進行內容替換,後者是直接解析式PHP程式碼,二次執行) 

一、模板語法 

1、織夢模板引擎的程式碼樣式有下列幾種形式: 

{dede:標記名稱屬性='值'/} 

#{dede:標記名稱屬性='值'}{/dede:標記名稱} 

{dede:標記名稱屬性='值'}自訂樣式範本(InnerText){/dede:標記名稱} 

#提示: 

如果使用底層範本的標記,必須嚴格使用{dede:標記名稱屬性='值'}{/dede:標記名稱} 這種格式,否則會報錯。 

2、織夢模板引擎內建有多個系統標記,這些系統標記在任何場合都是能直接使用的。

(1) global 標記,表示取得一個外部變量,除了資料庫密碼之外,能呼叫系統的任何設定參數,形式為: 

{dede:global name='變數名稱'}{/dede:global} 

或 

##{dede:global name='變數名稱'/} 

其中變數名稱不能加$ 符號,如變數$ cfg_cmspath ,應該寫成{dede:global name='cfg_cmspath'/} 。

(2) foreach 用來輸出一個數組,形式為: 

{dede:foreach array='數組名稱'}[field:key/] [field:value/]{/ dede:foreach} 

(3) include 引入一個文件,形式為: 

{dede:include file='文件名稱' ismake='是否為dede板塊模板(yes/no) '/} 

對檔案的搜尋路徑為順序為:絕對路徑、include資料夾,CMS安裝目錄,CMS主模板目錄 

3、織夢標記允許在任何標記中使用函數對所得到的值進行處理,形式為: 

{dede:標記名稱屬性='值' function='youfunction("參數一","參數二","@me")' /} 

其中@me 用來表示目前標記的值,其它參數由你的函數決定是否存在,例如: 

{dede:field name='pubdate' function='strftime ("%Y-%m-%d %H:%M:%S","@me")'/} 

4、織夢標記允許有限的程式擴充。

格式為: 

程式碼如下:

1

2

3

4

{dede:tagname runphp='yes'}

$aaa = @me;

@me = "123456";

{/dede:tagname}

登入後複製

@me 表示這個標記本身的值,因此標記內程式設計是不能使用echo之類的語句的,只能把所有回傳值傳遞給@me。 

此外由於程式碼佔用了底層模板InnerText的內容,因此需編程的標記只能使用預設的InnerText。

二、解析方式 

在dedetag.class.php 裡面有四個類別 

class DedeAttribute 屬性結構表述 

#class DedeAttributeParse 屬性解析器 

class DedeTag 標籤結構表述 

class DedeTagParse 標籤解析器 

使用解析類別解析模板時一般經過下面的步驟 

1、初始化: 

$dtp = new DedeTagParse(); 

2、載入範本/範本字串: 

$dtp->LoadTemplate(範本檔案(絕對路徑)); / /會產生緩存,第二次不需解析模板 

或 

$dtp->LoadSource(字串); 

3、給標籤賦值 

foreach($dtp->CTags as $tid=>$ctag) { 

//判斷ctag的名稱和屬性,並給予不同的值,通常用函數處理 

if($ctag->GetName=='mytag') $dtp->Assign($tid, mytagvalue($ctag) ); 

在上面範例中,直接把名稱為mytag的標籤轉交給mytagvalue 函數處理,mytagvalue 裡判斷$ctag的各個屬性,回傳不同內容即可。

在V5.3版本中,通常除了field、list等專用標籤之外,凡arc.*開頭的類別解析的文件,標籤都是對應該include/taglib 的源碼的,這個由系統進行了自動的映射。

4、顯示或儲存為HTML 

$dtp->display(); 

或 

$dtp->SaveTo(靜態文件名); 

对于二次开发人员而言,不大需要知道dedecms模板具体解析方式,不过应该十分清楚CTag这个类的结构,从而判断标签不同属性进行处理。

代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

class DedeTag

{

var $IsReplace=FALSE; //标记是否已被替代,供解析器使用

var $TagName=""; //标记名称

var $InnerText=""; //标记之间的文本

var $StartPos=0; //标记起始位置

var $EndPos=0; //标记结束位置

var $CAttribute=""; //标记属性描述,即是class DedeAttribute

var $TagValue=""; //标记的值

var $TagID = 0;

//获取标记的名称和值

function GetName()

{

return strtolower($this->TagName);

}

function GetValue()

{

return $this->TagValue;

}

//下面两个成员函数仅是为了兼容旧版

function GetTagName()

{

return strtolower($this->TagName);

}

function GetTagValue()

{

return $this->TagValue;

}

//获取标记的指定属性

function IsAttribute($str)

{

return $this->CAttribute->IsAttribute($str);

}

function GetAttribute($str)

{

return $this->CAttribute->GetAtt($str);

}

function GetAtt($str)

{

return $this->CAttribute->GetAtt($str);

}

function GetInnerText()

{

return $this->InnerText;

}

}

登入後複製

以上是DEDECMS靜態範本類別檔案是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1667
14
CakePHP 教程
1426
52
Laravel 教程
1328
25
PHP教程
1273
29
C# 教程
1255
24
帝國cms資源網模板在哪 帝國cms資源網模板在哪 Apr 17, 2024 am 10:00 AM

帝國CMS模板下載位置:官方模板下載:https://www.phome.net/template/第三方模板網站:https://www.dedecms.com/diy/https://www.0978.com.cn /https://www.jiaocheng.com/安裝方式:下載模板解壓縮模板上傳模板選擇模板

dedecms怎麼上傳本機視頻 dedecms怎麼上傳本機視頻 Apr 16, 2024 pm 12:39 PM

如何使用 Dedecms 上傳本機影片?準備影片文件,確保格式符合 Dedecms 支援的格式。登入 Dedecms 管理後台,建立新的影片分類。在影片管理頁面上傳影片文件,填寫相關資訊並選擇影片分類。在編輯文章時嵌入視頻,輸入上傳視頻的文件名並調整尺寸。

dedecms怎麼實現模板替換 dedecms怎麼實現模板替換 Apr 16, 2024 pm 12:12 PM

在 Dedecms 中實作範本替換可以透過以下步驟:修改 global.cfg 文件,設定所需的語言包。修改 taglib.inc.php 鉤子文件,加入對語言後綴模板文件的支援。建立帶有語言後綴的新模板文件,修改所需內容。清除 Dedecms 快取。

dedecms都能做什麼網站 dedecms都能做什麼網站 Apr 16, 2024 pm 12:24 PM

Dedecms是一款開源CMS,可用於創建各種類型的網站,包括:新聞網站部落格網站電商網站論壇和社群網站教育網站入口網站其他類型的網站(例如企業網站、個人網站、相簿網站、影片分享網站)

dedecms有什麼漏洞 dedecms有什麼漏洞 Aug 03, 2023 pm 03:56 PM

DedeCMS是一個開源的內容管理系統,會存在一些潛在的漏洞和安全風險:1、SQL注入漏洞,攻擊者可以透過建構惡意的SQL查詢語句來執行未經授權的操作或取得敏感資料;2、文件上傳漏洞,攻擊者可以上傳包含惡意程式碼的檔案到伺服器上,從而執行任意程式碼或取得伺服器權限;3、敏感資訊外洩;4、未經身份驗證的漏洞利用。

dedecms怎麼用 dedecms怎麼用 Apr 16, 2024 pm 12:15 PM

Dedecms 是一款開源中文 CMS 系統,提供內容管理、模板系統和安全保護等功能。具體使用方法包含以下步驟:1. 安裝 Dedecms。 2. 配置資料庫。 3. 登入管理介面。 4. 創建內容。 5. 設定模板。 6. 管理用戶。 7. 維護系統。

dedecms怎麼改圖片 dedecms怎麼改圖片 Apr 16, 2024 pm 12:27 PM

修改 DedeCMS 圖片的步驟:登入 DedeCMS 後台。造訪「系統」>「媒體管理」頁面。選擇要修改的圖片。點選“編輯”按鈕。修改圖片標題、描述、標籤和版權資訊。裁剪或調整圖片大小。點選「儲存」按鈕儲存變更。返回媒體管理頁面,點選「更新圖片庫」按鈕,使變更套用到網站中。

dedecms怎樣實現模版替換? dedecms怎樣實現模版替換? Apr 16, 2024 pm 12:21 PM

在 DedecMS 中實現模版替換,需執行下列步驟:決定要替換的模版文件,常見的文件有 index.htm、list.htm 和 show.htm。建立新的模版文件,保留 DedecMS 標記。上傳新模版文件,覆蓋原始文件。清除快取。刷新網站以查看更改。

See all articles