一、基本概念:
1、cms(contentmanagement system)內(nèi)容管理系統(tǒng),
適合于管理什么系統(tǒng)(適合于做什么類(lèi)型的網(wǎng)站)
(1)以靜態(tài)為主,
(2)以內(nèi)容展示為主,
(3)邏輯比較簡(jiǎn)單,網(wǎng)站的結(jié)構(gòu),比較清晰明了(主頁(yè),欄目頁(yè)(列表頁(yè)面),內(nèi)容詳情頁(yè)面)
比如:電影網(wǎng)站,軟件下載網(wǎng)站,圖片素材網(wǎng)站,簡(jiǎn)單的企業(yè)門(mén)戶網(wǎng)站,學(xué)校網(wǎng)站。
不適合于:SNS(個(gè)人設(shè)置),股票,復(fù)雜的電子商務(wù)網(wǎng)站,內(nèi)容更新比較頻繁的網(wǎng)站。
2、cms系統(tǒng)的選擇
(1)dedecms,織夢(mèng)cms系統(tǒng),以簡(jiǎn)單,實(shí)用,開(kāi)源而聞名,適合于中小型網(wǎng)站,一些企業(yè)和學(xué)校也在使用。偏于套模板。
(2)phpcms:專業(yè)度要高于dedecms,適合于做大站,適合于做二次開(kāi)發(fā)。
(3)帝國(guó)cms:功能一般。
3、開(kāi)源的cms系統(tǒng)提供了哪些功能?
(1)強(qiáng)大靈活的后臺(tái)管理功能。
(2)全站靜態(tài)化(前臺(tái)),添加完成內(nèi)容后,通過(guò)后臺(tái)的按鈕直接生成靜態(tài)頁(yè)面。
(3)強(qiáng)大的采集功能,采集別人網(wǎng)站的數(shù)據(jù)。
(4)強(qiáng)大的標(biāo)簽功能,便于在模板頁(yè)面中取出數(shù)據(jù),
(5)采用mvc架構(gòu),便于擴(kuò)展新的功能。
二、安裝dedecms
1、下在cms的安裝包
2、直接把安裝包拷貝網(wǎng)站的根目錄
3、直接在瀏覽器中訪問(wèn)
4、第一次訪問(wèn)時(shí),提示安裝。
建議大家配置一個(gè)虛擬主機(jī),便于學(xué)習(xí)安裝。
案例:演示地址:
http://www.desdev.cn/case.html
三、使用cms 系統(tǒng)開(kāi)發(fā)一個(gè)網(wǎng)站流程。
1、定義模型,用于確定網(wǎng)站的數(shù)據(jù)內(nèi)容。
在后臺(tái)-》核心-》頻道模型-》內(nèi)容模型管理,
2、創(chuàng)建欄目,網(wǎng)站的導(dǎo)航,、欄目下面還有子欄目,
3、添加具體的內(nèi)容,具體數(shù)據(jù)內(nèi)容的增刪改查。
4、創(chuàng)建模板,采用標(biāo)簽取出數(shù)據(jù)。
5、通過(guò)后臺(tái),生成靜態(tài)頁(yè)面,前臺(tái)首頁(yè),欄目頁(yè)面,內(nèi)容詳情頁(yè)面。
四、入門(mén)案例,完成一個(gè)新聞?lì)愋偷木W(wǎng)站。
要求,有欄目,有子欄目,前臺(tái)靜態(tài)化。
1、定義新聞?lì)愋偷膬?nèi)容模型,該新聞?lì)愋偷哪P?,默認(rèn)有,則無(wú)需自己創(chuàng)建。
2、創(chuàng)建網(wǎng)站的欄目,首頁(yè)的導(dǎo)航。
要選擇當(dāng)前欄目所屬的模型。
當(dāng)我們添加一個(gè)欄目的時(shí)候,欄目數(shù)據(jù)是添加到dede_arctype表里面的。
父級(jí)欄目的id
頂級(jí)欄目的id
欄目的名稱
在添加欄目的時(shí)候,在a目錄下面,生成以欄目的漢語(yǔ)拼音為名稱的一個(gè)目錄,
轉(zhuǎn)換的一個(gè)原理。
3、添加數(shù)據(jù)的內(nèi)容。
當(dāng)我們添加內(nèi)容的時(shí)候,內(nèi)容數(shù)據(jù)是存儲(chǔ)到哪張表里面的呢?
該數(shù)據(jù)是存儲(chǔ)到兩張表里面的,
dede_archives(內(nèi)容主表)
dede_addonarticle(附加表)
4、創(chuàng)建模板,先使用默認(rèn)的模板,
5、生成靜態(tài)頁(yè)面,
五、表之間的關(guān)系,
1、dede里面的內(nèi)容模型的概念。
內(nèi)容模型:存儲(chǔ)數(shù)據(jù)的類(lèi)型,類(lèi)似于魚(yú)和魚(yú)類(lèi)的概念,人和人類(lèi)的概念。
比如:
office 2016(具體的一個(gè)軟件) 內(nèi)容模型:軟件模型
春天的故事(具體的一首歌) 內(nèi)容模型:音樂(lè)
李世民(具體的一個(gè)人) 內(nèi)容模型:人類(lèi)
dede里面模型是存儲(chǔ)到dede_channeltype表里面
添加一個(gè)新模型后,dede_channeltype表里面會(huì)添加一條記錄。
2、內(nèi)容主表和附加表:
要存儲(chǔ)的數(shù)據(jù):
電影數(shù)據(jù): 名稱 導(dǎo)演 主演 劇情 瀏覽量
音樂(lè)數(shù)據(jù) : 作詞 作曲 歌詞 原唱 名稱 瀏覽量
圖片數(shù)據(jù): 名稱 分辨率 圖片的格式 圖片的名稱 圖片的大小 瀏覽量
軟件數(shù)據(jù): 名稱 語(yǔ)言 作者 大小 格式
商品數(shù)據(jù):
思考:如何設(shè)置表,用于存儲(chǔ)以上數(shù)據(jù)。
采用:分表(水平分割,垂直分割)技術(shù),
內(nèi)容主表:用于存儲(chǔ)公共的一些信息的,dede里面是dede_archives
附加表:用于存儲(chǔ)數(shù)據(jù)的獨(dú)有的信息,附加表是有多個(gè)的。
比如當(dāng)前:
dede_addonimage:圖片的獨(dú)特?cái)?shù)據(jù)
dede_addonmusic:音樂(lè)的獨(dú)特的數(shù)據(jù)
dede_addonmovie:電影數(shù)據(jù)
3、表之間的關(guān)系。
內(nèi)容主表 附加表 欄目表 內(nèi)容模型表
(1)dede_archives內(nèi)容主表和dede_addonXXX(附加表)關(guān)系:
dede_archive表里面 的id字段和dede_addonxxxx表里面 的aid字段相關(guān)聯(lián)。
(2)欄目表dede_arctype和內(nèi)容主表dede_archives表之間關(guān)系。
一個(gè)具體 的內(nèi)容,必須屬于某個(gè)欄目的。
所屬欄目的id
dede_arctype表里面的id和dede_archives表里面的typeid字段相關(guān)聯(lián)。
(3)欄目和內(nèi)容模型表里面的關(guān)系。
在添加欄目的時(shí)候,必須要指定一個(gè)內(nèi)容模型。
dede_arctype欄目表里面的channeltype字段和dede_channeltype字段的id相關(guān)聯(lián)。
六、內(nèi)容模型修改,自定義內(nèi)容模型
注意 :在添加完成某個(gè)模型的欄目后,想要添加該欄目的數(shù)據(jù),需要在后臺(tái)重新刷新一下,在核心-》內(nèi)容管理-》會(huì)出來(lái)該模型數(shù)據(jù)的添加按鈕。
1、修改模型,
在dede里面默認(rèn)的模型有時(shí)不滿足我們,需要修改模型
比如,在添加商品時(shí)在此處添加一個(gè)產(chǎn)地。需要修改商品模型。
如何更改:
在后臺(tái)-》核心-》頻道模型-》內(nèi)容模型管理-》
更改
單擊修改后,選擇字段管理。
選擇添加新字段,新添加的字段默認(rèn)在最后,
在字段管理里面,通過(guò)調(diào)節(jié)如下代碼,設(shè)置表單顯示的位置。
調(diào)試結(jié)果如下:
對(duì)應(yīng)附加表里面添加了一個(gè)字段。
2、自定義模型
當(dāng)默認(rèn)的模型無(wú)法滿足我們時(shí),要自己定義模型,(新建模型)
如何定義:
定義模型:新增一張附加表,定義附加表里面的字段信息。
字段信息如何定義:根據(jù)內(nèi)容詳情頁(yè)面里面,顯示的數(shù)據(jù)信息而定義,
要注意:有些信息無(wú)需定義,因?yàn)樵趦?nèi)容主表里面已經(jīng)定義了,比如名稱,縮略圖的地址等。
在內(nèi)容模型管理里面-》新建模型即可:
新建完成模型后,附加表對(duì)應(yīng)創(chuàng)建,在附加表里面默認(rèn)有幾個(gè)字段,不能滿足我們,因此要添加我們自己定義的字段。
針對(duì)我們電影網(wǎng)站定義模型字段內(nèi)容:
七、模板替換,使用標(biāo)簽取出數(shù)據(jù),
電影網(wǎng)站的模型已經(jīng)完成,接下來(lái)完成電影網(wǎng)站的欄目的創(chuàng)建。
在添加完成欄目后,要刷新一下后臺(tái)首頁(yè),會(huì)在內(nèi)容管理中出現(xiàn)欄目所屬的模型,進(jìn)行添加數(shù)據(jù)。
在添加電影時(shí),常規(guī)信息下面默認(rèn)是標(biāo)題,可以改成其他的內(nèi)容顯示,修改模型,里面基本設(shè)置里面進(jìn)行修改。
1、模板替換,
(1)在dede目錄下面的templets目錄下面存儲(chǔ)是模板文件。
在templets目錄下面新建一個(gè)目錄,為a67,用于存儲(chǔ)我們電影網(wǎng)站的模板文件。
(2)把我們自己準(zhǔn)備的模板的樣式,圖片,js目錄給復(fù)制到a67目錄下面
(3)定義模板文件的名稱。
需要準(zhǔn)備至少是3個(gè)模板文件,首頁(yè)模板,列表頁(yè)面的模板,內(nèi)容詳情頁(yè)面的模板
首頁(yè)的模板:
欄目(列表)頁(yè)面模板:
核心-》網(wǎng)站欄目管理-》更改-》
內(nèi)容詳情頁(yè)面的模板名稱
單擊某一個(gè)欄目,默認(rèn)已經(jīng)命好名稱,可以自己修改成自己想要的名稱,要注意,擴(kuò)展名必須是.htm的。
一個(gè)欄目對(duì)應(yīng)兩個(gè)模板文件,在默認(rèn)情況下,同屬于一個(gè)模型的所有欄目使用同樣的模板文件。我們也可以設(shè)置,不同的欄目使用不同的模板。
電影列表頁(yè)
首頁(yè)
電影內(nèi)容頁(yè)
(4)設(shè)置cms系統(tǒng)使用我們自己的模板,
(5)生成首頁(yè)的靜態(tài)頁(yè)面。
要改成我們自己模板目錄
2、使用標(biāo)簽取出數(shù)據(jù)
在dede里面有兩種標(biāo)簽,單標(biāo)簽和雙標(biāo)簽。標(biāo)簽只能在模板文件中使用。
(1)單標(biāo)簽:
使用語(yǔ)法:
{dede:global.標(biāo)簽的名稱/}
{dede:global.cfg_webname/}
{dede:global.cfg_templets_skin/},給我們解析成當(dāng)前的模板目錄:
單標(biāo)簽是實(shí)際上是解析成全局變量,在include目錄下面有一個(gè)文件common.inc.php,該文件里面定義了一些全局變量,如果想在模板文件中使用全局變量,則使用單標(biāo)簽來(lái)取出。
自己可以建立一個(gè)測(cè)試文件,用于測(cè)試標(biāo)簽內(nèi)容的解析,比如在a67下面建立一個(gè)demo.htm文件,用于測(cè)試,
我們新建的測(cè)試模板文件。
(2)雙標(biāo)簽,取出數(shù)據(jù)內(nèi)容。
查看dedecms里面提供的雙標(biāo)簽,
語(yǔ)法格式:
{dede:標(biāo)簽的名稱 屬性1=屬性值1 屬性2=屬性值2}
[field:字段名稱/]
{/dede:標(biāo)簽的名稱}
標(biāo)簽對(duì)應(yīng)表里面的字段名稱
案例1:取出欄目數(shù)據(jù)內(nèi)容,使用的標(biāo)簽是,channel標(biāo)簽,
該標(biāo)簽在解析的時(shí)候,是查詢的dede_arctype表
取出的數(shù)據(jù):
每一個(gè)雙標(biāo)簽,對(duì)應(yīng)一個(gè)解析文件的。該解析文件在include 目錄下面的,taglib目錄下面。
channel標(biāo)簽的解析文件。
可以在channel.lib.php文件中測(cè)試執(zhí)行的sql語(yǔ)句,通過(guò)輸出該語(yǔ)句,判斷讀取哪張表里面的數(shù)據(jù)。
添加模板。顯示樣式。
輸出的sql語(yǔ)句。
案例2:取出電影首頁(yè)模板中導(dǎo)航條,取出欄目信息,使用channel標(biāo)簽,
該內(nèi)容是標(biāo)簽計(jì)算出來(lái),是連接到欄目頁(yè)面的連接
案例3:取出首頁(yè)模板中,推薦數(shù)據(jù)內(nèi)容。
思考:先用哪個(gè)標(biāo)簽,
arclist:標(biāo)簽,該標(biāo)簽是取出具體的數(shù)據(jù)內(nèi)容,內(nèi)容主表(dede_archives)和附加表(dede_addonXXx)
channeled=’模型的id’: 通過(guò)該屬性,用于確定是取出哪個(gè)模型的數(shù)據(jù),也就是確定讀取哪張附加表,如果沒(méi)有該屬性,則不讀取附加表里面的數(shù)據(jù)。
addfields=”附加表字段多個(gè)用逗號(hào)隔開(kāi)”,用于確定從附加表里面取出哪些字段信息。
標(biāo)簽代碼: