2 info文件

 作者:老葛,北京亚艾元软件有限责任公司,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

 

    让我们来看一下,这些内容的含义:第一条指令的意思是说,模块的名字为“区块更多链接”;第二条指令为我们声明了这个模块的描述,告诉用户这个模块是用来做什么的,namedescription的值会显示在模块列表页面;第三条指令,告诉Drupal这个模块所适用的Drupal主版本,这里为7.xDrupal主版本之间是不兼容的;第四条指令,表示这个模块依赖于block模块,如果block模块没有启用,那么我们的这个模块也就无法启用;第五条指令,用于告诉Drupal这个模块的配置页面链接,同样显示在模块列表页面。

 

1.png 

                 图 模块启用后在模块列表页面上显示的内容

 

    如果我们需要在info文件添加注释,那么可以使用“;”,语法如下:

;files[] = morelink.module

;files[] = morelink.admin.inc

;files[] = morelink.install

 

    注意我们在上面的注释中,使用了files[]指令,它用来表示这个模块都包含哪些文件。在Drupal7中,实现了缓加载机制,用来提升Drupal的性能。最初设计的目标是,Drupal可以缓加载所有的PHP函数、类、接口。但是在Drupal7正式版发布时,只实现了类、接口的缓加载。所以files[]指令的具体含义,就是声明模块中有哪些文件里面包含php类、接口的代码。由于我们这个模块中,没有使用到PHP面向对象技术,也就没有包含任何PHP类、接口。所以我们完全可以把与这个指令相关的代码注释掉。

 

    除此之外,常用的还有packagephp指令。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开发者,时常应该记着把infomoduleincphp文件的文本格式设置为UTF-8,这样可以避免很多不必要的编码错误。

 

    现在我们创建好了info文件,让我们为module文件中添加内容。


Drupal版本: