dedecms模版 dedecms模版制作使用方法
Jul 29, 2016 am 08:36 AM解析引擎概述? 模板設(shè)計(jì)規(guī)范? 代碼參考
標(biāo)記參考:?arclist(artlist,likeart,hotart,imglist,imginfolist,coolart,specart)?field?channel?mytag?vote?friendlink?mynews?loop?channelartlist?page?list?pagelist?pagebreak?fieldlist?
一、織夢模板解析引擎概述?在了解DedeCms的模板代碼之前,了解一下織夢模板引擎的知識(shí)是非常有意義的。織夢模板引擎是一種使用XML名字空間形式的模板解析器,使用織夢解析器解析模板的最大好處是可以輕松的制定標(biāo)記的屬性,感覺上就像在用HTML一樣,使模板代碼十分直觀靈活,新版的織夢模板引擎不單能實(shí)現(xiàn)模板的解析還能分析模板里錯(cuò)誤的標(biāo)記。
1、織夢模板引擎的代碼樣式有如下幾種形式:
{dede:標(biāo)記名稱?屬性='值'/}
{dede:標(biāo)記名稱?屬性='值'}{/dede:標(biāo)記名稱}
{dede:標(biāo)記名稱?屬性='值'}自定義樣式模板(InnerText){/dede:標(biāo)記名稱}
提示:
對于{dede:標(biāo)記名稱?屬性='值'}{/dede:標(biāo)記名稱}這種形式的標(biāo)記,在2.1版中,表示結(jié)束只需要用“{/dede}”,但
V3中需要嚴(yán)格用“{/dede:標(biāo)記名稱}”,否則會(huì)報(bào)錯(cuò)。
2、織夢模板引擎內(nèi)置有多個(gè)系統(tǒng)標(biāo)記,這些系統(tǒng)標(biāo)記在任何場合都是能直接使用的。
(1)?global?標(biāo)記,表示獲取一個(gè)外部變量,除了數(shù)據(jù)庫密碼之外,能調(diào)用系統(tǒng)的任何配置參數(shù),形式為:
{dede:global?name='變量名稱'}{/dede:global}
或
{dede:global?name='變量名稱'?/}
其中變量名稱不能加?$?符號(hào),如變量?$cfg_cmspath?,應(yīng)該寫成?{dede:global?name='cfg_cmspath'?/}?。
(2)?foreach?用來輸出一個(gè)數(shù)組,形式為:
{dede:foreach?array='數(shù)組名稱'}[field:key/]?[field:value/]{/dede:foreach}
(3)?include?引入一個(gè)文件,形式為:
{dede:include?file='文件名稱'?/}
對文件的搜索路徑為順序?yàn)椋航^對路徑、include文件夾,CMS安裝目錄,CMS主模板目錄
3、織夢標(biāo)記允許在任何標(biāo)記中使用函數(shù)對得到的值進(jìn)行處理,形式為:
{dede:標(biāo)記名稱?屬性='值'?function='youfunction("參數(shù)一","參數(shù)二","@me")'/}
其中?@me?用于表示當(dāng)前標(biāo)記的值,其它參數(shù)由你的函數(shù)決定是否存在,例如:
{dede:field?name='pubdate'?function='strftime("%Y-%m-%d?%H:%M:%S","@me")'?/}
二、DedeCms?模板制作規(guī)范
DedeCms系統(tǒng)的模板是非固定的,用戶可以在新建欄目時(shí)可以自行選擇欄目模板,官方僅提供最基本的默認(rèn)模板,即是內(nèi)置系統(tǒng)模型的各個(gè)模板,DedeCms支持自定義頻道模型,用戶自定義新頻道模型后,需要按該模型設(shè)計(jì)一套新的模板。
一、概念,設(shè)計(jì)和使用模板,必須要理解下面幾個(gè)概念:
1、板塊(封面)模板:
指網(wǎng)站主頁或比較重要的欄目封面使用的模板,一般用“index_識(shí)別ID.htm”命名,此外,用戶單獨(dú)定義的單個(gè)頁面或自定義標(biāo)記,也可選是否支持板塊模板標(biāo)記,如果支持,系統(tǒng)會(huì)用板塊模板標(biāo)記引擎去解析后才輸出內(nèi)容或生成特定的文件。
2、列表模板:
指網(wǎng)站某個(gè)欄目的所有文章列表的模板,一般用?“l(fā)ist_識(shí)別ID.htm”?命名。
3、檔案模板:
表示文檔查看頁的模板,一般用?“article_識(shí)別ID.htm”?命名。
4、其它模板:
一般系統(tǒng)常規(guī)包含的模板有:主頁模板、搜索模板、RSS、JS編譯功能模板等,此外用戶也可以自定義一個(gè)模板創(chuàng)建為任意文件。
二、?命名,為了規(guī)范起見,織夢官方建議使用統(tǒng)一的方式來命名模板,具體如下:
1、模板保存位置:
模板目錄:{cmspath/templets/樣式名稱(英文,默認(rèn)為default,其中system為系統(tǒng)底層模板,plus為插件使用的模板)/具體功能模板文件}
一般的模板位置:“/templets/default”
2、?模板文件命名規(guī)范:
(1)index_識(shí)別ID.htm: 表示板塊(欄目封面)模板;
(2)list_識(shí)別ID.htm: 表示欄目列表模板;
(3)article_識(shí)別ID.htm: 表示內(nèi)容查看頁(文檔模板,包括專題查看頁);
(4)search.htm:?搜索結(jié)果列表模板;?
(5)index.htm:?主頁模板;?
注解:
你的系統(tǒng)各個(gè)內(nèi)容頻道的[識(shí)別ID]分別為:?
例:list_image.htm?表示是就是內(nèi)容類型為圖片集的欄目默認(rèn)列表模板。
三、主要標(biāo)記參考
1、arclist?標(biāo)記
這個(gè)標(biāo)記是DedeCms最常用的一個(gè)標(biāo)記,其中?hotart、coolart、likeart、artlist、imglist、imginfolist、specart?這些標(biāo)記都是由這個(gè)標(biāo)記所定義的不同屬性延伸出來的。
作用:獲取一個(gè)指定的文檔列表
適用范圍:封面模板、列表模板、文檔模板
(1)基本語法:
{dede:arclist
typeid=''?row=''?col=''?titlelen=''?
infolen=''?imgwidth=''?imgheight=''?listtype=''?orderby=''?keyword=''}
自定義樣式模板(InnerText)
{/dede:arclist}
本標(biāo)記等同于artlist、imglist、imginfolist標(biāo)記,其中與artlist是完全等同的,與imglist、imginfolist僅是默認(rèn)的底層模板不同。
(2)屬性參考:
[1]?typeid=''?表示欄目ID,在列表模板和檔案模板中一般不需要指定,在封面模板中允許用","分開表示多個(gè)欄目;
[2]?row=''?表示返回文檔行數(shù),如果和col聯(lián)合使用,剛結(jié)果數(shù)等于row?*?col;
[3]?col=''?表示分多少列顯示(默認(rèn)為單列);
[4]?titlelen=''?表示標(biāo)題長度;
[5]?infolen=''?表示內(nèi)容簡介長度;
[6]?imgwidth=''?表示縮略圖寬度;
[7]?imgheight=''?表示縮略圖高度;
[8]?type=''?表示檔案類型,其中默認(rèn)值或type='all'時(shí)為普通文檔
§?type='commend'時(shí),表示推薦文檔,等同于
§?type='image'時(shí),表示必須含有縮略圖片的文檔
[9]?orderby=''?表示排序方式,默認(rèn)值是?senddate?按發(fā)布時(shí)間排列。?
§?orderby='hot'?或?orderby='click'?表示按點(diǎn)擊數(shù)排列
§?orderby='pubdate'?按出版時(shí)間排列(即是前臺(tái)允許更改的時(shí)間值)
§?orderby='sortrank'?按文章的新排序級(jí)別排序(如果你想使用置頂文章則使用這個(gè)屬性)
§?orderby='id'?按文章ID排序
[10]?keyword=''?表示含有指定關(guān)鍵字的文檔列表,多個(gè)關(guān)鍵字用","分開
[11]?channelid='數(shù)字'?表示特定的頻道類型,內(nèi)置的頻道:專題(-1)、文章(1)、圖集(2)、Flash(4)、軟件(3)
[12]?limit='起始,結(jié)束'?表示限定的記錄范圍,row屬性必須等于"結(jié)束?-?起始",mysql的limit語句是由0起始的,如?“l(fā)imit?0,5”表示的是取前五筆記錄,“l(fā)imit?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?=?title
typelink?=?typename
imglink?=?
image?=?
變量調(diào)用方法:[field:varname?/]
如:
{dede:arclist?infolen='100'}
[field:textlink?/]
[field:info?/]
{/dede:arclist}
2、field?標(biāo)記
這個(gè)標(biāo)記用于獲取特定欄目或檔桉的字段值及常用的環(huán)境變量值
適用范圍:封面模板、列表模板、文檔模板
(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則為這種形式的標(biāo)題
文檔模板:position,phpurl,templeturl,memberurl,powerby,indexurl,indexname,specurl,id(同?ID,aid),檔案dede_archives表和附加表的所有字段。
3、channel?標(biāo)記
用于獲取欄目列表
適用范圍:封面模板、列表模板、文檔模板
(1)基本語法
{dede:channel?row=''?type=''}
自定義樣式模板(InnerText)
{/dede:channel}
(2)屬性
[1]?row='數(shù)字'?表示獲取記錄的條數(shù)(通用在某級(jí)欄目太多的時(shí)候使用,默認(rèn)是?8)
[2]?type?=?top,sun,self
type='top'?表示頂級(jí)欄目
type='sun'?表示下級(jí)欄目
type='self'?表示同級(jí)欄目
其中后兩個(gè)屬性必須在列表模板中使用。
(3)底層模板變量
ID,typename,typedir,typelink(這里僅表示欄目的網(wǎng)址)
例:
{dede:channel?type='top'}
[field:typename/]?
{/dede:channel}
4、mytag?標(biāo)記
用于獲取自定義標(biāo)記的內(nèi)容
適用范圍:封面模板、列表模板、文檔模板
(1)基本語法
{dede:mytag?typeid=''?name=''?ismake=''?/}
(2)屬性
[1]?typeid?=?'數(shù)字'?表示欄目ID,默認(rèn)為?0,在沒有設(shè)定的欄目沒有定義這個(gè)名稱的標(biāo)記,會(huì)按如下搜索方式來搜索“先向上查找父欄目?->?通用標(biāo)記(typeid=0)的同名標(biāo)記”。
[2]?name?=?''?標(biāo)記名稱。
[3]?ismake?=?yes|no?默認(rèn)為?no?表示mytag里的內(nèi)容不包含其它封面模板的標(biāo)記,yes則表示標(biāo)記內(nèi)容含有其它封面模板標(biāo)記。
5、vote?標(biāo)記
用于獲取一組投票表單
適用范圍:封面模板
(1)?基本語法
{dede:vote?id='投票ID'?line style="max-width:90%"
tablewidth='100%'?titlebgcolor='#EDEDE2'
titlebackground=''?tablebgcolor='#FFFFFF'}
{/dede:vote}
6、friendlink?標(biāo)記,等同?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:顯示多少行,默認(rèn)為4行
[3]col:顯示多少列,默認(rèn)為6列
[4]titlelen:站點(diǎn)文字的長度
[5]tablestyle:?表示?
{dede:type}
{/dede:type} | |||
{dede:arclist?row="8"} ·[field:title?/] {/dede:arclist} |
{/dede:channelArtlist}
channelArtlist?是唯一一個(gè)可以直接嵌套其它標(biāo)記的標(biāo)記,不過僅限于嵌套
{dede:type}{/dede:type}?和?{dede:arclist}{/dede:arclist}
標(biāo)記。
(1)?屬性
typeid=0?頻道ID,默認(rèn)的情況下,嵌套的標(biāo)記使用的是這個(gè)欄目ID的下級(jí)欄目,如果你想用特定的欄目,可以用","分開多個(gè)ID。
col=2?分多列顯示
tablewidth='100%'?外圍表格的大小
10、page?標(biāo)記
表示分頁頁面的附加參數(shù)
適用范圍:列表模板
語法:
{dede:page?pagesize="每頁結(jié)果條數(shù)"/}
11、list?標(biāo)記
表示列表模板里的內(nèi)容列表
語法:
{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(pubdate?的"0000-00-00"格式),
textlink,typelink,imglink,image
12、pagelist?標(biāo)記
表示分頁頁碼列表
適用范圍:列表模板
語法:
{dede:pagelist?listsize="3"/}
listsize?表示?[1][2][3]?這些項(xiàng)的長度?x?2?
13、pagebreak?標(biāo)記
用途:表示文檔的分頁鏈接列表。
適用范圍:僅文檔模板。?
語法:{dede:pagebreak?/}?
14、?fieldlist?標(biāo)記
用途:獲得附加表的所有字段信息。
適用范圍:僅文檔模板。?
語法:
{dede:fieldlist}
[field:name?/]?:?[field:value?/]?
{/dede:fieldlist}
以上就介紹了dedecms模版 dedecms模版制作使用方法,包括了dedecms模版方面的內(nèi)容,希望對PHP教程有興趣的朋友有所幫助。

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

TosecurelyhandleAuthenticationandauthorizationInphp, ikuti: 1.alwayshashpasswordswithpassword_hash () andverifyUsingPassword_verify (), usePePreparedStatementStopreventsqlInjection, andStoreUserDatain $ _SessionAsLogin.2.implescureRoleRoleRoleRoleRole

Untuk mengendalikan muat naik fail dengan selamat di PHP, terasnya adalah untuk mengesahkan jenis fail, menamakan semula fail, dan menyekat kebenaran. 1. Gunakan finfo_file () untuk memeriksa jenis mime sebenar, dan hanya jenis tertentu seperti imej/jpeg dibenarkan; 2. Gunakan uniqid () untuk menghasilkan nama fail rawak dan simpannya dalam direktori akar bukan web; 3. Hadkan saiz fail melalui borang php.ini dan html, dan tetapkan kebenaran direktori ke 0755; 4. Gunakan Clamav untuk mengimbas malware untuk meningkatkan keselamatan. Langkah -langkah ini dengan berkesan menghalang kelemahan keselamatan dan memastikan bahawa proses muat naik fail adalah selamat dan boleh dipercayai.

Dalam PHP, perbezaan utama antara == dan == adalah ketat pemeriksaan jenis. == Penukaran jenis akan dilakukan sebelum perbandingan, contohnya, 5 == "5" pulangan benar, dan === meminta nilai dan jenis adalah sama sebelum benar akan dikembalikan, sebagai contoh, 5 === "5" mengembalikan palsu. Dalam senario penggunaan, === lebih selamat dan harus digunakan terlebih dahulu, dan == hanya digunakan apabila penukaran jenis diperlukan.

Kaedah menggunakan operasi matematik asas dalam PHP adalah seperti berikut: 1. Tanda tambahan menyokong bilangan bulat dan nombor terapung, dan juga boleh digunakan untuk pembolehubah. Nombor rentetan akan ditukar secara automatik tetapi tidak disyorkan kepada kebergantungan; 2. Tanda -tanda pengurangan - tanda, pembolehubah adalah sama, dan penukaran jenis juga terpakai; 3. Tanda -tanda pendaraban menggunakan tanda *, yang sesuai untuk nombor dan rentetan yang serupa; 4. Bahagian menggunakan / tanda, yang perlu mengelakkan pembahagian dengan sifar, dan perhatikan bahawa hasilnya mungkin nombor terapung; 5. Mengambil tanda modulus boleh digunakan untuk menilai angka ganjil dan bahkan, dan apabila memproses nombor negatif, tanda -tanda selebihnya selaras dengan dividen. Kunci untuk menggunakan pengendali ini dengan betul adalah untuk memastikan bahawa jenis data adalah jelas dan keadaan sempadan ditangani dengan baik.

Ya, PHP boleh berinteraksi dengan pangkalan data NoSQL seperti MongoDB dan Redis melalui sambungan atau perpustakaan tertentu. Pertama, gunakan pemacu MongoDBPHP (dipasang melalui PECL atau komposer) untuk membuat contoh pelanggan dan mengendalikan pangkalan data dan koleksi, penyisipan sokongan, pertanyaan, pengagregatan dan operasi lain; Kedua, gunakan perpustakaan predis atau lanjutan phpredis untuk menyambung ke REDIS, lakukan tetapan dan pengambilalihan nilai utama, dan mengesyorkan PHPREDI untuk senario berprestasi tinggi, sementara Predis mudah untuk penempatan pesat; Kedua-duanya sesuai untuk persekitaran pengeluaran dan didokumentasikan dengan baik.

Tostaycurrentwithphpdevelopmentsandbestpractices, followeyNewsssourcesLikePhp.netandphpweekly, engageWithCommunitiesonforumsandconference, keeptoolingupdatedandgraduallyAdoptNewFeatures, dan readribcoursourcourceSource

Phpbecamepopularforwebdevelopmentduetoitseaseoflearning, seamlessintegrationwithhtml, widespreadhostingsupport, andalargeecosystemincludingframeworkslikelaravelandcmsplatformsLikeWordPress.itexcelsinhandessubmissions

TosetTheRightTimeZoneinPhp, USEDATE_DEFAULT_TIMEZONE_SET () functionAtthestArtAfyourscriptwithavalididentifiersuchas'america/new_york'.1.usedate_default_timeSet ()
