跳转到主要内容
rli 提交于 1 March 2012

原文链接:http://drupal.org/node/1074362

在本教程中,我们将会建立一个模块,这个模块将列出最近一周内所有新建立的内容节点,比如日志或者论坛的帖子。本章将讲述如何建立最初的模块文件和目录。

开始之前

如果您需要用PHP来查出您站点上的错误,请访问此链接。 它将告诉您如何更改drupal的设置,使drupal显示错误信息。

为您的模块命名

建立模块的第一步是为它取一个不太长的名字。这个名字将被用在所有的模块文件名和方法名中。所以这个名字必须以字母开头并只能有小写字母和下划线。比如,我们会用"current_posts"作为一个模块名称。注意: 一定要确保根据以上规则来取名,因为它将被用于模块名和方法名的前缀。当您运行drupal“钩子“时(请参看后面的章节),drupal将只能识别拥有与您模块文件名称相同前缀的钩子。

请注意不要使用与您站点所有主题相同的名称,这样会使drupal混淆。

创建一个模块目录和模块文件

假如我们决定用"current_posts“的模块名,我们将会在drupal的根目录的以下路径(sites/all/modules/current_posts)创建一个目录。 或者如果您要把自己的自定义模块与其他模块区分开,您也可以选择这个路径(sites/all/modules/custom/current_posts)。然后在sites/all/modules/currents_posts目录创建一个名为current_posts.module的文件。注意 drupal并不识别扩展名为.php的文件。如果您为模块添加了php的扩展名,那将不会被识别。drupal只识别扩展名为.module的php文件。

在drupal6中,sites/all/modules/是存放自定义模块的理想目录(sites/all/themes/是存放自定义主题的理想目录),因为这个目录存放这所有只与您的站点相关的模块和主题,在您以后升级您的核心模块时,这些自定义模块和主题不会被改写。或者,如果您有多个子站点共享核心模块,而这个自定义模块只在其中一个站点工作,那么您可以使用这个路径来存放: sites/您的子站点/modules

模块文件的开头起始于php的起始标签“<?php" . 不要把cvs版本控制系统的标签放到模块文件中,drupal应用git的使用规范来实现版本控制。如果coder模块显示错误信息,说明此模块还没有被升级,并不符合drupal的git规范。

我们的模块还不能被执行,它还没有被激活。稍后我们将激活这个模块。

编码标准

根据drupal编码标准, 我们在模块中省略"?>"。否则我们可能会遇到服务器实时运行错误。(注意,在本教程中,我们的示例代码中包括了“?>", 这只是为了使代码显示的更好。请在实际应用中忽略"?>")

所有以{模块名}_{方法名}格式命名的方法,都是钩子,都可以被drupal直接调用。其中{方法名}是预定义的方法名后缀。drupal将会调用这些方法来处理数据。所以取一个简单明了的模块名是十分重要的,drupal会知道去哪查找数据。

下一步,我们将踏入钩子的领域。

 

您可以参看一下相关链接: