====== Drupal 编写自己的模块 ======
Drupal是个扩展性很好的CMS,Drupal有很丰富的第三方模块,一些功能只要通过一个小模块就可以很轻松的解决。
不过有些时候可能要实现一些特殊的功能,那么你就需要自己编写模块了。其实自己写一个模块也非常简单。
===== Drupal 模块所必需的文件 =====
Drupal模块有下面两个文件就可以了:
module_name.info
module_name.module
module_name.info 包含一些简单的模块信息,比如模块名,模块依赖于哪些其它模块,适用于那个Drupal版本扥等。
module_name.module 则是实现模块的功能的主要文件。
===== module_name.info 文件=====
**最简单的Drupal模块信息文件:**
; $Id$
name = pythonclub
description = pythonclub.org test module
package = Pythonclub.Org Package
core = 6.x
version = "6.x-1.1"
* name 表示模块名字
* description 表示模块的说明
* package 表示属于哪个Package,就是在模块列表中属于哪一类
* core 这个最重要,表示这个模块适用于那个Drupal版本
* version 此模块的版本信息
===== module_name.module 模块主体文件 =====
这里是你一显身手的地方,这里你可以重写各种drupal hook,如果你想做个filter,那你只要添加函数 module_name_filter();如果你想加一个block,那你添加函数module_name_block() 就可以了。
一般在这里写你自己的hook函数,Drupal会通过Hook方式来调用你的函数。下面就以实现一个Block为例子,实现一个现实固定内容的模块。
t('pythonclub.org test block'),
'weight' => 0, 'status' => 1, 'region' => 'left');
return $blocks;
} else if ($op == 'view') {
$block = array('subject' => t('pythonclub.org test block'),
'content' => gen_block_content());
return $block;
}
}
function gen_block_content() {
return "This is test block content by PythonClub.org";
}
# vim: set expandtab tabstop=2 shiftwidth=2 autoindent smartindent ft=php :
?>
===== 模块截图 =====
{{:drupal:module:drupal-module.jpg|}}
{{:drupal:module:drupal-module-2.jpg|}}
===== 示例模块下载 =====
{{:drupal:module:pythonclub.zip|}}