首先了解dedecms的内容表存储结构,本教程针以dedecms V5为例,dedecms内容存储有一个主表dede_archives,所有内容的一些公用字段都存储在该表中,例如“标题”、“作者”、“发布时间”等,还有表就是dede_addon(*) 这个表存储的是内容的附加字段,例如文章模型,如果你发布一篇文章,文章标题、作者、发布时间等存放在dede_archives,然后内容存放在dede_addonarticle这个表上,其他内容模型也是如此。下面我们就来开始我们的修改。
我们先增加一个共有字段,例如我们在每个模型中加入“责任编辑”这个项目。
首先在数据库中添加一个字段,你可以借助phpmyadmin这样的工具完成,或者使用一些软件形式的mysql管理工具添加字段,在这里天涯就使用dedecms自带的【SQL命令运行器】执行字段添加:
以下为引用的内容:
ALTER TABLE `dede_archives` ADD `editor` VARCHAR( 30 ) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL AFTER `writer` ;
显示“成功执行1个SQL语句!”代表你添加成功。
接下来我们修改页面,这里介绍dedecms的内容发布原理,和大多程序一样,内容发布是由一个提交表单页面,然后一个表单处理页面构成,新版本将发布的模板分离出来,更利于大家修改,首先讲下dedecms文章发布原理,首先是管理目录下的article_add.php文件,这个文件接收管理员提交的内容信息,该发布模型的模板可以在管理目录下的templets中找到,文件名为article_add.htm,提交的内容信息是由管理目录下的action文件article_add_action.php进行内容处理然后写入数据库中,所以修改我们只需要修改两个文件,一个模板,一个处理文件。
我们先修改模板文件,这个对新人来说比较简单,直接用Adobe Dreamweaver CS3打开/dede/templets/article_add.htm这个文件,在相应地方添加一个表单,如图所示:
修改完之后再进入后台文章发布界面,发现已经出现了发布字段“责任编辑”,但事情还没有结束,因为只是做了个界面,还没有实现功能,下面就来修改文章发布处理页action/article_add_action.php
找到第123行,这里是为dede_archives增加内容的SQL语句,
以下为引用的内容:
//加入数据库的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”,将其变为下列形式:
以下为引用的内容:
//加入数据库的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');";
?>
这里添加内容页面我们已经修改完成了,下面就是调用,我们可以使用标记进行调用,我们在模板中,即/templets/article_*.htm(*代表任何内容),这里我们修改的是文章模型,所以只需要在/templets/article_artcile.htm相应地方加入标记:{dede:field name='editor' /},即可,看看我们的效果吧。
按照同样办法,你可以修改其他发布页面,但是不要忘记还要修改内容编辑页面,这样使得我们的程序更完美。
提示下,内容编辑页面文件名分别是/dede/templets/article_edit.htm以及/dede/action/article_eidt_action.php,与添加页面不用是,在模板中增加的文本框默认内容是“”,如图所示:
好了,增加字段我们这里就讲完了,不知道大家还有什么问题,如果有问题可以在织梦官网论坛