Drupal 7 模块开发 建立模块帮助信息(hook_help)
建立模块请參考 《Drupal 7 模块开发 建立》
假设你要支持中文,文件格式必须保存为 UTF-8。NO BOM
------------------------------
hook_help 为用户提供此模块的帮助信息。我们要用自己模块名替换 hook。在这里我们建立一个 my_first_module_help 在 my_first_module.module文件中
function my_first_module_help($path, $arg) {
}
參数:
$path 是指须要加入的帮助信息的所在路径:
- 为模块自己写一个帮助文件。使用路径:admin/help#module_name module_name就是你的模块名
- 指定路径:admin/people user/register
- 路径能够使用通配符 %,譬如:node/% 或者 node/%/view
$arg() 是相应于arg() 函数返回值的数组,当$path里有通配符(%)时候会能够用到,来满足特殊要求。
譬如。你 $path 用到了 node/%/edit。当你訪问 node/1/edit。$arg[0] == 'node', $arg[1] == '1', $arg[2] == 'edit'。
具体 arg() 解释能够訪问:https://api.drupal.org/api/drupal/includes%21bootstrap.inc/function/arg/7
当你建立 hook_help 的时候。arg[0]到arg[11]已经建立。仅仅是这些数组内的值都是空(empty)
返回值:
返回本地化的字符串到帮助文档。
举例:
我要给My First Module写一个帮助模块。
<? php function my_first_module_help($path, $arg) {
switch ($path) {
case "admin/help#my_first_module":
$output = '<p>' . t("这是My First Module的帮助文档") . '</p>';
return $output;
break;
}
}
注意:结尾不要写 ?>
- Druap核心模块。会自己主动把admin/help#my_first_module转换成 admin/help/my_first_module
- 在$output里用到 t("xxxxxxx"),在使用翻译模块的时候,能够翻译成其它语言,不用改动代码。
检查执行结果:
以管理员身份。登录你的Drupal站点,点 Modules,你会进入 admin/modules 页面。在 Other 分类下找到 My First Module,激活此模块后。你会发现一个多一个 Help 链接
点击 Help 后就会进入我们创建的 帮助页面
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3RldmVuaHpoYW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" />
arg() 測试:
改动代码
function my_first_module_help($path, $arg) {
switch ($path) {
case "admin/help#my_first_module":
$output = '<p>' . t("这是My First Module的帮助文档") . '</p>';
return $output;
break;
case "node/%/edit":
$output = '这里是 ' . $arg[0] . ' ' . $arg[1] . ' ' . $arg[2] . '帮助信息';
return $output;
break;
}
}
检查 arg() 执行结果:
建立一个页面(点击 Add Conent -> Basic page。进入 node/add/page),保存后,再点击编辑(Edit)。这时候你就能看到以下显示
很多其它具体资料:
- 模块的一般帮助(overview help),參考 node_help().
- 特定网页的帮助,单一简单路径。參考 dashboard_help()
- 特定网页的帮助,假设路径里有通配符或者$arg,參考node_help() 和block_help()
Drupal 7 模块开发 建立模块帮助信息(hook_help)的更多相关文章
- drupal 7 模块开发,hook_form
因为不是系统学习,只能把每天自己学习到的东西零碎的记录下来. 一来方便自己记忆,二来可供大家查阅. 后续有精力再去做进一步的整理. 1 开发一个模块分为有下面几个文件 hook.admin.inc h ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-8.用户模块开发之保存微信用户信息
笔记 8.用户模块开发之保存微信用户信息 简介:开发User数据访问层,保存微信用户信息 问题: 微信回调 用户昵称乱码 解决: ...
- springmvc maven idea 多模块开发(三):建立子模块
传统的多模块方式是建立domain.dao.service等,这种方式是按照软件架构进行分割,现在更多的应该是倾向按照功能来解耦,module前期可以配置成jar,后期也可以建立独有的页面,独立的站点 ...
- phpcms模块开发简易教程
简介: 在phpcms中,各个功能是以模块为单位定义的(对应modules目录),如果需要新增功能最好的办法就是开发一个模块,然后复制到phpcms目录下,然后进入后台安装即可. 官方说明: phpc ...
- springboot多模块开发以及整合dubbo\zookeeper进行服务管理
之前研究了springboot单工程的使用,参考git地址:https://github.com/qiao-zhi/springboot-ssm 下面研究springboot多模块开发的过程. 1.模 ...
- 《例说XBee无线模块开发》
<例说XBee无线模块开发> 基本信息 原书名:The Hands-on XBee Lab Manual:Experiments that Teach you XBee Wireless ...
- 转:NGNIX模块开发——nginx的配置系统
From:http://tengine.taobao.org/book/chapter_02.html nginx的配置系统 nginx的配置系统由一个主配置文件和其他一些辅助的配置文件构成.这些配置 ...
- SSM集成Easyui框架及多模块开发的认识
首先我们需要建立好一个emaven项目,并且在pom.xml中导入响应的jar包, <?xml version="1.0" encoding="UTF-8" ...
- Xposed模块开发基本方法记录
由于某些课程实验的要求,需要通过xposed框架对某应用进行hook操作,笔者选用了开源且免费的xposed框架进行实现.虽然网上存在一些利用xposed实现特定功能的文章资源,但大多均将xposed ...
随机推荐
- Objective-C基础笔记(4)Category
OC中提供了一种与众不同的方式--Category,可以动态的为已经存在的类添加新的行为(方法),这样可以保证类的原始设计规模较小,功能增加时再逐步扩展. 在使用Category对类进行扩展时,不需要 ...
- Django项目之Web端电商网站的实战开发(二)
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/8 ...
- js 数组操作大集合
js数组的操作 用 js有非常久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目.用到数组的地方非常多.自以为js高手的自己竟然无从下手 ...
- Node组装启动过程
elasticsearch的启动过程是根据配置和环境组装需要的模块并启动的过程.这一过程就是通过guice注入各个功能模块并启动这些模块,从而得到一个功能完整的node.正如之前所说elasticse ...
- 如何把excel同一个单元格内的文字和数字分别提取出来?
平台:excel 2010 目的:把excel同一个单元格内的文字和数字分别提取出来 操作: 假设数据在A1单元格:如果文字在前,B1=left(A1,lenb(A1)-len(A1))可得文字,C1 ...
- Mine Vison base on VC++ and procilica Gige Vison SDK
This is my first vision base on VC++6.0. I am so happy to record this time i succesfully create it b ...
- ES6的学习之路(基础知识总结)
1. 变量声明 1).let 1)使用let定义的变量不会进行"变量提升" console.log(a);//Uncaught ReferenceError: a is not d ...
- JS学习笔记 - fgm练习 - 输入数字求和 正则replace onkeyup事件
<style> body{font-size: 12px;} .outer{ width: 500px; margin: 0 auto; } span{ color: #999; } in ...
- (转)Oracle EXP-00091解决方法
转自:http://blog.csdn.net/dracotianlong/article/details/8270136 EXP-: 正在导出有问题的统计信息. . . 正在导出表 WF_GENER ...
- 【】minimum
[链接]h在这里写链接 [题意] 给两个数字a,b,每次操作可以把a+1a+1,或把a∗k 问至少多少次操作可以使得a=b. 1<=a,b<=10^18,0 <= k <= 1 ...