分析織夢(mèng)后臺(tái)添加文檔功能,dedecms
導(dǎo)讀:dedecmsdedecms當(dāng)我們?cè)诳棄?mèng)后臺(tái)建立欄目后,在這個(gè)欄目下面點(diǎn)擊添加文檔,會(huì)列出一個(gè)界面(實(shí)際上是一個(gè)表單),然后添加內(nèi)容,點(diǎn)擊保存,文章(這里以文章模型為例子,其它的模型功能實(shí)dede58模板。
當(dāng)我們?cè)诳棄?mèng)后臺(tái)建立欄目后,在這個(gè)欄目下面點(diǎn)擊“添加文檔”,會(huì)列出一個(gè)界面(實(shí)際上是一個(gè)表單),然后添加內(nèi)容,點(diǎn)擊保存,文章(這里以文章模型為例dede模板安裝子,其它的模型功能實(shí)現(xiàn)類似)就發(fā)布了,今天就分析這一系列功能織夢(mèng)是如何實(shí)現(xiàn)的。
用到的文件:catalog_do.php,content_list.php,content_list.htm,article_add.php,article_add.htm,article_add.php,article_add.htm
用到的數(shù)據(jù)庫(kù)表:dede_channeltype,dede_arctype
看似簡(jiǎn)單,我們用鼠標(biāo)點(diǎn)二次,就可以發(fā)布一篇文章,其實(shí),用到的知識(shí)非常多,有php知識(shí)、數(shù)據(jù)庫(kù)知識(shí)、javalscript(包括jquery框架)、css、html等知識(shí),雖然,簡(jiǎn)單的二個(gè)鼠標(biāo)操作,但是用到了幾乎所有的網(wǎng)站建設(shè)的知識(shí),如果我們把這個(gè)流程分析透徹,那么,對(duì)織夢(mèng)特別是二次開(kāi)發(fā),會(huì)有很大幫助,而且可舉一反三,雖然,這次分析的是一個(gè)文章模型,但大同小異,下面就讓我們開(kāi)始分析吧。
添加欄目后(我提前添加了一些文章,作為備用)會(huì)進(jìn)入到如下圖所示。
這個(gè)界面用到的模板是content_list.htm,界面對(duì)應(yīng)的程序是content_list.php,因?yàn)榻裉煳覀兎治?ldquo;添加文檔”功能,所以,content_list.php這個(gè)文件今天用不到,但是這個(gè)引入的模板文件content_list.htm我們要用到,我們打開(kāi)這個(gè)模板文件,大約在22行,找到如下這樣一段代碼<input type='button' class="coolbg np" onClick="location='catalog_do.php?channelid={dede:global.channelid/}&cid={dede:global.cid/}&dopost=addArchives';" value='添加文檔' />,我們重點(diǎn)看這段代碼里面這一段catalog_do.php?channelid={dede:global.channelid/}&cid={dede:global.cid/}&dopost=addArchives,這一段里面的catalog_do.php文件是重點(diǎn),這個(gè)php文件,是通過(guò)后面的條件,來(lái)
判斷添加的文檔是哪個(gè)模型,哪個(gè)欄目,并在catalog.do.php程序文件里面調(diào)用出相應(yīng)的發(fā)布表單。
我們打開(kāi)catalog_do.php這個(gè)文件,找到下面的段代碼,如圖所示。
找到if($dopost=="addArchives"),這個(gè)判斷,里面的$dopost=="addArchives"與上面的catalog_do.php?channelid={dede:global.channelid/}&cid={dede:global.cid/}&dopost=addArchives最后那個(gè)條件dopost=addArchives,是不是相對(duì)應(yīng)?是的,正是通過(guò)這個(gè)條件,跟這個(gè)判斷,使catalog_do.php文件和content_list.htm模板文件關(guān)聯(lián)起來(lái),這是重點(diǎn),也是織夢(mèng)二次開(kāi)發(fā)重點(diǎn)知識(shí),不僅是織夢(mèng),其它c(diǎn)ms也是這樣應(yīng)用的。
接下來(lái),我們?cè)敿?xì)看一下增加文檔這個(gè)函數(shù)function addArchives(),通過(guò)條件dopost=addArchives,我們進(jìn)入到catalog_do.php文件后,程序就找到了函數(shù)function addArchives(),然后,程序判斷如果是模型沒(méi)有指定并且欄目也沒(méi)有指定(這種情況是有的,如我們?cè)诤笈_(tái)左邊菜單導(dǎo)航里面的“我發(fā)布的文檔”,程序就是沒(méi)有指定模型id和欄目id)時(shí),點(diǎn)“添加文檔”后,通過(guò)這段代碼header("location:article_add.php"),調(diào)用調(diào)用默認(rèn)文章調(diào)用發(fā)布表單;接下來(lái)假設(shè)模型id不空時(shí),程序會(huì)通dede模板堂過(guò)查詢數(shù)據(jù)庫(kù)表dede_channeltype,查出一條記錄并賦給變量$row,再通過(guò)這個(gè)段代碼$gurl = $row["addcon"],取出對(duì)應(yīng)的addcon的值賦給$gurl,這樣我們可以通過(guò)重新定位功能代碼header("location:{$gurl}?channelid={$channelid}&cid={$cid}"),來(lái)達(dá)到和前面的header("location:article_add.php")這句的功能,只不過(guò)在這次后面加上了二個(gè)條件而已。
我們看一下數(shù)據(jù)庫(kù)表dede_channeltype里面對(duì)應(yīng)的字段addcon就是添加文章、圖片集,分類信息,軟件等的添加處理程序,由此我們不難發(fā)現(xiàn),只要我們把a(bǔ)ddcon的值取出來(lái),再通過(guò)header定位功能,就可以實(shí)現(xiàn)當(dāng)我們點(diǎn)擊“添加文檔”時(shí),轉(zhuǎn)到對(duì)應(yīng)的內(nèi)容的添加界面。
第三個(gè)判斷,當(dāng)模型id和欄目id都存在時(shí),這次,只用數(shù)據(jù)庫(kù)表dede_channeltype這個(gè)是不行的,因?yàn)椋@個(gè)表里面沒(méi)有字段cid,這個(gè)字段在數(shù)據(jù)庫(kù)表dede_arctype這個(gè)里面,現(xiàn)在問(wèn)題是我們要取到addcon的值,但表dede_arctype這里面又沒(méi)有,而這個(gè)表又用到,怎么辦呢?只能把這二個(gè)表用select 里面的左拼接查詢出來(lái),這個(gè)也簡(jiǎn)單。就是用的這句查詢功能SELECT ch.addcon FROM `dede_arctype` tp LEFT JOIN `dede_channeltype` ch ON ch.id=tp.channeltype WHERE tp.id='$cid' ,如果有興趣的可以研究一下。學(xué)過(guò)數(shù)據(jù)庫(kù)的這個(gè)一看就明白,這樣我們又把第三種情況對(duì)應(yīng)的addcon值也查詢出來(lái)的。這樣對(duì)應(yīng)的發(fā)布表單也調(diào)出來(lái)了。
接下來(lái)我們進(jìn)入了“發(fā)布文章”界面(這里以第三種情況,即有模型id也有欄目id為例子),如下圖所示。
聲明: 本文由我的SEOUC技術(shù)文章主頁(yè)發(fā)布于:2023-07-20 ,文章分析織夢(mèng)后臺(tái)添加文檔功能,dedecms主要講述后臺(tái),標(biāo)簽,織夢(mèng)網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請(qǐng)保留鏈接: http://www.bifwcx.com/article/web_31508.html
為你推薦與分析織夢(mèng)后臺(tái)添加文檔功能,dedecms相關(guān)的文章
-
通王TWCMS 2.0.3網(wǎng)站模板程序下載
(126)人喜歡 2024-01-15 -
Windows官方原版在哪里下載
(175)人喜歡 2024-01-15 -
WordPress網(wǎng)站模板發(fā)帖標(biāo)題顏色設(shè)置
(131)人喜歡 2024-01-07 -
修改discuz論壇帖子標(biāo)題80字符的長(zhǎng)度限制
(249)人喜歡 2024-01-07 -
wordpress程序調(diào)用不帶超鏈接的Tag標(biāo)簽
(234)人喜歡 2024-01-05 -
網(wǎng)站在不同時(shí)期需調(diào)整內(nèi)容更新的方向
(112)人喜歡 2023-08-12