如果你想了解更多關於dedecms的知識,可以點選:dedecms教學
網頁範本就是templets中的htm檔案,所以寫範本就是要寫html。這篇文章不是關於標籤的具體使用,而是對網頁模板的一些理解。包括基本的標籤語法,封面模板,清單模板和文件模板的關係。
一關於標籤
dedecms標籤:就像html標籤,不過是織夢自訂的,由標籤名,屬性,和InnerText構成。
改寫檔案templets/index.htm
网站名:{dede:global name=cfg_webname/}<br/><br/> <strong>最近登陆的会员</strong><br/> {dede:memberlist row=6 signlen=30} <a href="[field:spaceurl/]" target="_blank"> <img src="[field:face/]" style="max-width:90%" style="max-width:90%"/ alt="dedecms怎麼製作網站模板" > [field:uname/]<br/> </a> {/dede:memberlist}
透過執行網站首頁index.php檢視結果。
像dede:global就是標籤名,name=cfg_webname是屬性,在dede:memberlist標籤間的就是InnerText。在織夢中,InnerText又稱為底層模板。
短標籤:像global這種只有單邊的標籤叫短標籤,表示一個元素的值。
塊標籤:像memberlist這種成對的標籤叫塊標籤,一般表示一系列的紀錄,像上面的程式碼就表示列出6個會員的默寫資訊。研究一下會發現這些記錄來自資料庫。
[field:XX]這個代表記錄中的某個屬性值。
總結一下,寫範本時用到哪些語言:Html程式碼 新增的dedecms標籤語法。 Css和Js沒有新語法,以外部檔案的方式呼叫。
Php,mysql的程式碼大大減少,與資料庫查詢有關的程式碼一部分被標籤語法取代。比如說呼叫memberlist標籤,就等價於存取資料表dede_member。 Php主要用於插件等新模組的編寫和修改。
不用全部標籤都學,學會global、field、php、arclist、list、pagelist和memberlist即可。其他需要再查。
要學習一個標籤,要學習
1標籤的基本語法,標籤名
# 2標籤,標籤對應的網頁模板,及標籤的邏輯意義
3標籤的屬性以及其對標籤用法的控制
4標籤背後的資料來源,及其提供的InnerText
二模板的種類
2.1 templets資料夾
# System資料夾,裡面放的是預設底層模板。當我們在區塊級標籤間不寫任何東西時,就會自動被呼叫來當作區塊級標籤的InnerText。
Plus資料夾,裡面放的是被root_dir/plus裡的php呼叫的模板。經過一些研究也許能仿寫這些模板的程式碼,待探究。
Default資料夾,裡面放的是預設模板,是網頁顯示主要的模板,如果在網上下一個其他的dedecms模板(非官方預設模板),可能裡面只是一個templets資料夾,因為這對外觀已經足夠了。下面是default資料夾的分析。
我以前只用到index.htm,其他的文件有什麼用呢?
我認為這些文件可以分成兩類:
第一類不是一個完整的頁面,被include的(由於有了dedecms標籤,html文檔中也可以include)。如head.htm,footer.htm等。
第二類就是完整的頁面了,呵呵。
而第二類又分為封面(index)模板,列表(list)模板,文件(內容,article)模板。資料夾中的index_XX.htm就是封面模板,依此類推。
2.2封面、清單和文件範本的測試
# 在root_dir/index.php中的SetTemplet處把路徑改為dirname(__FILE__) . "/templets/default/list_article.htm
",顯示的內容較不完整。這些模板怎麼用呢?一下是我探索的方法:
開啟dedecms的網站後台管理(對了,請先安裝安裝資料體驗包,這樣才有測試資料)
點選網站欄位管理
在網頁基礎中點變更
常規選項中欄位屬性是頻道封面
再選擇進階選項
#進階選項中封面範本為{style}/index_article.htm
如果你安裝的資料和我是同一版本,就會知道網頁基礎是個一級欄目,底下組織了很多文章。
回到網站欄位管理
# 點擊預覽,會看到一個關於網頁基礎欄目的頁面。由於常規選項中欄位屬性是頻道封面,進階選項中封面範本為{style}/index_article.htm
,所以網頁呼叫index_article.htm
作為範本。
依此類推,如果在常規選項中欄目屬性是最終列表欄目,高級選項中封面模板為{style}/list_article.htm,則會調用list_article.htm作為模板,文檔模板也依此類推。
模板與欄目的關係
每個欄位都有自己的三個模板,而同一個模板可被多個欄位所用。也就是說,模板只是提供了樣式,但內容終究來至資料庫。這也說明了為什麼在root_dir/index.php中的SetTemplet處改路徑不能顯示完整的內容,因為模板沒有綁定到某個特定欄位。這也是織夢作為內容管理系統的特點,把樣式和內容分開。
再來說文檔模板,在常規選項->欄位屬性處看到。作為頻道封面欄不能發布文章的。那我們選一個最終清單欄目,如」Html」
點選變更。看到常規選項中欄位屬性是最終清單欄目,點進階選項,就能看到文件範本為{style}/article_article.htm,所以Html欄位下所有的文章都會以這個範本顯示。
點選內容管理裡的普通文章
選擇一篇Html欄位下的文章,點預覽(右邊的那個綠色小球)
這時看到的是就是article_article.htm模板代表的樣式。
到這裡,應該就會如何顯示/偵錯封面範本、清單範本和文件範本了。
2.3頻道
可以看見templets/default中大部分的模板都是這三類,可見其重要性。那麼有index_article.htm,list_article.htm,article_article.htm就夠了,其他又是做什麼的。
這就要講到頻道,頻道是欄目的類型,文章(article)頻道、圖片(image)頻道、軟體(soft)頻道(實質是一個下載頻道)、商品(shop)頻道等。頻道是一種內容模型,例如動漫、風景都能用圖片頻道。所以就會有index_article.htm,index_ image.htm,index_ soft.htm,index_shop.htm。每個頻道都有自己的三種模板。
那麼如何寫模板,當然要先學過標籤語法
A、function 擴展,如{dede:標記名稱function=”函數名(@me,其它參數) 」 /}
B、在Innertext中直接編程,也就是之前一直用的方法
再讀一下index_article.htm,list_article.htm, article_article.htm。讀源碼是最好的學習方法^_^
總的來說,寫網頁具體要做的就是為每個頻道編寫網頁模板。
以上是dedecms怎麼製作網站模板的詳細內容。更多資訊請關注PHP中文網其他相關文章!