IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Open source  >

研究 Drupal V6,第 2 部分: 管理 Drupal V6

构建、定制和保护站点

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

英文原文

英文原文


级别: 初级

Martin Streicher, 主编, Linux Magazine

2009 年 10 月 12 日

在 10 年之前,拥有一个 Web 站点算得上一件稀奇的事情。而今天,Web 站点不仅是不可或缺的门面,而且是任何公司的重要组成部分。了解如何使用 Drupal 的模块构建、定制和保护站点。

并不是所有公司都能够用得起复杂的商业管理软件或投资开发定制的软件。事实上,随着许多廉价甚至免费的软件的出现,不必在软件上投入巨资。开源社区提供了几个强大并且免费的包,包括 Joomla!(用 PHP 编写)、Radiant(用 Ruby on Rails 编写)和 Zope(用 Python 编写)。另一个最为流行的包是 Drupal,它也是用 PHP 编写的。

常用缩略词
  • CMS:内容管理系统
  • HTML:超文本标记语言
  • URL:统一资源定位器

Drupal 很有名,因为它易于安装(在任意平台上)、易于入门,并且能够使用大量预构建模块和定制代码进行扩展。Drupal 站点能够实现中等目标,并且可以扩展它以包含先进的特性。

来自 “研究 Drupal V6” 系列的 研究 Drupal V6:第 1 部分:简介 中的 图 1 反映了 Drupal 的原则。内容(Drupal 中的节点)仅包含一组简洁的核心字段。可以通过模块添加其他元数据或关于节点的数据。例如,模块可以使用评论或评级加强现有的节点,或者通过扩展节点以全新的形式管理和显示内容,比如视频录制。


图 1. Drupal 的内容模型:简单的节点和大量扩展
Drupal 的内容模型

研究 Drupal V6:第 1 部分:简介 描述了 Drupal V6 的核心特性,以及如何在类 UNIX® 操作系统上安装该软件。本系列的第 2 部分展示如何添加和管理模块,以及 Drupal V6(该软件的最新版本)中的其他核心的特性。请查看第 1 部分了解如何安装 Drupal。本系列的例子基于 Mac OS X,但在 UNIX® 上的安装过程是类似的。要在 Windows® 上安装 Drupal,请访问 Drupal 的 Web 站点(见 参考资料)。

安装 Drupal 模块

Drupal Web 站点提供大量模块。您可以根据名称或类别查找列表,比如 Mail、Search 和 Administration(见 参考资料)。因为本文主要关注 Administration,所以我们安装一个模块来简化繁杂的过程。Administration 菜单模块将所有管理函数集中列出在一个菜单上,从而帮助您轻松找到需要执行的任务。

假设您遵循 研究 Drupal V6:第 1 部分:简介 中的说明,您的 Drupal 站点可以在类似于 http://localhost/~name/drupal-6.12 的 URL 中找到,其中 name 是您在 Mac 系统的登录名。将您的浏览器指向 Drupal URL 并作为站点的管理员登录。在进入的页面上,单击 Administer 展开它的选项列表,然后单击 Site Building > Modules。这就是启用和禁用模块的地方。在添加模块之后,您必须先访问该页面,然后才能删除模块。

要安装新的模块,从它的项目页面下载模块代码,然后解压缩代码并将模块复制到 Drupal 的模块的子目录中。每个模块都包含在自己独有的文件夹中,因此安装非常简单。

下载模块的最新稳定版本或 “推荐的” 与 Drupal V6 兼容的版本。为 Drupal V5 编写的模块不能用于 Drupal V6。这个模块的最新稳定版本是 V6x-1.5,标注的日期为 2009 年 7 月 2 日。通常以 “tarball” 格式(用 Gzip 压缩的 TAR 文件)分发模块。使用 tar z 打开该模块。

$ cd /tmp
$ wget http://ftp.drupal.org/files/projects/admin_menu-6.x-1.5.tar.gz
$ tar xzf admin_menu-6.x-1.5.tar.gz
$ ls -F
admin_menu/
$ cp -pr admin_menu ~name/Sites/drupal-6.12/modules
$ ls -F ~name/Sites/drupal-6.12/modules
README.txt			filter/				search/
admin_menu/			forum/				statistics/
admin_menu-6.x-1.5.tar.gz	help/				syslog/
aggregator/			locale/				system/
block/				menu/				taxonomy/
blog/				node/				throttle/
blogapi/			openid/				tracker/
book/				path/				translation/
color/				php/				trigger/
comment/			ping/				update/
contact/			poll/				upload/
dblog/				profile/			user/

