首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

DedeCMS 模板制作完整指南:引擎原理、命名規范、核心標記大全

     編輯:PHP 綜合知識

織夢模板引擎概述

DedeCMS 使用基于 XML 命名空間的模板解析器,標記語法直觀,屬性靈活,支持嵌套與錯誤檢測。三種基本形式:

{dede:標記名 屬性='值'/}
{dede:標記名 屬性='值'}{/dede:標記名}
{dede:標記名 屬性='值'}自定義內容{/dede:標記名}

注意:V3 版必須完整閉合 {/dede:標記名},不能簡寫為 {/dede}。

內置系統標記

global 獲取全局變量

{dede:global name='cfg_cmspath'/}  {* 不帶 $ 符號 *}

foreach 遍歷數組

{dede:foreach array='myarr'}[field:key/] [field:value/]{/dede:foreach}

include 引入文件

{dede:include file='header.htm'/}  {* 搜索順序:絕對路徑 → include目錄 → 安裝目錄 → 主模板目錄 *}

function 屬性:標記值後處理

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

模板制作規范

四類模板文件

類型命名用途
封面/單頁index_識別ID.htm首頁、頻道封面、自定義單頁
列表頁list_識別ID.htm欄目文章列表
內容頁article_識別ID.htm文檔詳情、專題頁
系統通用search.htm, index.htm, rss.htm...搜索、主頁、RSS、JS編譯等

保存路徑:{cmspath}/templets/風格名/{功能模板},默認風格 default,系統底層 system,插件 plus。

核心標記參考大全

1. arclist / artlist / imglist / hotart / likeart / cooltart / specart

作用:獲取指定文檔列表,最常用標記。
適用:封面、列表、文檔模板。
常用屬性:

屬性說明
typeid欄目ID,多個用逗號分隔;列表/文檔模板可不填
row返回行數,配合 col 總數 = row * col
col分列顯示數(默認1)
titlelen標題截取長度
infolen摘要長度
imgwidth/imgheight縮略圖尺寸
typeall(默認) / commend(推薦) / image(必須有圖)
orderbysenddate(默認)/hot/click/pubdate/sortrank/id
keyword關鍵字過濾,多個用逗號
channelid頻道類型:-1專題/1文章/2圖集/3軟件/4Flash
limit記錄范圍,如 "0,5" 取前5條,"5,5" 取第6-10條

底層變量:id, title, typeid, description, pubdate, senddate, click, litpic, typedir, typename, arcurl, typeurl, stime, textlink, typelink, imglink, image
調用方式:[field:varname/]

2. field 獲取字段/環境變量

語法:{dede:field name='字段名'/}
可用字段:

  • 封面:phpurl, indexurl, indexname, templeturl, memberurl, powerby, webname, specurl
  • 列表:position(導航鏈接), title, 以及 dede_arctype 表所有字段
  • 文檔:position, id/aid, dede_archives 表及附加表所有字段

3. channel 獲取欄目列表

{dede:channel row='8' type='top/sun/self'}
    <a href='[field:typelink/]'>[field:typename/]</a>
{/dede:channel}

type:top(頂級)、sun(下級)、self(同級)。后兩者需在列表模板中使用。
底層變量:ID, typename, typedir, typelink

4. mytag 調用自定義標記

{dede:mytag typeid='0' name='標記名' ismake='no'/}

搜索順序:當前欄目 → 父欄目 → 全局標記(typeid=0)。
ismake='yes' 表示標記內容包含其他封面標記,需二次解析。

5. vote 投票表單

{dede:vote id='投票ID' lineheight='22' tablewidth='100%' titlebgcolor='#EDEDE2' tablebgcolor='#FFFFFF'}{/dede:vote}

6. flink 友情鏈接

{dede:flink type='textall' row='4' col='6' titlelen='24' tablestyle=''}{/dede:flink}

type:textall/textimage/text/image。

7. mynews 站內新聞

{dede:mynews row='10' titlelen='30'}InnerText{/dede:mynews}

InnerText 支持:[field:title/] [field:writer/] [field:senddate/] [field:body/]

8. loop 任意表數據調用

常用于論壇帖子調用,需配合插件。

9. channelartlist 嵌套欄目+文章列表

唯一支持直接嵌套 {dede:type} 和 {dede:arclist} 的標記。適用于首頁「頻道+最新文章」塊狀布局。

{dede:channelartlist typeid='0' col='2' tablewidth='100%'}
    {dede:type}
        <a href="[field:typelink/]">[field:typename/]</a>
    {/dede:type}
    {dede:arclist row='8'}
        · <a href="[field:arcurl/]">[field:title/]</a><br>
    {/dede:arclist}
{/dede:channelartlist}

10. page 分頁參數(列表模板)

{dede:page pagesize='20'/}

11. list 列表內容循環(列表模板)

{dede:list col='1' titlelen='30' infolen='150' orderby='senddate'}{/dede:list}

底層變量同 arclist。

12. pagelist 分頁碼列表(列表模板)

{dede:pagelist listsize='3'/}

顯示 [1][2][3]... 樣式,listsize 為兩側頁碼數。

13. pagebreak 文檔內部分頁(文檔模板)

{dede:pagebreak/}

14. fieldlist 附加表字段遍歷(文檔模板)

{dede:fieldlist}
[field:name/] : [field:value/]<br>
{/dede:fieldlist}

總結

掌握以上 14 個核心標記及其屬性、底層變量、嵌套規則,即可應對 90% 以上的 DedeCMS 模板開發需求。建議收藏備查,實戰中多對照官方文檔與現有默認模板(templets/default/)學習。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved