Dedecms新版本(V5系列)模板標記非常靈活,對於很多新人是一個頭疼的問題,天涯今天就來和大家談談這些標記,為以後大家修改、製作模板打下紮實基礎。
: E/ s9 y" G3 i1 G# S z8 b, W
0 W- T: q; c, R3 x7 t4 K+ U3 J- S/ p6 F 首先我們去官方的《模板製作幫助文檔》查看這些標記的簡介,如何來看幫助文檔呢,下面天涯就來簡單的說一下,我們拿最常用的Arclist標記來做說明。
/ _8 T; G1 m" R! ^7 v( r: F& J# W2 F' z
* V# w! E2 B: [) E
幫助文檔中都有【功能說明】【適用範圍】【基本語法】【屬性說明】這些部分組成,
4 I! t }8 Z |# x1 Y【功能說明】用於解釋模板標記使用功能,建議新手都把這些標記功能看看,大致做一個瞭解。
* d$ ^! W$ z p, B【適用範圍】由於Dedecms模板大致分為首頁、頻道、列表、內容以及其他附加模板組成,使用範圍指出這些標記在哪些模板中起作用。模板文件夾中(以Dedecms默認模板為例,即{cmspath}\templets\default)大家可以仔細分析下,模版中很多都是以下列這些名字出現index.htm,index_X.htm(封面模板),list_X.htm(列表模板),article_X.htm(內容模板),你可以對照標記的適用範圍,查看這些標籤在哪個模板中能起到作用。
1 k! u1 F3 J x【基本語法】用於介紹模板基本使用方法,在使用時候可以拿來根據自己的需要進行響應的修改。 * l0 k5 j9 P; U% ], B0 X' Q
【屬性說明】這些屬性,決定你調用的內容,決定Dedecms解析這些標記的形式,屬性非常重要。
* w5 d0 B! B+ A" B& F# L# F- B& N. L( C0 r) ?2 x5 ]' l
% T+ |1 z# y y D3 O+ f 以上這些介紹主要是讓大多數新手學會看幫助文件,模板修改使用的大多數問題都是因為自己不去看這些幫助文件導致的,希望廣大Dedecms新人引以為戒。
, x/ h- l+ u* q
. Z8 ?* t9 X d U) ` 下面就來簡單說下Dedecms模板的分類,搞過ASP的人應該知道,動態網頁基本上就是對變量、數組(數據庫)的操作,然後通過語句輸出為HTML,dedecms的這些標記也是起到同樣的效果。
4 \! C, U" t4 W下面根據起到的不同效果對模板進行如下分類: 3 b0 F5 G& [4 f6 h- W3 X/ T& t1 p
一.變量操作型 這裡的變量不同於對編程中那個複雜的變量,新人不懂,我這裡所指出的變量是Dedecms調用局部內容進行輸出的一些標記,這裡有: 【Flink (friendlink)標記】【Page 標記】【Pagelist 標記】【Pagebreak 標記】【Prenext 標記】【Pagetitle 標記】【Myad 標記】【Vote 標記】以及還有系統不常用的(其實天涯經常使用),例如global 標記、include 標記、mytag標記、position 標記,這些標記大家可以看出,都是輸出來為一部分內容,並不可以重複,這個標記在解析時候生成的只是一塊不重複的內容。 . {1 N0 a8 T$ _: y. `$ H2 m; c- G
" c9 C% m5 ^3 B: o8 [0 k9 G" E5 t
二.數組操作型 這裡的數組當然在模板標記中,指的是循環輸出一些內容的標記,例如N行文章、N個軟件、N個會員信息等等,Dedecms這些標記有:【Arclist 標記】【Field 標記】【Channel 標記】
% e y% g; o; N' K# J9 y【Type 標記】【Autochannel 標記】【Mynews 標記】【LOOP 標記】【Channelartlist 標記】【List 標記】【Ask 標記】【Sql 標記】【Group 標記】【Groupthread 標記】【booklist 標記】【catalog 標記】【chapter 標記】【contentlist 標記】當然也有foreach這種「罕見」的標記,這些標記使用時,通過屬性設置,能循環輸出一些列內容,很多重複的東西,往往只要一個標記就搞定,不信可以開個模板仔細觀察觀察。
, l; V( O2 x6 U- A3 U
* E% p. F' S( Q. w: p9 j
7 w/ ?8 I4 Q; y0 L! A8 Z 有了這個分類以後,在修改、製作模板時候相信會得心應手了,天涯在修改、製作模板中經常使用的標記有sql、include、loop(貌似現在被sql取代了)、mytag這些標記,因為這些標記很「自由」,當然新人可以在模板製作修改中嘗試使用這些靈活自由的標記。
6 u H; y: W6 M; l9 Q4 R5 f% }/ L9 j" R2 u9 @4 a
P. h9 y9 R( c4 u7 A5 k 本篇接下來簡單講一下數組操作性標記的原理以及他的使用方法。 % ]6 l* B( k7 L+ P9 U8 R8 l. u
% r6 \5 Z0 ^+ x3 L2 [
. {( T W# q* F7 z
我們在Dedecms模板中經常看到下面這樣的例子:
6 b* @2 A4 I7 V1 X* B2 ~6 @% e% R {dede:arclist row=4 titlelen=20 orderby=pubdate typeid=58} ( k* E) J" K+ N
<dd><span>[field:pubdate function=strftime('%m-%d',@me)/]</span>[field:textlink/]</dd>
+ X( t3 W. s7 E; d- j/ C* m) x {/dede:arclist} ! }7 A8 k& Z; d/ M
這裡我們使用了arclist標記,通過屬性我們可以得到下列相關信息: : m" i6 E7 B# D4 B; y4 I, g
row=4 調用4行這樣的數據
/ E* W! i9 G5 K ~8 R: J5 Ltitlelen=20 取標題的前20個字符(2個字符為一個中文字符)
. M; y: {! \! y+ }2 U0 c" aorderby=pubdate 排列順序為按照發佈時間排列,當然你也可以選擇其他,幫助有詳細說明。
( i5 p& H2 O' Q2 a1 n4 y1 t: m! Ptypeid=58 調用欄目id為58欄目的文章
. a4 w6 Z- s7 F L# g4 r4 o% u 標記都是通過 {dede:arclist}這個開始,{/dede:arclist}結束,這個和html有的相像,所以做dedecms模板,最好熟練下html的相關知識。
5 M% _0 ?* H }, \; f" t開始、結束標記中含有[field:textlink/]這樣的標記,新手需要記住的是[field:textlink/]只可能存在於{dede:XXX}{/dede:XXX}之間,絕對不肯能拿出來單獨使用! " y. |+ g0 o. }% ^$ c
. D7 I; B6 V1 q5 m" F9 I 其他數組操作性標記都是同樣的原理,只是將繁瑣的從數據庫調用的東西簡化為dedecms標記,dedecms在解析時候讀取標記然後進行查詢、輸出等一些後續操作。新手注意的是,熟練掌握什麼是頻道頁、列表頁、內容頁,以及調用內容關係和範圍,根據自己的頁面需要,使用不同的標記達到效果,這是新手在不斷實踐的基礎下才能掌握的。 2 |% G8 J9 \, ~ v" y. U* U4 Q) E
' P0 ?9 ^; \0 c m) e% x
|
|