原文链接: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)。
第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
(翻译如有不妥之处,请在留言处指正,本人会在第一时间修改!)
感谢楼主分享。新手正在学习模块的开发
感谢楼主分享。新手正在学习模块的开发