热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Drupal7模块开发建立模块第一个页面(hook_menu)【HTML】

web前端|html教程Drupal7模块开发建立模块第一个页面(hook_menu)web前端-html教程建立模块请参考《Drupal7模块开发建立》usb摄像头源码,ubun

web前端|html教程Drupal 7 模块开发 建立模块 第一个页面(hook_menu)【HTML】
Drupal 7 模块开发 建立模块 第一个页面(hook_menu)
web前端-html教程
建立模块请参考 《Drupal 7 模块开发 建立》
usb摄像头源码,ubuntu深度学习软件,亚马逊爬虫代理ip,php函数创建php文件,seo排名热线lzw
如果你要支持中文,文件格式必须保存为 UTF-8,NO BOM
官网下载最新源码,ubuntu网络显示问号,网络爬虫抢鞋,eterm php,医美 seolzw
——————————
考勤软件源码,ubuntu 文件大小,没办法访问tomcat,matlab 音乐爬虫,php需要学习docker吗,seo 直播lzw
hook_menu 定义菜单项和页面反馈。

我们要用自己模块名替换 hook。在这里我们建立一个 my_first_module_menu() 在 my_first_module.module文件里

'第一个模块 ?? 页面', //菜单项的名称 'description' => '我的第一个模块页面', //当鼠标移动到菜单项,显示菜单的说明 'page callback' => 'my_page_view', //产生页面内容 'access callback' => TRUE, //所有人都能访问 'type' => MENU_NORMAL_ITEM, //菜单项显示类型 ); return $items;}function my_page_view() { $output = t('这是模块做的第一个页面。'); return $output;}

注意:结尾不要写 ?>

清空Cache,然后访问 http://www.mysite.com/?q=mypage ,会看到下图

