跳转到主要内容
丹麦有童话 提交于 6 December 2014

原文链接:https://3cwebservices.com/drupal/creating-basic-drupal-7-module

当你希望在drupal中实现某项功能时,经常会发现最好的解决方案是把一些代码嵌入到自定义模块中。 如果你对drupal或是PHP不是非常有经验,这听起来似乎令人生畏,但事实上,创建一个基本的模块来保存自定义代码是非常简单的。虽然模块都包含很多文件,但是大多数都是基础水平,一个drupal模块仅需要两个文件就可以运行:

YOUR_MODULE_NAME.info

YOUR_MODULE_NAME.module

想要创建自己的基本模块,首先你要创建一个包含文档的文件夹。文件夹的名字一定是你想要创建的模块的名称。当然,为了避免冲突,这个文件夹的名字不要和drupal已经存在的模块名称相同。举个例子,我们起一个名字叫做 my_custom_code的模块,这个模块名字被称为命名空间。

注意:这个模块应该只包含alpha-number,小写字母和下划线。

第1步:

创建一个名称叫my_custom_code的文件夹。

第2步:

在你的新文件夹中创建两个空的文本文件,分别命名名为“my_custom_code.info”和“my_custom_code.module” . info将用来存放要向drupal描述的这个自定义模块的基本信息。 .module文件将存放实际的模块代码(PHP)。

drupal-custom-module-example.jpg

第3步:

在文本编辑器中打开你的my_custom_code.info文件,添加以下信息并保存文件。

name = My Custom Module
description = Module to contain custom code for my website
core = 7.x

‘name’和’description’字段可以包含任何你想要的文本。确保模块具有相关性和描述性。'core'字段是使指示器告诉Drupal模块是什么版本。

第4步:

用Notepad++ 编辑器打开你的my_custom_code.module,然后把下面的PHP开始标签放在文件的开头。

<?php

注意:建议不要在文本里包含PHP结尾标签。建议只包含开始标签,这样可以避免可能存在的一些问题。

现在,你可以将代码放入.module文件并保存。当然,要记得在drupal的模块管理处启用这个模块。

举一个经常被使用的HOOK_form_alter() -的例子 ,每当你想要在模块中用Drupal hook时,你将会用模块的命名空间替换HOOK这个词。

<?php
function my_custom_module_form_alter(&$form, &$form_state, $form_id){
 
     drupal_set_message($form_id);  // print form ID to messages
     drupal_set_message(print_r($form, TRUE));  // print array to messages 
}
?>

注意:有时你可能看不到模块中的代码起作用,你需要清除drupal缓存刷新一下才能使模块的代码生效。 以上是一个最基本类型模块的演示,Drupal模块可能更加复杂。

更深入的信息和指南请参考drupal官网https://www.drupal.org/node/1074360

(翻译如有不妥之处,请在留言处指正,本人会在第一时间修改!)

Drupal 版本