作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
info文件的作用是,为Drupal模块提供元数据信息,比如这个模块的用户可读名字、模块的描述、这个模块所依赖的模块。我们为block_morelink.info文件添加以下内容:
name = 区块更多链接
description = 为所有的区块提供了一个更多链接
core = 7.x
dependencies[] = block
configure = admin/config/block/morelink
根据上面的内容,我们可以看出来,info文件是一个纯文本文件,它与标准的ini配置文件非常类似。它的指令语法为:
name = value
就是一组由等号分割的名值对。如果一个名字可以有多个值的话,那么可以使用类似数组的形式:
name[] = value
让我们来看一下,这些内容的含义:第一条指令的意思是说,模块的名字为“区块更多链接”;第二条指令为我们声明了这个模块的描述,告诉用户这个模块是用来做什么的,name和description的值会显示在模块列表页面;第三条指令,告诉Drupal这个模块所适用的Drupal主版本,这里为7.x,Drupal主版本之间是不兼容的;第四条指令,表示这个模块依赖于block模块,如果block模块没有启用,那么我们的这个模块也就无法启用;第五条指令,用于告诉Drupal这个模块的配置页面链接,同样显示在模块列表页面。
图 模块启用后在模块列表页面上显示的内容
如果我们需要在info文件添加注释,那么可以使用“;”,语法如下:
;files[] = morelink.module
;files[] = morelink.admin.inc
;files[] = morelink.install
注意我们在上面的注释中,使用了files[]指令,它用来表示这个模块都包含哪些文件。在Drupal7中,实现了缓加载机制,用来提升Drupal的性能。最初设计的目标是,Drupal可以缓加载所有的PHP函数、类、接口。但是在Drupal7正式版发布时,只实现了类、接口的缓加载。所以files[]指令的具体含义,就是声明模块中有哪些文件里面包含php类、接口的代码。由于我们这个模块中,没有使用到PHP面向对象技术,也就没有包含任何PHP类、接口。所以我们完全可以把与这个指令相关的代码注释掉。
除此之外,常用的还有package、php指令。package用来表示,这个模块放在哪个包下面,反映在模块列表页面,就是放在哪个fieldset下面。Drupal核心模块,都放在Core下面。如果没有声明package,那么系统会自动将模块放在Other包下面。php表示所需PHP的最小版本,Drupal所需PHP的最小版本是PHP5.2。如果你的模块代码中,用到了PHP6.0中的最新特性,此时你可以添加以下代码:
php = 6.0
对于从drupal.org上下载的第3方模块,你通常还会看到以下信息:
; Information added by drupal.org packaging script on 2011-05-06
version = "7.x-1.0-alpha1"
core = "7.x"
project = "field_validation"
datestamp = "1304650916"
这些信息是由drupal.org上的打包脚本添加的,用来声明模块的版本、项目名称、Drupal核心、此版本发布时的时间戳。注意这里使用了双引号。双引号,通常可用可不用。
最后需要注意的是,我们这个文件中包含中文,所以我们必须把info文件的文本格式设置为UTF-8,否则在Drupal中,就无法正确的显示我们的文本。对于我们中文圈内的Drupal开发者,时常应该记着把info、module、inc、php文件的文本格式设置为UTF-8,这样可以避免很多不必要的编码错误。
现在我们创建好了info文件,让我们为module文件中添加内容。