(事实上,这时你访问任何 http://www.mysite.com/?q=mypage/aaa/bbb 都会访问到这个page)

$items[] 路径

$items先在 [ ] 里定义路径,在访问 /mypage 页面时候,去调用 my_page_view 函数产生页面

每一个$items都是对应一个路径,写在 [ ] 里。当item用一样路径时候,就调用后写那个$items的。(有文章说和$items里参数weight有关,我测试weight不会影响先后次序)

[ ] 里也可以用通配符,譬如: [node/%/edit]。详细参见:function hook_menu 里的Wildcards in Paths一段

title 必须

未翻译的主题

title callback

产生主题的函数。默认是 t()。如果你不想翻译,就设置FALSE (所以我们不必再写 ‘title’ => t(‘第一个表单’))

title arguments

传递到 t() 或者 你自定义函数 的参数。可以和路径组件结合
参考:Menu item title and description callbacks, localization

description

未翻译的说明描述。

page callback

当用户访问页面路径的时候,调用一个显示网页的函数。

如果不写,父菜单的回调函数将代替执行。也就是说 $items[‘mypage’] 和 $items[‘mypage/child’] 会执行一样内容。

有一个特别回调函数 drupal_get_form(),这个将在后面 Drupal 7 模块开发 建立、验证、提交表单(Form) 具体讲

page arguments

传递给 page callback 函数的一串参数数组,上面例子没用用到,我们稍加修改:

修改一下 $items,路径成为 $items[‘mypage/%/edit’],意思是当访问 mypage/1/edit,或者 mypage/2/edit 等,执行此函数 添加 page arguments:’page arguments’ => array(‘hello’, 1),
‘hello’ 作为一个常量传给 $arg1
1 表示路径mypage后面第一层:当你访问 mypage/1/edit 时候,返回就是 1;如果你访问 mypage/world/edit,返回就是world 给函数 my_page_view增加传递参数, function my_page_view($arg1, $arg2)

修改后,完整代码如下:

'第一个模块 ?? 页面', 'description' => '我的第一个模块页面', 'page callback' => 'my_page_view', 'page arguments' => array('hello', 1), //添加参数 'access callback' => TRUE, 'type' => MENU_NORMAL_ITEM, ); return $items;}function my_page_view($arg1, $arg2) { //添加参数传递 $output = t('这是模块做的第一个页面。'); $output .= '
' . $arg1 . ' ' . $arg2; //打印参数 return $output;}

清空Cache,然后访问 http://www.mysite.com/?q=mypage/world/edit ,会看到下图

access callback

如果有访问这页权限,就要返回TRUE,否则就FALSE(如果不写,默认是FALSE)。如果false,页面就会出现 Access denied 提示。

type

描述菜单项属性的代码。许多快捷代码的常量在 menu.inc 里。

我们这里用了默认项 MENU_NORMAL_ITEM,所以$items里可以不写 ‘type’ => MENU_NORMAL_ITEM,

常用几种:

MENU_NORMAL_ITEM,显示在Navigation菜单列表下,管理员可以拖动或隐藏 MENU_SUGGESTED_ITEM,和MENU_NORMAL_ITEM一样,只是默认状态是Disabled的,需要管理员去手工Enabled MENU_CALLBACK 不会产生菜单和面包屑(Breadcrumbs)。只是简单注册一个路径,当路径被访问时,执行相应功能。通常是被API调用。 MENU_LOCAL_ACTION 在父菜单里,显示一个link,引导下步操作。譬如:添加一个菜单 MENU_LOCAL_TASK 也是作为一个link,不过通常是以标签(TAB)格式显示 MENU_DEFAULT_LOCAL_TASK 和 MENU_LOCAL_TASK 一样是标签(TAB),不过是默认标签,和父菜单路径一样(这个itmes的路径只是表达是父菜单)

想深入了解,可以打开目录下 /modules/menu/menu.modules文件,然后结合http://www.yoursite.com/?q=admin/structure/menu/manage/navigation,帮助你了解

menu_name

如果你不要把这个菜单项放在Navigation下,就可以在这里指定。譬如:’menu_name’ => ‘main-menu’,这样就会和Home一起出现在主菜单上

(更多参数,慢慢完善)

??


推荐阅读
  • 微信小程序如何实现图片放大预览功能
    微信小程序|小程序开发小程序,放大,图片微信小程序-小程序开发微信小程序越来越流行,程序员也在不断接触微信小程序的开发,本篇文章我们就教大家一种微信小程序:当点击图片时,当前图片放 ... [详细]
  • CannotconnecttotheDockerdaemonatunix:///var/run/docker.sock.Isthedockerdaemonrunning?
    目录0环境1正文2参考0环境服务器:阿里云1正文下次再也不手贱乱关服务器了重启后发现运行docker报错然后一个个试什么删除daxx.json重启啥的其他方法也没用比如执行serv ... [详细]
  • docker制作打包镜像说明:本文档基于CentSo7系统,ubuntu系统只是部分命令不同,制作过程相同。[顺便说一句:D ... [详细]
  • php怎么设置多个脚本(php怎么设置多个脚本编辑)
    导读:很多朋友问到关于php怎么设置多个脚本的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
  • 搭建简单Ext
    一、EXT是什么?1.Ext是一个Ajax框架,可以用来开发带有华丽外观的富客户端应用,使得我们的bs应用更加具有活力及生命力࿰ ... [详细]
  • 测试用例的重要局部导入依赖{代码}capabilities设置初始化driverwebdriver.remote 隐式期待,加强用例的稳定性元素定位与操作断言capabilities设置官网文档阐明罕用参数键形容值noReset在以后session下不会重置利用的状态。默认值为falsetrue,falsefullReset(iOS)删除所有的模拟器文件夹。(Android)要革除 ... [详细]
  • 1:在Ubuntu中使用“apt-getinstall+app”命令可以在线安装绝大部分软件包,在高版本的Ubuntu中,apt-get可以简写为apt。2:sudo命令表示临时切 ... [详细]
  • ICE(InternetCommunicationsEngine)是一个为现实中程序员而写的中间件平台。作为一个高性能的互联网通信平台,ICE包含了很多分层的服务和插 ... [详细]
  • 导读:今天编程笔记来给各位分享关于php技术员是什么的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: ... [详细]
  • .Net下RabbitMQ发布订阅模式实践
    一、概念AMQP,即AdvancedMessageQueuingProtocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的 ... [详细]
  • 类库下载composerrequirempdfmpdf3、控制器代码useMpdf\Mpdf;publicfunctioncreatePdf(){为了防止文件下载的时候出现跨 ... [详细]
  • WAMP环境中扩展oracle函数库(oci),wampoci
    php教程|php手册oracle,函数库,oci,wampserverphp教程-php手册WAMP环境中扩展oracle函数库(oci),wampoci团队官网html源码,u ... [详细]
  • php frame 空白,php加载frameset页面时显示空白怎么办
    php加载frameset页面时显示空白的解决办法:php页面加载frameset页面时加载页面的时候显示空白解决办法是bom头的问题什么是bom头?在 ... [详细]
  • 本文目录一览:1、ECharts柱状图怎么随机颜色 ... [详细]
  • python中操作文件的模块的方法总结
    在本篇文章里小编给大家整理的是一篇关于python中操作文件的模块的方法总结,有需要的朋 ... [详细]
author-avatar
mobiledu2502857683
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有