预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共28页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

在本教程中,我们将会建立一个模块,这个模块将列出最近一周内所有新建立的内容节点,比如日志或者论坛的帖子。本章将讲述如何建立最初的模块文件和目录。开始之前如果您需要用PHP来查出您站点上的错误,请访问此HYPERLINK"http://drupal.org/node/1056468"链接。它将告诉您如何更改HYPERLINK"http://drupalchina.cn"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文件。在HYPERLINK"http://drupalchina.cn"Drupal6中,sites/all/modules/是存放自定义模块的理想目录(sites/all/themes/是存放自定义主题的理想目录),因为这个目录存放这所有只与您的站点相关的模块和主题,在您以后升级您的核心模块时,这些自定义模块和主题不会被改写。或者,如果您有多个子站点共享核心模块,而这个自定义模块只在其中一个站点工作,那么您可以使用这个路径来存放:sites/您的子站点/modules模块文件的开头起始于php的HYPERLINK"http://us3.php.net/manual/en/language.basic-syntax.phpmode.php"起始标签“<?php".不要把cvs版本控制系统的标签放到模块文件中,drupal应用git的使用规范来实现版本控制。如果coder模块显示错误信息,说明此模块还没有被升级,并不符合drupal的git规范。我们的模块还不能被执行,它还没有被激活。稍后我们将激活这个模块。编码标准根据drupalHYPERLINK"http://drupal.org/node/318"编码标准,我们在模块中省略"?>"。否则我们可能会遇到服务器实时运行错误。(注意,在本教程中,我们的示例代码中包括了“?>",这只是为了使代码显示的更好。请在实际应用中忽略"?>")所有以{模块名}_{方法名}格式命名的方法,都是钩子,都可以被drupal直接调用。其中{方法名}是预定义的方法名后缀。drupal将会调用这些方法来处理数据。所以取一个简单明了的模块名是十分重要的,drupal会知道去哪查找数据。下一步,我们将踏入钩子的领域。所有的HYPERLINK"http://drupalchina.cn"Drupal模块都有一个"模块名.info"文件,用来储存该模块的元信息。(其实可以理解成模块的描述文件)该文件的一般格式为:name=ModuleNamedescription=Adescriptionofwhatyourmoduledoes.core=7.x在本示例中,我们用我们自己的模块名"current_posts"来代替上面例子中的"ModuleName".如果没有.info文件,drupal不会将我们的模块添加进模块列表。下面就是修改后的.info文件内容:name=CurrentPostsdescription=Ablockmodulethatlistslinkstorecentposts.core=7.x我们把以上内容添加到一个名为current_posts.info的文件中,并把该文件保存在模块的根目录sites/all/modules/current_posts下。注意:如果您复制以上代码并粘贴到.info文件,留意description的内容不