跳转到主要内容
东方龙马 提交于 15 November 2010

Joomla是Drupal主要的竞争对手,也是目前使用非常广泛的开源内容管理系统之一。它具有完善的内容管理功能,每个文章内容包括多种属性(如分类、所属区、发布状态、路径别名等),同时还有“回收站”功能——一个文章被删除后,先移至回收站,只有从回收站删除后才彻底删除。这样的机制对保护内容很有帮助。Joomla支持多主题模板,同时通过组件(Component)和插件(Plug-in)来扩展系统功能。Joomla的宣传口号是:让不会用PHP的管理员可以轻松的构建网站。

Joomla有统一的管理后台,可以执行站点管理的各种操作。如图1-4所示为Joomla的后台管理界面,首页面包括“发布新文章”、“首页管理”、“语言管理”等管理链接。

文章发布页面如图1-5所示,每个文章具有路径别名(Alias)和分类等属性。同时Joomla集成了Tiny MCE网页文本编辑器,便于管理员对文章内容进行样式修改。

图1-4 Joomla后台管理页面

图1-5 发布文章页面

Joomla官方的演示网站如图1-6所示,当前主题为Joomla的蜜蜂(Bee)主题。

Joomla的用户只能通过后台管理系统创建,但并不支持在线注册的功能。而Drupal原生提供了用户注册机制,只要设置为开放注册,则互联网用户便可以进行在线注册。它的核心模块也提供了博客、评论以及论坛等功能,并对内容创建也属于“协作式”平台,每节点也可以支持多版本,所以Drupal在Web 2.0方面更为擅长。

Joomla提供了内置的用户组,包括“作者(Author)”、“编辑(Editor)”、“发布者(Publisher)”和管理员等,但用户组是固定的,不能添加或删除用户组。而在Drupal中,尽管只提供了两个默认的系统角色:匿名用户(Anonymous)和注册用户(Authenticated),但管理员可以添加新的用户角色。同时,Drupal内置了权限机制,每个权限表示进行一项操作所需的权限,只有具有这个权限的用户才可以执行此操作。并且权限可以和用户角色相关联,这样凡是属于此角色的用户就拥有了相应的权限。

图1-6 Joomla的Bee主题

从系统的二次开发角度看,Joomla的开发风格和Java相近,模块需要继承JComponent类,而插件需要继承JPlugin类。Drupal则使用注册文件声明模块,并通过一系列的钩子函数实现对Drupal内核的修改和功能扩展。所以Drupal的开发属于“半面向对象、半面向过程”,在对核心对象(如用户、节点、类等)进行了类的封装外,对类的操作和常用的处理均通过函数直接完成,这在很大程度上保持了PHP的优势,使开发者更容易上手。

和Drupal相比,Joomla是一个比较专业的“内容管理系统”,它比较适合单纯以内容为主的网站。而Drupal则更具有Web 2.0的网站功能和风格,是一种多人协作式的内容管理与展示平台,且更符合“框架”的特性;其用户权限模型的灵活性很大,定制起来非常容易。