Drupal是个扩展性很好的CMS,Drupal有很丰富的第三方模块,一些功能只要通过一个小模块就可以很轻松的解决。
不过有些时候可能要实现一些特殊的功能,那么你就需要自己编写模块了。其实自己写一个模块也非常简单。
Drupal模块有下面两个文件就可以了:
module_name.info module_name.module
module_name.info 包含一些简单的模块信息,比如模块名,模块依赖于哪些其它模块,适用于那个Drupal版本扥等。
module_name.module 则是实现模块的功能的主要文件。
最简单的Drupal模块信息文件:
; $Id$ name = pythonclub description = pythonclub.org test module package = Pythonclub.Org Package core = 6.x version = "6.x-1.1"
这里是你一显身手的地方,这里你可以重写各种drupal hook,如果你想做个filter,那你只要添加函数 module_name_filter();如果你想加一个block,那你添加函数module_name_block() 就可以了。
一般在这里写你自己的hook函数,Drupal会通过Hook方式来调用你的函数。下面就以实现一个Block为例子,实现一个现实固定内容的模块。
<?php // $Id$ /** * @file * one line module description * * detail module description * can be multi line. */ function pythonclub_block($op = 'list', $delta = 0, $edit = array()) { if ($op == 'list') { $blocks[0] = array('info' => 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 <a href=\"http://pythonclub.org/\"> PythonClub.org</a>"; } # vim: set expandtab tabstop=2 shiftwidth=2 autoindent smartindent ft=php : ?>