濮阳杆衣贸易有限公司

主頁(yè) > 網(wǎng)站建設(shè) > 建站知識(shí) > 織夢(mèng)dedecms系統(tǒng)網(wǎng)頁(yè)模板編寫(xiě)

織夢(mèng)dedecms系統(tǒng)網(wǎng)頁(yè)模板編寫(xiě)

POST TIME:2021-05-24 02:58

網(wǎng)頁(yè)模板就是templets中的htm文件,所以編寫(xiě)模板就是要編寫(xiě)html。這篇文章不是關(guān)于標(biāo)簽的具體使用,而是對(duì)網(wǎng)頁(yè)模板的一些理解。包括基本的標(biāo)簽語(yǔ)法,封面模板,列表模板和文檔模板的關(guān)系。 

一 關(guān)于標(biāo)簽 
dedecms標(biāo)簽:就像html標(biāo)簽,不過(guò)是織夢(mèng)自定義的,由標(biāo)簽名,屬性,和InnerText構(gòu)成。 
先看一段代碼templets/index.htm 

復(fù)制代碼
網(wǎng)站名:{dede:global name=cfg_webname/} 
<strong>最近登陸的會(huì)員</strong> 
{dede:memberlist row=6 signlen=30}  
    <a href="[field:spaceurl/]" target="_blank"> 
        <img src="[field:face/]"  width="52" height="52"/> [field:uname/] 
    </a> 
{/dede:memberlist}
通過(guò)運(yùn)行網(wǎng)站主頁(yè)index.php查看結(jié)果。 

像dede:global就是標(biāo)簽名,name=cfg_webname是屬性,在dede:memberlist標(biāo)簽間的就是InnerText。在織夢(mèng)中,InnerText又稱(chēng)為底層模板。 

短標(biāo)簽:像global這種只有單邊的標(biāo)簽叫短標(biāo)簽,表示一個(gè)元素的值。 

塊標(biāo)簽:像memberlist這種成對(duì)的標(biāo)簽叫塊標(biāo)簽,一般表示一系列的紀(jì)錄,像上面的代碼就表示列出6個(gè)會(huì)員的默寫(xiě)信息。研究一下會(huì)發(fā)現(xiàn)這些記錄來(lái)自數(shù)據(jù)庫(kù)。 

[field:XX]這個(gè)代表記錄中的某個(gè)屬性值。 

總結(jié)一下,編寫(xiě)模板時(shí)用到這些語(yǔ)言 

Html代碼+新增的dedecms標(biāo)簽語(yǔ)法。 

Css和Js沒(méi)有新語(yǔ)法,以外部文件的方式調(diào)用。 

Php,mysql的代碼大大減少,與數(shù)據(jù)庫(kù)查詢(xún)有關(guān)的代碼大部分被標(biāo)簽語(yǔ)法。比如說(shuō)調(diào)用memberlist標(biāo)簽,就等價(jià)于訪問(wèn)數(shù)據(jù)表dede_cms。Php主要用于插件等新模塊的編寫(xiě)和修改。 

以上只是織夢(mèng)標(biāo)簽語(yǔ)法的簡(jiǎn)述,詳見(jiàn)模板手冊(cè) 

標(biāo)記手冊(cè)1 

標(biāo)記手冊(cè)2 

站長(zhǎng)百科 

二 模板的種類(lèi) 

2.1 templets文件夾 

System文件夾,里面放的是默認(rèn)底層模板。當(dāng)我們?cè)趬K級(jí)標(biāo)簽間不寫(xiě)任何東西時(shí),就會(huì)自動(dòng)被調(diào)用來(lái)作為塊級(jí)標(biāo)簽的InnerText。 

Plus文件夾,里面放的是被root_dir/plus里的php調(diào)用的模板。經(jīng)過(guò)一些研究也許能仿寫(xiě)這些模板的代碼,待探究。

Default文件夾,里面放的是默認(rèn)模板,是網(wǎng)頁(yè)顯示主要的模板,如果在網(wǎng)上下一個(gè)其他的dedecms模板(非官方默認(rèn)模板),可能里面只是一個(gè)templets文件夾,因?yàn)檫@對(duì)外觀已經(jīng)足夠了。下面是default文件夾的分析。 

我以前只用到index.htm,其他的文件有什么用呢? 

我認(rèn)為這些文件可以分成兩類(lèi): 

第一類(lèi)不是一個(gè)完整的頁(yè)面,被include的(由于有了dedecms標(biāo)簽,html文檔中也可以include)。如head.htm,footer.htm等。 

第二類(lèi)就是完整的頁(yè)面了,呵呵。 

而第二類(lèi)又分為封面(index)模板,列表(list)模板,文檔(內(nèi)容,article)模板。文件夾中的index_XX.htm就是封面模板,依此類(lèi)推。 

2.2封面、列表和文檔模板的測(cè)試 

在root_dir/index.php中的SetTemplet處把路徑改為dirname(__FILE__) . "/templets/default/ 

list_article.htm",顯示的內(nèi)容不太完整。這些模板要怎么用呢?一下是我探索的辦法: 

