Web 2.0时代时代的Web项目,是无论如何也少不了一个在线编辑器的,因此在我们的项 目中整合一个Web编辑器就显得至关重要。在这里,我依然以前面的xkland项目为例,来探 讨在项目中整合FCKeditor的方方面面。
一、关于用户发表文章的功能设计
用户发表文章的功能,大家见过不少,也用过不少,最简单的,莫过于提供一个文本框 ,数据提交后直接写入数据库了事,稍复杂一点的最少也要提供一个输入标题和选择分类的 功能。当然,我们也可以把我们的功能设计得更有特色。在这个示例项目中,我假设开发的 是一个以图文为中心的网络社区,我们每一篇文章都需要用户在它上传的图片中选择一个作 为主题图片,那么,在网站首页的文章列表上,大家看到的将不仅仅只是一个文字的标题, 还有主题图片的缩略图。
先来看看数据表的结构,创建数据表的SQL语句如下:
CREATE TABLE `topics` (
`id` int ( 11 ) NOT NULL auto_increment,
`catalogid` int ( 11 ) NOT NULL ,
`subject` varchar ( 60 ) default NULL ,
`content` text ,
`pictures` varchar ( 2000 ) NOT NULL ,
`mainpicture` varchar ( 40 ) NOT NULL ,
`userid` int ( 11 ) NOT NULL ,
`time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ,
`lastedittime` timestamp NOT NULL default ' 2007-01-01 00:00:00 ' ,
`lastreplytime` timestamp NOT NULL default ' 2007-01-01 00:00:00 ' ,
`visitcount` int ( 11 ) NOT NULL ,
PRIMARY KEY (`id`),
KEY `subject` (`subject`),
KEY `userid` (`userid`),
KEY `time` (`time`),
KEY `lastreplytime` (`lastreplytime`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8 |
其中,catalogid字段为文章分类,subject字段为标题,content字段为正文。比较特殊 的是pictures字段和mainpicture字段,pictures保存文章中包含的所有图片的url,以“| ”符号分割,如“001.jpg|002.jpg|003.jpg...”,而mainpicture就是主题图片的url了。 有人会问:“保存主题图片的url就够了,为什么还要保存所有的图片url呢?”,这样设计 主要是为了考虑到用户有时候会修改文章,重新选择别的图片作为主题图片,这个时候 pictures字段就派上用场了,因为它可以向用户提供候选项。
这样的功能设计应该提供如下的用户界面,该页面文件名为EditPosts.jsp:
在这里,我们还没有Web编辑器可用,暂时用一个文本区域代替。