Drupal 7 模块开发 建立模块 第一个页面(hook_menu)_html/css_WEB-ITnose
建立模块请参考 《Drupal 7 模块开发 建立》
如果你要支持中文,文件格式必须保存为 UTF-8,NO BOM
------------------------------
hook_menu 定义菜单项和页面反馈。
我们要用自己模块名替换 hook。在这里我们建立一个 my_first_module_menu() 在 my_first_module.module文件里
<?phpfunction my_first_module_menu() { $items = array(); $items['mypage'] = array( 'title' => '第一个模块 ?? 页面', //菜单项的名称 '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都是对应一个路径,写在 [ ] 里。当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 函数的一串参数数组,上面例子没用用到,我们稍加修改:
‘hello' 作为一个常量传给 $arg1
1 表示路径mypage后面第一层:当你访问 mypage/1/edit 时候,返回就是 1;如果你访问 mypage/world/edit,返回就是world
修改后,完整代码如下:
<?phpfunction my_first_module_menu() { $items = array(); $items['mypage/%/edit'] = array( //修改路径 'title' => '第一个模块 ?? 页面', '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 .= '<br />' . $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,
常用几种:
想深入了解,可以打开目录下 /modules/menu/menu.modules文件,然后结合http://www.yoursite.com/?q=admin/structure/menu/manage/navigation,帮助你了解
menu_name
如果你不要把这个菜单项放在Navigation下,就可以在这里指定。譬如:'menu_name' => 'main-menu',这样就会和Home一起出现在主菜单上
(更多参数,慢慢完善)
??

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사는 HTML & lt; Progress & Gt에 대해 설명합니다. 요소, 그 목적, 스타일 및 & lt; meter & gt의 차이; 요소. 주요 초점은 & lt; progress & gt; 작업 완료 및 & lt; meter & gt; Stati의 경우

이 기사는 HTML & LT; Datalist & GT에 대해 논의합니다. 자동 완성 제안을 제공하고, 사용자 경험을 향상시키고, 오류를 줄임으로써 양식을 향상시키는 요소. 문자 수 : 159

기사는 HTML5 크로스 브라우저 호환성을 보장하기위한 모범 사례에 대해 논의하고 기능 감지, 점진적 향상 및 테스트 방법에 중점을 둡니다.

이 기사는 HTML & lt; meter & gt에 대해 설명합니다. 범위 내에 스칼라 또는 분수 값을 표시하는 데 사용되는 요소 및 웹 개발의 일반적인 응용 프로그램. & lt; meter & gt; & lt; Progress & Gt; 그리고 Ex

이 기사는 html5 & lt; time & gt; 시맨틱 날짜/시간 표현 요소. 인간이 읽을 수있는 텍스트와 함께 기계 가독성 (ISO 8601 형식)에 대한 DateTime 속성의 중요성을 강조하여 Accessibilit를 향상시킵니다.

이 기사에서는 브라우저에서 직접 사용자 입력을 검증하기 위해 필요한, Pattern, Min, Max 및 Length 한계와 같은 HTML5 양식 검증 속성을 사용하는 것에 대해 설명합니다.

이 기사는 모바일 장치의 반응 형 웹 디자인에 필수적인 Viewport Meta Tag에 대해 설명합니다. 적절한 사용이 최적의 컨텐츠 스케일링 및 사용자 상호 작용을 보장하는 방법을 설명하는 반면, 오용은 설계 및 접근성 문제로 이어질 수 있습니다.

이 기사는 & lt; iframe & gt; 외부 컨텐츠를 웹 페이지, 공통 용도, 보안 위험 및 객체 태그 및 API와 같은 대안을 포함시키는 태그의 목적.
