Drupal 模块的安装路径
在 Drupal 中模块可以安装在3个路径下
- 根目录下的 modules, 这个目录下都是 Drupal 的系统模块, 这个目录还是不动为好免得升级的时候麻烦.
- /sites/all/modules, 这个目录下的模块可以被所有站点共享, 公共服务的模块可以放在这里.
- /sites/www.somesite.com/modules, 这个目录下的模块只能被所在的站点使用, 私有服务的模块可以放在这里.
Drupal 模块的组成部分
模块说明文件 - x.info
info 是纯文本文件使用简单的 key = value 数据结构, 类似于 window 下常用的 ini 文件. 文件包含了模块名称,功能简介, Drupal 版本, 模块依赖等的运行信息. 详细结构如下:
- name = 模块名称
- description = 功能简介
- core = 要求的 Drupal 的版本(常用的是 5.x / 6.x)
- package = 模块的分组
- php = 要求的 php 版本
- dependencies[] = 依赖的模块1
- dependencies[] = 依赖的模块2
- ..
- dependencies[] = 依赖的模块n
代码示例 annotate.info
模块实现文件 - ×.module
module 是标准的php文件, 其内容大致上就是实现 Druapl 的各种 hook, hook 是 Drupal 的核心结构也是其可扩展性的基础, 在 Drupal 中 hook 可以说是无处不在无所不能, 大部分模块的功能都是通过实现各种 hook 来完成的. 常见的 hook 有
- menu_hook, 实现这个 hook 一般情况下是为了显示模块的用户界面或是配置界面.
- nodeapi_hook, 在 Drupal 里所有的内容类型都是 node, 所以要对内容做加工处理这个 hook 就必不可少.
代码示例 annotate.module
模块安装文件 - x.install
install 文件中要实现模块安装和卸载所需的2个 hook, hook_install 和 hook_uninstall, 如果有数据库的更改还要实现 hook_schema, 这里值得说明的是 hook_schema 中 Druapl 不支持直接使用 DDL 来操作数据库, 而是使用自定义的 table schema 模型来支持多种数据库.
代码示例 annotate.install