首頁 後端開發 php教程 dedecms模版 dedecms模版製作使用方法

dedecms模版 dedecms模版製作使用方法

Jul 29, 2016 am 08:36 AM


解析引擎概述  範本設計規格  程式碼參考
標記參考: arclist(artlist,likeart,hotart,imglist,imginfolist,coolart,specart) field channel my 🎜>一、織夢模板解析引擎概述 在了解DedeCms的模板程式碼之前,了解織夢模板引擎的知識是非常有意義的。織夢模板引擎是一種使用XML名字空間形式的模板解析器,使用織夢解析器解析模板的最大好處是可以輕鬆的製定標記的屬性,感覺上就像在用HTML一樣,使模板代碼十分直觀靈活,新版的織夢模板引擎不單能實現模板的解析還能分析模板裡錯誤的標記。
1.織夢模板引擎的程式碼樣式有以下幾種形式:
{dede:標記名稱 屬性='值'/}
{dede:標記名稱 屬性='值'}{/dede :標記名稱}
{dede:標記名稱 屬性='值'}自訂樣式範本(InnerText){/dede:標記名稱}
提示:
對於{dede:標記名稱 屬性='值'}{/dede:標記名稱}這種形式的標記,在2.1版中,表示結束只需要用“{/dede}”,但
V3中需要嚴格用“{/dede:標記名稱}” ,否則會報錯。
2、織夢模板引擎內建多個系統標記,這些系統標記在任何場合都是能直接使用的。
(1) global 標記,表示取得外部變量,除了資料庫密碼之外,能呼叫系統的任何設定參數,形式為:
{dede:global name='變數名稱'}{/dede: global}

{dede:global name='變數名稱' /}
其中變數名稱不能加 $ 符號,如變數 $cfg_cmspath ,應寫成變數。
(2) foreach 用來輸出一個數組,形式為:
{dede:foreach array='數組名稱'}[field:key/] [field:value/]{/dede:foreach}
(3) include 引入一個文件,形式為:
{dede:include file='文件名稱' /}
文件的搜尋路徑為順序為:絕對路徑、include資料夾,CMS安裝目錄, CMS主模板目錄
3、織夢標記允許在任何標記中使用函數對得到的值進行處理,形式為:
{dede:標記名稱 屬性='值' function='youfunction("參數一","參數二","@me")'/}
其中 @me 用來表示目前標記的值,其它參數由你的函數決定是否存在,例如:
{dede:field name='pubdate' function='strftime("%Y-%m-%d %H:%M:%S","@me")' /}
二、DedeCms 模板製作規範
 DedeCms系統的模板是非固定的,用戶可以在新建欄位時可以自行選擇欄目模板,官方僅提供最基本的預設模板,即是內建系統模型的各個模板,DedeCms支援自訂頻道模型,用戶自訂新頻道模型後,需要依該模型設計一組新的模板。
一、概念,設計和使用模板,必須要理解下面幾個概念:
1、板塊(封面)模板:
  指網站主頁或比較重要的欄目封面使用的模板,一般用“ index_識別ID.htm」命名,此外,用戶單獨定義的單一頁面或自訂標記,也可選是否支援板塊模板標記,如果支持,系統會用板塊模板標記引擎去解析後才輸出內容或生成特定的文件。
2.清單範本:
  指網站某一欄目的所有文章清單的模板,一般用 「list_辨識ID.htm」 命名。
3.檔案範本:
  表示文件檢視頁的模板,一般以 「article_辨識ID.htm」 命名。
4、其它模板:
  一般系統常規包含的模板有:主頁模板、搜尋模板、RSS、JS編譯功能模板等,此外用戶也可以自訂一個模板創建為任意文件。
二、 命名,為了規範起見,織夢官方建議使用統一的方式來命名模板,具體如下:
1、模板保存位置:
  模板目錄:{cmspath/templets/樣式名稱(英文,預設為default,其中system為系統底層模板,plus為插件使用的模板)/具體功能模板檔案}
  一般的模板位置:“/templets/default”
2、 模板檔案命名規範:
(1)index_識別ID.htm: 表示板塊(欄位封面)模板;
(2)list_識別ID.htm: 表示欄位清單範本;
(3)article_識別ID.htm : 表示內容檢視頁(文件模板,包括專題檢視頁);
(4)search.htm: 搜尋結果清單範本; 
(5)index.htm: 首頁模板; 
註解:
你的系統各個內容頻道的[辨識ID]分別為: 
例:list_image.htm 表示是就是內容類型為圖片集的欄位預設清單範本。
三、主要標記參考
1、arclist 標記
這個標記是DedeCms最常用的一個標記,其中 hotart、coolart、likeart、artlist、imglist、imginfolist、specart 這些標記都是由這個標記所定義的不同屬性延伸出來的。
作用:取得一個指定的文件清單
適用範圍:封面範本、清單範本、文件範本
(1)基本語法:
{dede:arclist
typeid='' row= '' col='' titlelen='' 
infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword=''}
自訂樣式範本(InnerText)
{/dede:arclist}
本標記等同於artlist、imglist、imginfolist標記,其中與artlist是完全等同的,與imglist、imginfolist僅是預設的底層範本不同。
(2)屬性參考:
[1] typeid='' 表示欄位ID,在清單範本和檔案範本中一般不需要指定,在封面範本中允許用","分開表示多個欄位;
[2] row='' 表示傳回文件行數,若與col合併使用,剛結果數等於row * col;
[3] col='' 表示分割多少列顯示(預設為單列) ;
[4] titlelen='' 表示標題長度;
[5] infolen='' 表示內容簡介長度;
[6] imgwidth='' 表示縮圖寬度;
[77] imgwidth='' 表示縮圖寬度;
[77 [8] type='' 表示檔案類型,當預設值或type='all'時為普通文件
§ type='commend'時,表示建議文件,等同於
§ type='image'時,表示必須含有縮圖的文檔
[9] orderby='' 表示排序方式,預設值是 senddate 依發佈時間排列。
§ orderby='hot' 或 orderby='click' 表示按點擊數排列
§ orderby='pubdate' 按出版時間排列(即是前台允許更改的時間值)
§ orderby=' sortrank' 按文章的新排序等級排序(如果你想使用置頂文章則使用這個屬性)
§ orderby='id' 按文章ID排序
[10] keyword='' 表示含有指定關鍵字的文件列表,多個關鍵字用","分開
[11] channelid='數字' 表示特定的頻道類型,內建的頻道:專題(-1)、文章(1)、圖集(2)、 Flash(4)、軟體(3)
[12] limit='起始,結束' 表示限定的記錄範圍,row屬性必須等於"結束 - 起始",mysql的limit語句是由0起始的,如 「limit 0,5」表示的是取前五筆記錄,「limit 5,5」表示由第五筆記錄起,取下五筆記錄。
(3)底層模板變數
ID(同 id),title,iscommend,color,typeid,ismake,description(同 info),
pubdate,senddate,arcrank,click,litpic(同picname) ,typedir,typename,
arcurl(同 filename),typeurl,stime(pubdate 的"0000-00-00"格式),
textlink,typelink,imglink,image
其中:
textlink,typelink,imglink,image
其中:
textlink, title
typelink = typename
imglink = dedecms模版 dedecms模版製作使用方法dedecms模版 dedecms模版製作使用方法
image = dedecms模版 dedecms模版製作使用方法變數呼叫方法:[field:varname /]
如:
{dede:arclist infolen='100'}
[field:textlink /]


[field :info /]


{/dede:arclist}
2、field 標記
這個標記用來取得特定欄位或檔桉的欄位值及常用的環境變數值
適用範圍:封面範本、清單範本、文件範本
(1)基本語法
{dede:field name=''/}
(2) name 屬性的值:
板塊範本: phpurl,indexurl,indexname,templeturl,memberurl,powerby,webname,specurl
清單範本:position,title,phpurl,templeturl,memberurl,powerby,indexurl,indexname,specurl,欄位表dede_arctype的所有欄位其中 position為 「欄目一 > 欄二」 這樣形式的鏈接,title則為這種形式的標題文檔模板:position,phpurl,templeturl,memberurl,powerby,indexurl,indexname,specurl,id(同 ID,aid) ,檔案dede_archives表格和附加表格的所有欄位。
3、channel 标记
用于获取栏目列表
适用范围:封面模板、列表模板、文档模板
(1)基本语法
{dede:channel row='' type=''}
自定义样式模板(InnerText)
{/dede:channel}
(2)属性
[1] row='数字' 表示获取记录的条数(通用在某级栏目太多的时候使用,默认是 8)
[2] type = top,sun,self
type='top' 表示顶级栏目
type='sun' 表示下级栏目
type='self' 表示同级栏目
其中后两个属性必须在列表模板中使用。
(3)底层模板变量
ID,typename,typedir,typelink(这里仅表示栏目的网址)
例:
{dede:channel type='top'}
[field:typename/] 
{/dede:channel}
4、mytag 标记
用于获取自定义标记的内容
适用范围:封面模板、列表模板、文档模板
(1)基本语法
{dede:mytag typeid='' name='' ismake='' /}
(2)属性
[1] typeid = '数字' 表示栏目ID,默认为 0,在没有设定的栏目没有定义这个名称的标记,会按如下搜索方式来搜索“先向上查找父栏目 -> 通用标记(typeid=0)的同名标记”。
[2] name = '' 标记名称。
[3] ismake = yes|no 默认为 no 表示mytag里的内容不包含其它封面模板的标记,yes则表示标记内容含有其它封面模板标记。
5、vote 标记
用于获取一组投票表单
适用范围:封面模板
(1) 基本语法
{dede:vote id='投票ID' line style="max-width:90%"
tablewidth='100%' titlebgcolor='#EDEDE2'
titlebackground='' tablebgcolor='#FFFFFF'}
{/dede:vote}
6、friendlink 标记,等同 flink
用于获取友情链接
适用范围:封面模板
(1)基本语法
{dede:flink type='' row='' col='' titlelen='' tablestyle=''}{/dede:flink}
属性注解:
[1]type:链接类型,值:
a. textall 全部用文字显示
b. textimage 文字和图得混合排列
c. text 仅显示不带Logo的链接
d. image 仅显示带Logo的链接
-------------------------------------
[2]row:显示多少行,默认为4行
[3]col:显示多少列,默认为6列
[4]titlelen:站点文字的长度
[5]tablestyle: 表示 
7、mynews 标记
用于获取站内新闻
适用范围:封面模板
(1) 基本语法
{dede:mynews row='条数' titlelen='标题长度'}Innertext{/dede:mynews}
Innertext支持的字段为:[field:title /],[field:writer /],[field:senddate /](时间),[field:body /]
8、loop 标记
用于调用任意表的数据,一般用于调用论坛贴子之类的操作,请参阅论坛扩展插件。
9、channelartlist 标记
用于获取频道的下级栏目的内容列表
适用范围:封面模板
语法:
{dede:channelArtlist typeid=0 col=2 tablewidth='100%'}








{dede:type}







[field:typename /]

更多...

{/dede:type}

{dede:arclist row="8"}
·[field:title /]

{/dede:arclist}

 

{/dede:channelArtlist}
channelArtlist 是唯一一個可以直接嵌套其它標記的標記,不過僅限於嵌套
{dede:type}{/dede:type} 和 {dede:arclist }{/dede:arclist}
標記。
(1) 屬性
typeid=0 頻道ID,預設的情況下,嵌套的標記使用的是這個欄目ID的下級欄目,如果你想用特定的欄目,可以用","分開多個ID。
col=2 分多列顯示
tablewidth='100%' 外圍表格的大小
10、page 標記
表示分頁頁面的附加參數
適用範圍:列表模板
語法:
{dede:page pagesize="每頁結果條數"/}
11、list 標記
表示清單範本裡的內容清單
文法:
{dede:list col ='' titlelen='' 
infolen='' imgwidth='' imgheight='' orderby=''}{/dede:list}
底層模板變數
ID(同 id),title, iscommend,color,typeid,ismake,description(同 info),
pubdate,senddate,arcrank,click,litpic(同 picname),typedir,typename,
arcurl(同 filename),typeurl,stime(typename,
arcurl(同 filename),typeurl,stime(pubdate 的"0000-00-00"格式),
textlink,typelink,imglink,image
12、pagelist 標記
表示分頁頁碼清單
適用範圍:清單範本
語法:
{dede:pagelist listsize="3"/}
listsize 表示 [1][2][3] 這些項目的長度 x 2 
13、pagebreak 標記
用途:表示文件的分頁連結清單。
適用範圍:僅文件範本。 
語法:{dede:pagebreak /} 
14、 fieldlist 標記
用途:取得附加表的所有欄位資訊。
適用範圍:僅文件範本。 
文法:
{dede:fieldlist}
[field:name /] : [field:value /] 

{/dede:fieldlist}

以上就介紹了dedecms模版 dedecms模版製作使用方法,包括了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

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

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

會話如何劫持工作,如何在PHP中減輕它? 會話如何劫持工作,如何在PHP中減輕它? Apr 06, 2025 am 12:02 AM

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

描述紮實的原則及其如何應用於PHP的開發。 描述紮實的原則及其如何應用於PHP的開發。 Apr 03, 2025 am 12:04 AM

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

在PHPStorm中如何進行CLI模式的調試? 在PHPStorm中如何進行CLI模式的調試? Apr 01, 2025 pm 02:57 PM

在PHPStorm中如何進行CLI模式的調試?在使用PHPStorm進行開發時,有時我們需要在命令行界面(CLI)模式下調試PHP�...

PHP 8.1中的枚舉(枚舉)是什麼? PHP 8.1中的枚舉(枚舉)是什麼? Apr 03, 2025 am 12:05 AM

PHP8.1中的枚舉功能通過定義命名常量增強了代碼的清晰度和類型安全性。 1)枚舉可以是整數、字符串或對象,提高了代碼可讀性和類型安全性。 2)枚舉基於類,支持面向對象特性,如遍歷和反射。 3)枚舉可用於比較和賦值,確保類型安全。 4)枚舉支持添加方法,實現複雜邏輯。 5)嚴格類型檢查和錯誤處理可避免常見錯誤。 6)枚舉減少魔法值,提升可維護性,但需注意性能優化。

如何在系統重啟後自動設置unixsocket的權限? 如何在系統重啟後自動設置unixsocket的權限? Mar 31, 2025 pm 11:54 PM

如何在系統重啟後自動設置unixsocket的權限每次系統重啟後,我們都需要執行以下命令來修改unixsocket的權限:sudo...

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

See all articles