我们要建立一个 My First Module 的模块
给模块命名
- 名字不要太长,以后常常会用到。
- 只能有小写字母和下划线,因为这名字将被用在文件名和方法中
- 不要使用与站点主题(theme)相同的名字,Drupal会混淆
我在这里给模块起名 my_first_module。
建立一个模块目录
因为我用 my_first_module 作为模块名,所以我们要在以下路径创建一个目录
sites/all/modules/my_first_module
创建一个模块文件
在sites/all/modules/my_first_module 路径下创建一个名为 my_first_module.module 的文件
注意:不要以 .php 结尾,Drupal只识别以 .module 结尾的php文件。
文件内容,以“<?php” 开头,省略 “ ?> ” 结尾。否则我们可能会遇到服务器实时运行错误。
所有以 {模块名}_{函数名} ({modulename}_{functionname})命名的函数在Drupal中都称为“钩子(hooks)”。这些{函数名}都是预先定义好的函数后缀。这样命名能让Drupal很容易找到他们在哪里,可以方便的调用这些函数来处理数据。
创建 .info 文件,让Druap识别你的模块
所有的模块必须有一个“模块名.info”的文件,它包含了模块所有的基本信息(meta information)
我在sites/all/modules/my_first_module路径下创建一个名为 my_first_module.info 的文件,内容如下:
name = My First Module
description = 这是我第一个模块
core = 7.x
info 里的每个属性详细说明可以查看:Drupal 7 模块 .info 文件介绍 这篇文章
注意:如果你想显示中文,必须保存文件格式 (UTF-8,NO BOM),否则会出现乱码。参考我用 UltraEditor 编辑,在建立新文件 (New File)后,必须再按 另存为(Save as ...)
好了,基本模块完成,我们查看一下
以管理员身份,登录你的Drupal网站,点 Modules,你会进入 admin/modules 页面。在 Other 下,你会看到你建立的第一个模块:
模块文件包括:
- .info
模块识别文件。
具体内容参考:Drupal 7 模块 .info 文件介绍
- .module
是主模块文件。所有钩子(hook)都能写在这里面
- .install
在第一次激活模块(enabled)的时候,调用 .install 文件。他一般用来建立数据库,插入数据。他没有任何特别符号,只是一个不同扩展名的 PHP文件。
卸载(uninstall)模块,或新版本模块的升级,的时候也会用到。
具体内容参考:Writing .install files (Drupal 7.x)
参考:Drupal 7 模块开发 创建自定义表(table) (hook_schema)
- .inc
.inc常被用来做辅助文件,在必要时才加载inc里的代码。在特定情况下才运行的代码,如果菜单(menu)里回调(callback)才用到代码,可以分开写在单独的.inc文件里。
.inc文件可以不写,都写在.module文件中,但是必须随时清除缓存。而.inc中的更改,就不需要清除缓存。
- .test
.test文件里包含了测试代码,这些代码实际上是在 SimpleTest框架上运行。
参考:Testing (simpletest) Tutorial (Drupal 7)