准备好文件夹之后,返回到浏览器并刷新 administration 页面。在片刻之后,您将在页面顶部新出现的 Administration 部分看到新的模块,如图 2 所示。选择复选框启用该模块,然后在页面的底部单击 Save Configuration。在刷新之后,将在页面的顶部出现一个特殊的黑色菜单栏。


图 2. 安装之后添加的新的 Administration 菜单模块
安装之后添加的新的 Administration 菜单模块

从 Drupal 站点删除模块就像添加模块一样简单:仅需禁用模块并保存配置。在禁用模块之后,访问 Site Building > Modules 页面并单击 Uninstall 选项卡。选择与该模块相关的复选框,单击 Uninstall,然后确认执行该操作。卸载过程将删除模块积累的所有数据。不过,不会从文件系统上的模块子目录中删除代码;您必须手动执行这个步骤。除非您删除了代码,否则模块都会保留在模块管理页面上,并且可以重新启用该模块。卸载可以看作是 “重置”,除非您在卸载之后马上删除代码。

我们暂时不卸载模块,并让它保持启用。这能提供便利,有助于学习。模块仅对您自己、站点管理员和您授予访问权限的用户可见。





回页首


角色和权限

谈到访问,并不是所有 Drupal 用户都是平等的。作为站点管理员,您可以按照自己的方式更改站点。不过,其他用户就要受到更多的访问限制。我们总结的经验是,仅在必要时授予适当的特权。例如,在一个在线新闻公司中,特约撰稿人 仅能撰写文章、保存和编辑他撰写的文章。相反,编辑能够编辑、保存和发表文章,但不能删除文章。不管在哪个行业中,一般都会存在和执行等级结构。

在 Drupal 中,角色 代表某人需要执行的职责,比如作家、编辑或用户。权限 是指执行任务的权利,比如下载机密文件或发布评级。每个 Drupal 模块都可以定义组件的权限,管理员可以根据情况修改权限。您可以针对所有模块向角色授予特权或取消特权。

让我们看一个例子。返回到模块管理页面,找到并启用 Upload 模块。为了证实适当的操作,保持作为管理员登录,然后访问现有的帖子或创建一个新帖子。看看 Save 按钮旁边是否出现一个标签为 “File attachments” 的输入部分。如果出现,那么该模块就是正常的。

允许任何人上传任意大小的文件是一个糟糕的决定。要将该任务限制在一部分人员手中,您必须建立角色并给它授予权限,然后向每个用户分配一个或多个角色。使用您新创建的管理员菜单栏,选择 User Management > Roles。这时将出现类似于图 3 的页面。


图 3. 角色是一组用户或工作流中的特定工作
角色是一组用户或工作流中的特定工作

根据页面上的消息,Drupal 有两个嵌入角色 —— 匿名用户通过身份验证的用户 —— 这两个角色不能删除。前一个角色可以是任何随意浏览站点的用户,但系统不能识别它们。后一个角色是提供正确凭证并且登录 了的用户。尽管不能删除这两个角色,但您可以给它们分配一些或全部权限,或不分配权限。您创建的其他角色不能区分匿名用户和通过身份验证的用户,因此有必要审计这些关键角色的权限。

要创建新的角色,在空白字段中输入它的名称,然后单击 Add role。例如,为雇员添加 Staff 角色。要给新的角色分配权限,请单击 edit permissions。您看到的下一个页面(类似于 图 4)是每个模块的权限列表。在当前列表的顶部是查看管理员菜单的权限,它属于 Administration 菜单模块。向下滚动:核心的节点模块提供一个很长的权限列表,您可以在编辑工作流时选择正确的权限。在列表的底部,您可以找到 Upload 模块的两个权限。在页面的最右边,出现一列复选框。通过勾选复选框为指定的角色授予权限。


图 4. 每个 Drupal 模块都能定义权限
每个 Drupal 模块都能定义权限

将 Upload 的两个权限授予 Staff,然后就可以上传文件并查看文件。

到目前为止,还没有用户被分配 Staff 角色。要检查权限是否有效,创建一个新用户,然后将其标记为 Staff。单击 User Management > Users > Add User,然后完成出现的表单,如图 5 所示。要将用户添加到 Staff,在 Roles 下选择 Staff 复选框,然后单击 Create new account


图 5. 在创建新用户时分配角色
在创建新用户时分配角色

您也可以使用这个表单修改现有用户的角色。单击 User Management > Users > List 列出所有用户,然后单击 Operations 列下的 Edit 访问该页面。

要检查新的用户能否访问 Upload 特性,退出登录变成匿名用户,然后浏览带有附件的内容。匿名用户应该不能看到附件。现在,作为新的用户登录,看看能否添加附件,并完全阅读现有的附件。

设计、后续实现和角色和权限的审计都应该贴近站点的意图和需求。





回页首


其他管理任务

除了模块、角色、权限和用户之外,Drupal 管理员还可以进一步定制站点。以下是一些选项:

  • 主题主题 定义站点的外观。就像模块一样,有许多主题供您选择。安装新的主题类似于安装新的模块:下载主题代码,将其解压缩到自己的文件夹中,并将该文件夹复制到 Drupal 的 sites/all/themes 子目录。完成之后,访问 Site Building > Themes 页面并选择新的主题作为默认主题。还有个重要步骤:除了美观之外,主题还定义一个或多个区域 或 Web 页面区域,您可以在上面放置导航和其他称为 的自含特性。如果您更改主题,一定要根据可用区域重新排列块。如果在刷新页面之后发现一块空白,则需要找到错位的块并纠正其位置。
  • 是可以嵌入到更大页面中的自含 applet。如前所述,Drupal 页面可以定义一个或多个区域,并且每个区域可以包含一个或多个块,或者不包含任何块。块在区域总是有序排列的,您可以添加和删除块,它调整它们的顺序。像模块和主题一样,您可以添加块。在 Site Building 下有一个 Blocks 页面,您可以在这里执行所有相关的管理。有趣的是,Blocks 管理页面带有一个漂亮的拖放界面;要放置块时,只需将其选中并拖放到显示的任意区域中。以前版本的 Drupal 的排序和放置界面比较笨拙,而这个新选项更加高效。
  • 更新 — 因为 Drupal 站点可能很快就包含大量模块和主题,因此更新这些部分是非常困难并且耗时的事情。不过,更新对排除安全漏洞和错误以及提高用户体验非常关键。Drupal 的核心 Update Notifications 特性会自动通知您发行了新的版本。要查找可用的更新,请单击 Reports > Available Updates。总体而言,更新都需要一些手动干预,因此阅读新的发行版附带的发行说明或 UPGRADE.txt 须知。有一些更新更改代码,而另一些还会更改数据库表。我们强烈建议您在每次升级之前备份整个站点,并根据说明进行操作。Drupal 提供一个特别的 “离线模式”,以在升级期间保持站点的静态功能。

作为站点管理员,您还需要处理输入格式和过滤器。输入格式 仅是一个句柄。真正重要的工作由格式的过滤器 执行,过滤器将去掉不符合需求的标记字段。输入格式还可以对它的过滤器进行排序。例如,有一些过滤器希望从用户帖子中去掉可疑的 HTML 标记,比如 <form><script>

您还可以查看操作和触发器。触发器 将操作绑定到 CMS 中的事件。例如:在发布新的评论时发送一封电子邮件消息。

尽管 Google 和 Yahoo! 等站点很可能找到您的站点并将您的页面添加到它们的索引中,但您应该考虑启用 Search 模块。您可以调优它的索引模式以适合您的内容。转到 Administer > Site Configuration > Search Settings 配置服务。但是,搜索不会自动进行索引:有时您必须配置系统的 cron 守护进程,以启动索引。





回页首


结束语

配置 Drupal 是一件非常轻松的事情,您可以从本文展示的页面定制许多特性。另外,您还可以通过少量代码定制几乎所有特性。在本系列的第 3 部分(也是最后一部分)中,将探索如何通过定制代码改进 Drupal。



参考资料

学习
  • 访问 Drupal.org 查找文档、插件模块和其他资源,并在 Drupal 社区中与其他用户交流。

  • Installing Drupal on Windows:Drupal 站点提供在 Windows 上安装 Drupal 和 MySQL 的说明。

  • 查看 Theme Garden,它提供一些 Drupal 主题。另外,Drupal Modules 是一个可搜索的数据库,您可以从中查找可用的 Drupal 模块。

  • 要收听针对软件开发人员的有趣访谈和讨论,请查看 developerWorks podcasts

  • 随时关注 developerWorks 技术活动网络广播

  • 查看最近将在全球各地举办的面向 IBM 开源开发人员的会议、展览、网络广播和其他 活动

  • 访问 developerWorks Open source 专区,获得丰富的 how-to 信息、工具和项目更新,帮助您用开放源码技术进行开发,并与 IBM 产品结合使用。

  • 查看免费的 developerWorks 演示中心,观看并了解 IBM 及开源技术和产品功能。


获得产品和技术

讨论


关于作者

Martin Streicher

Martin Streicher 是 Linux Magazine 的主编。Martin 获得 Purdue University 的计算机科学硕士学位,从 1986 年起他一直从事 UNIX 类系统的编程工作,使用的编程语言包括 Pascal、C、Perl、Java 和 Ruby(最近)。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款