打開(kāi)dedecms的網(wǎng)站后臺(tái)管理(對(duì)了,請(qǐng)先安裝安裝數(shù)據(jù)體驗(yàn)包,這樣才有測(cè)試數(shù)據(jù)) 

點(diǎn)擊網(wǎng)站欄目管理 
 

在網(wǎng)頁(yè)基礎(chǔ)中點(diǎn)更改 
  
常規(guī)選項(xiàng)中欄目屬性是頻道封面 

再選擇高級(jí)選項(xiàng) 
 
高級(jí)選項(xiàng)中封面模板為{style}/index_article.htm 

如果你安裝的數(shù)據(jù)和我是同一版本,就會(huì)知道網(wǎng)頁(yè)基礎(chǔ)是個(gè)一級(jí)欄目,底下組織了很多文章。 

回到網(wǎng)站欄目管理 

點(diǎn)擊預(yù)覽,會(huì)看到一個(gè)關(guān)于網(wǎng)頁(yè)基礎(chǔ)欄目的頁(yè)面。由于常規(guī)選項(xiàng)中欄目屬性是頻道封面,高級(jí)選項(xiàng)中封面模板為{style}/index_article.htm,所以網(wǎng)頁(yè)調(diào)用index_article.htm作為模板。 

依此類(lèi)推,如果在常規(guī)選項(xiàng)中欄目屬性是最終列表欄目,高級(jí)選項(xiàng)中封面模板為{style}/list_article.htm,則會(huì)調(diào)用list_article.htm作為模板,文檔模板也依此類(lèi)推。 

模板和欄目的關(guān)系 

每一個(gè)欄目都有自己的三個(gè)模板,而同一個(gè)模板可被多個(gè)欄目所用。也就是說(shuō),模板只是提供了樣式,但內(nèi)容終究來(lái)至數(shù)據(jù)庫(kù)。這也說(shuō)明了為什么在root_dir/index.php中的SetTemplet處改路徑不能顯示完整的內(nèi)容,因?yàn)槟0鍥](méi)有綁定到某個(gè)具體欄目。這也是織夢(mèng)作為內(nèi)容管理系統(tǒng)的特點(diǎn),把樣式和內(nèi)容分離。 

再來(lái)說(shuō)說(shuō)文檔模板,在常規(guī)選項(xiàng)->欄目屬性處看到。作為頻道封面欄目不能發(fā)布文章的。那我們選一個(gè)最終列表欄目,如”Html” 

點(diǎn)擊更改。看到常規(guī)選項(xiàng)中欄目屬性是最終列表欄目,點(diǎn)高級(jí)選項(xiàng),就能看到文檔模板為{style}/article_article.htm,所以Html欄目下所有的文章都會(huì)以這個(gè)模板顯示。 

點(diǎn)擊內(nèi)容管理里的普通文章 
 
選擇一篇Html欄目下的文章,點(diǎn)預(yù)覽(右邊的那個(gè)綠色小球) 

這時(shí)看到的是就是article_article.htm模板代表的樣式。 

到這里,應(yīng)該就會(huì)如何顯示/調(diào)試封面模板、列表模板和文檔模板了。 

2.3頻道 

可以看見(jiàn)templets/default中大部分的模板都是這三類(lèi),可見(jiàn)其重要性。那么有index_article.htm,list_article.htm,article_article.htm就夠了,其他又是干什么的。 

這就要講到頻道,頻道是欄目的類(lèi)型,文章(article)頻道、圖片(image)頻道、軟件(soft)頻道(實(shí)質(zhì)是一個(gè)下載頻道)、商品(shop)頻道等。頻道是一種內(nèi)容模型,比如動(dòng)漫、風(fēng)景都能用圖片頻道。所以就會(huì)有index_article.htm,index_ image.htm,index_ soft.htm,index_shop.htm。每個(gè)頻道都有自己的三種模板。 

那么如何編寫(xiě)模板,當(dāng)然要先學(xué)過(guò)標(biāo)簽語(yǔ)法 

A、function 擴(kuò)展,如{dede:標(biāo)記名稱(chēng) function=”函數(shù)名(@me,其它參數(shù))” /} 

B、在Innertext中直接編程,也就是之前一直用的方法 

再讀一下index_article.htm,list_article.htm,article_article.htm。讀源碼是最好的學(xué)習(xí)方法^_^ 

總的來(lái)說(shuō),寫(xiě)網(wǎng)頁(yè)具體要做的就是為每個(gè)頻道編寫(xiě)網(wǎng)頁(yè)模板。 

關(guān)于模板的內(nèi)容就分享到這里了。


收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢(xún)

  • 400-1100-266
隆回县| 湾仔区| 西盟| 乡城县| 奈曼旗| 海伦市| 苍山县| 中阳县| 温宿县| 乐都县| 淄博市| 行唐县| 博爱县| 巴彦淖尔市| 新民市| 竹山县| 阿拉善左旗| 利辛县| 鱼台县| 宝应县| 平南县| 崇信县| 河北省| 响水县| 河南省| 郁南县| 雷波县| 雷州市| 湛江市| 宜城市| 盘锦市| 突泉县| 都安| 丁青县| 岳西县| 阿克苏市| 金堂县| 繁昌县| 成都市| 华亭县| 泗水县|