建立模块请參考 《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)的更多相关文章

  1. drupal 7 模块开发,hook_form

    因为不是系统学习,只能把每天自己学习到的东西零碎的记录下来. 一来方便自己记忆,二来可供大家查阅. 后续有精力再去做进一步的整理. 1 开发一个模块分为有下面几个文件 hook.admin.inc h ...

  2. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-8.用户模块开发之保存微信用户信息

    笔记 8.用户模块开发之保存微信用户信息     简介:开发User数据访问层,保存微信用户信息 问题:             微信回调 用户昵称乱码             解决:        ...

  3. springmvc maven idea 多模块开发(三):建立子模块

    传统的多模块方式是建立domain.dao.service等,这种方式是按照软件架构进行分割,现在更多的应该是倾向按照功能来解耦,module前期可以配置成jar,后期也可以建立独有的页面,独立的站点 ...

  4. phpcms模块开发简易教程

    简介: 在phpcms中,各个功能是以模块为单位定义的(对应modules目录),如果需要新增功能最好的办法就是开发一个模块,然后复制到phpcms目录下,然后进入后台安装即可. 官方说明: phpc ...

  5. springboot多模块开发以及整合dubbo\zookeeper进行服务管理

    之前研究了springboot单工程的使用,参考git地址:https://github.com/qiao-zhi/springboot-ssm 下面研究springboot多模块开发的过程. 1.模 ...

  6. 《例说XBee无线模块开发》

    <例说XBee无线模块开发> 基本信息 原书名:The Hands-on XBee Lab Manual:Experiments that Teach you XBee Wireless ...

  7. 转:NGNIX模块开发——nginx的配置系统

    From:http://tengine.taobao.org/book/chapter_02.html nginx的配置系统 nginx的配置系统由一个主配置文件和其他一些辅助的配置文件构成.这些配置 ...

  8. SSM集成Easyui框架及多模块开发的认识

    首先我们需要建立好一个emaven项目,并且在pom.xml中导入响应的jar包, <?xml version="1.0" encoding="UTF-8" ...

  9. Xposed模块开发基本方法记录

    由于某些课程实验的要求,需要通过xposed框架对某应用进行hook操作,笔者选用了开源且免费的xposed框架进行实现.虽然网上存在一些利用xposed实现特定功能的文章资源,但大多均将xposed ...

随机推荐

  1. windows7下安装Office2010提示需要安装MSXML6.10.1129

    平台:Windows 7 问题:刚刚下载的ghost Win 7,安装过程一切顺利,进入系统后把集成的软件全部卸载,清理完垃圾,安装了VC库,在安装Office2010时提示需要安装MSXML6.10 ...

  2. C#之在treeview中鼠标点击的所选的节点触发事件

    一.背景 如下图所示,我想实现通过鼠标点击treeview的根节点,然后在文本框控件中显示鼠标点击的节点号. 二.程序实现 因为是要通过鼠标点击才发生的事情,所以这属于一个事件,需要触发才行,刚开始不 ...

  3. CISP/CISA 每日一题 20

    CISSP 每日一题(答) What methods can be used to protectmobile devices such as a smartphone? Encryption,GPS ...

  4. 1.2 Use Cases中 Log Aggregation官网剖析(博主推荐)

    不多说,直接上干货! 一切来源于官网 http://kafka.apache.org/documentation/ Log Aggregation 日志聚合 Many people use Kafka ...

  5. String.Empty,NULL和""的区别

    String.Empty,NULL和""的区别 string.Empty就相当于"" 一般用于字符串的初始化 比如: string a; Console.Wri ...

  6. uva 1463 - Largest Empty Circle on a Segment(二分+三分+几何)

    题目链接:uva 1463 - Largest Empty Circle on a Segment 二分半径,对于每一个半径,用三分求出线段到线段的最短距离,依据最短距离能够确定当前R下每条线段在[0 ...

  7. BAT面试题 - 找一个无序实数数组中的最大差值

    题目描写叙述: 一个无序的实数数组a[i].要求求里面大小相邻的实数的差的最大值.比方 double a[]={1,5,4,0.2,100} 这个无序的数组,相邻的数的最大差值为100-5=95. 题 ...

  8. 13. 关于IDEA工具在springboot整合mybatis中出现的Invalid bound statement (not found)问题

    在一切准备就绪之后,测试test,却出现了org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) ...

  9. hadoop组件及其作用

    1.hadoop有三个主要的核心组件:HDFS(分布式文件存储).MAPREDUCE(分布式的计算).YARN(资源调度),现在云计算包括大数据和虚拟化进行支撑. 在HADOOP(hdfs.MAPRE ...

  10. 并发,two

    引言 为了更加形象的描述并发的基础知识,因此本文LZ采用了园子里一度大火的标题形式--"没听说过XXXX,就不要说你XXXX了".希望能够给猿友们一个醒目的警醒,借此来普及并发的基 ...