[2009/04/16]发布《Drupal项目实战-公司订餐系统(四)》本博客内容均为原创(Original),如有雷同,纯属巧合。转载请注明出处。同时欢迎学术探讨与批评。

2009年2月5日星期四

Drupal论坛简介

Drupal自带有“论坛”的功能,相信国内的广大Drupal使用者对Drupal自带的这个论坛功能也很感兴趣。但是,质疑声也是此起彼伏。很多开发者认为Drupal的论坛很不适合国人使用,因为其功能较为简单,且操作方式等也不太方便。那么Drupal论坛的特点是什么?究竟在哪种项目中适合使用Drupal的论坛呢?本文将引领大家简要了解Drupal的Froum,分析其适用场景及使用方法,并给出我的看法。

引言

Drupal的Forum模块是核心可选模块,开启Taxnomy和Comment模块后即可以使用。Drupal官方认为这个Forum像phpBB那样的message board。核心功能就是:

  • 用户就某一主题进行讨论
  • 把用户的讨论进行归档收集

这是Drupal论坛的设计宗旨,知道这两点可以便于设计者决策在实际项目中是否采用Drupal论坛。通常的情况下,客户们只说:我要一个论坛。但他究竟要的是什么样的论坛?主要的功能是哪些?这都需要详细的确定才行。比如下面两个客户对论坛的需求是截然不同的: 

客户甲:我需要一个简单的供用户交流的地方即可。论坛可以分为几个部分:产品讨论、使用交流和客户服务。嗯....只需要简单的发帖回帖应该就可以了。
客户乙:我们要打造全宇宙最酷最棒的论坛。论坛功能要炫!论坛版块要又多又全,用户互动性和可玩性要强,什么金币啊、等级啊、荣誉啊,一个都不能少!还可以互相买卖帖子,可以发不到一定等级就不能浏览那种帖子。积分功能要全,根据积分等级还要分什么虾米、大侠等,总之就是:炫!另外,由于用户至少同时在线100万,每个子论坛至少要支持10个以上的版主......

的确,第二个客户的需求有些夸张,存在的可能性也微乎其微。不过从这两个客户的需求上可以看出,虽然他们要求的都是一个“论坛”,但预期还是很不同的。前者需要的是论坛的基本功能,而后者则需要一个非常完整而复杂的论坛”系统“。那么结合Drupal Forum的特点,我认为,Drupal Forum比较适合前一类客户的需求。也就是说,Drupal Forum比较适合作为一个网站的支持社区,而不是作为主体功能。 

当然,我并不是说Drupal的论坛过简,由于Drupal强大的扩展性,我们可以自定义模块来进行论坛功能的增强。不过要在动手之前看看成本是否可以接受,还要考虑性能方面等问题。这也主要通过测试来考量。

Drupal论坛的组织结构

Drupal论坛由Forum和Container组成。前者就是我们熟悉的论坛单元,比如论坛分为“国内讨论”、“国外讨论”等,这些都可以创建为Forum。Forum还可以无限的嵌套,也就是有子论坛。而Container只用于对Forum进行分组和归类,用户不能在Container内发表主题。Container也是可以嵌套的。Drupal以这种方式组织论坛很容易让国人费解,其实只要一种Forum就可以了。 下图为Container和Forum的层次结构图。

我推荐的方式是这样的:最低层的论坛使用Forum,而其上的各种分类都使用Container。这样可以让用户只在最低层的论坛里发主题,就避免了在某个大类的论坛里发主题,好处就是在进行论坛主题归检索和显示时,大大提升检索效率。

为什么使用Drupal论坛

我认为使用Drupal论坛的原因很简单:它可以与其它网站的用户服务紧密的联系在一起,并可以利用Drupal的模块架构来进行功能扩展。Drupal是一个整站的框架,其中可以包含各种内容发布的功能,如博客、相册和论坛。那们,使用Drupal自带的论坛,可以有机的将这些功能整合在一起,给用户提供完整一致的使用体验。另外,对于计算用户贡献(如积分等制度)也是非常方便的。如果单独使用专门的论坛,如phpBB和Discuz等,如果很好的将论坛与Drupal站点相结合,就成为了一个不小的问题。而且由于目前还没有一个统一的标准来实现异构程序之前用户信息的同步,因此,使用Drupal构建的站点要使用论坛的话,最好的方式还是使用Drupal自带的Forum功能。

我曾经尝试过使用Discuz作论坛,来和Drupal集成,不过效果很不好。可能一方面因为我没有掌握Discuz的UCenter,另一方面我觉得UCenter还需要完善其API,使其更好用,而且文档和示例应该更全面一些。

常用的扩展模块

Drupal还是有很多关于Forum的模块的,比如最著名的当属Advanced Forum(简称AF)了。它的主要功能是使Drupal Froum看起来更像Forum,而不是简单的将节点和评论组织起来。比如它会将帖子的样式更改为:左侧是发表者头像和是否在线等信息,右侧为主题帖的内容。不过它的安装稍显复杂,而且目前针对D6还没有稳定的版本。

除此之外,还有一些模块可以起到辅助作用,如User Point模块可以使论坛具有积分系统,User Stat模块可以获取用户的一些注册日期、发帖数量等,用于计算用户等级并定制显示等。

示例

用事实说话,才会使人信服。我看过一些Drupal Forum搭的论坛,感觉不错的确实有几个,比如The Webmaster Forums(http://www.webmaster-forums.net),下面是一些截图,可供参考。
  
总结

简单的说,喜欢欧美风格的朋友们应该比较适合使用Drupal Forum。不过, 好不好用,还要用户说的算。以上只是我的个人观点,欢迎朋友们和我讨论。

5 条评论:

  1. 在Drupal中,整个论坛是一个Vocabulory。论坛下的container和forum就是其terms。

    回复删除
  2. Advanced Forum模块在Drupal 6中,无须要更改template.php,以及移动其style文件夹,比Drupal 5中使用更为方便。

    回复删除
  3. drupal的论坛相对于鸡肋

    回复删除
  4. 刚开始我也认为Drupal的Forum有点鸡肋,后来发现Drupal Forum应该算排骨:很有嚼头。随着研究的深入,我发现Drupal Forum的可定制性基本上目前处于领先地位,因此比较适合喜欢PHP的朋友。

    回复删除
  5. 很同意。如果和其他论坛整合要大费周折,使用drupal自带的是正解。另外还要看维护成本。

    楼主的截图看的很熟悉,好象是那个VBB 转 Drupal的模块作者的站。

    回复删除