POST TIME:2020-04-09 01:36
首先了解dedecms的內(nèi)容表存儲結(jié)構(gòu),本教程針以dedecms V5為例,dedecms內(nèi)容存儲有一個(gè)主表dede_archives,所有內(nèi)容的一些公用字段都存儲在該表中,例如“標(biāo)題”、“作者”、“發(fā)布時(shí)間”等,還有表就是dede_addon(*) 這個(gè)表存儲的是內(nèi)容的附加字段,例如文章模型,如果你發(fā)布一篇文章,文章標(biāo)題、作者、發(fā)布時(shí)間等存放在dede_archives,然后內(nèi)容存放在dede_addonarticle這個(gè)表上,其他內(nèi)容模型也是如此。下面我們就來開始我們的修改。
我們先增加一個(gè)共有字段,例如我們在每個(gè)模型中加入“責(zé)任編輯”這個(gè)項(xiàng)目。
首先在數(shù)據(jù)庫中添加一個(gè)字段,你可以借助phpmyadmin這樣的工具完成,或者使用一些軟件形式的mysql管理工具添加字段,在這里天涯就使用dedecms自帶的【SQL命令運(yùn)行器】執(zhí)行字段添加:
以下為引用的內(nèi)容:
ALTER TABLE `dede_archives` ADD `editor` VARCHAR( 30 ) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL AFTER `writer` ;
顯示“成功執(zhí)行1個(gè)SQL語句!”代表你添加成功。
接下來我們修改頁面,這里介紹dedecms的內(nèi)容發(fā)布原理,和大多程序一樣,內(nèi)容發(fā)布是由一個(gè)提交表單頁面,然后一個(gè)表單處理頁面構(gòu)成,新版本將發(fā)布的模板分離出來,更利于大家修改,首先講下dedecms文章發(fā)布原理,首先是管理目錄下的article_add.php文件,這個(gè)文件接收管理員提交的內(nèi)容信息,該發(fā)布模型的模板可以在管理目錄下的templets中找到,文件名為article_add.htm,提交的內(nèi)容信息是由管理目錄下的action文件article_add_action.php進(jìn)行內(nèi)容處理然后寫入數(shù)據(jù)庫中,所以修改我們只需要修改兩個(gè)文件,一個(gè)模板,一個(gè)處理文件。
我們先修改模板文件,這個(gè)對新人來說比較簡單,直接用Adobe Dreamweaver CS3打開/dede/templets/article_add.htm這個(gè)文件,在相應(yīng)地方添加一個(gè)表單,如圖所示:
修改完之后再進(jìn)入后臺文章發(fā)布界面,發(fā)現(xiàn)已經(jīng)出現(xiàn)了發(fā)布字段“責(zé)任編輯”,但事情還沒有結(jié)束,因?yàn)橹皇亲隽藗€(gè)界面,還沒有實(shí)現(xiàn)功能,下面就來修改文章發(fā)布處理頁action/article_add_action.php
找到第123行,這里是為dede_archives增加內(nèi)容的SQL語句,
以下為引用的內(nèi)容:
//加入數(shù)據(jù)庫的SQL語句
//----------------------------------
$inQuery = "INSERT INTO dede_archives(
typeid,typeid2,sortrank,iscommend,ismake,channel,
arcrank,click,money,title,shorttitle,color,writer,source,litpic,
pubdate,senddate,arcatt,adminID,memberID,description,keywords,templet,redirecturl,likeid)
VALUES ('$typeid','$typeid2','$sortrank','$iscommend','$ismake','$channelid',
'$arcrank','0','$money','$title','$shorttitle','$color','$writer','$source','$litpic',
'$pubdate','$senddate','$arcatt','$adminID','0','$description','$keywords','$templet','$redirecturl','$likeid');";
?>
我們只需要在其中加入我們增加的字段“editor”,將其變?yōu)橄铝行问剑?/p>
以下為引用的內(nèi)容:
//加入數(shù)據(jù)庫的SQL語句
//----------------------------------
$inQuery = "INSERT INTO dede_archives(
typeid,typeid2,sortrank,iscommend,ismake,channel,
arcrank,click,money,title,shorttitle,color,writer,editor,source,litpic,
pubdate,senddate,arcatt,adminID,memberID,description,keywords,templet,redirecturl,likeid)
VALUES ('$typeid','$typeid2','$sortrank','$iscommend','$ismake','$channelid',
'$arcrank','0','$money','$title','$shorttitle','$color','$writer','$editor','$source','$litpic',
'$pubdate','$senddate','$arcatt','$adminID','0','$description','$keywords','$templet','$redirecturl','$likeid');";
?>
這里添加內(nèi)容頁面我們已經(jīng)修改完成了,下面就是調(diào)用,我們可以使用標(biāo)記進(jìn)行調(diào)用,我們在模板中,即/templets/article_*.htm(*代表任何內(nèi)容),這里我們修改的是文章模型,所以只需要在/templets/article_artcile.htm相應(yīng)地方加入標(biāo)記:{dede:field name='editor' /},即可,看看我們的效果吧。
按照同樣辦法,你可以修改其他發(fā)布頁面,但是不要忘記還要修改內(nèi)容編輯頁面,這樣使得我們的程序更完美。
提示下,內(nèi)容編輯頁面文件名分別是/dede/templets/article_edit.htm以及/dede/action/article_eidt_action.php,與添加頁面不用是,在模板中增加的文本框默認(rèn)內(nèi)容是“”,如圖所示:
好了,增加字段我們這里就講完了,不知道大家還有什么問題,如果有問題可以在織夢官網(wǎng)論壇