Drupal 7 开发内部培训资料, 分头诗人

drupal 7 里面 .module文件中关于 hook_menu的一些疑问。

赞成!
0
否决!
function  feedback_menu() {
  // 设定地址为http://www.drupalla.com/feedback.
  $items['feedback'] = array(
    'title' => '留言',
    'description' => '留言',
    'page callback' => 'drupal_get_form',//调用系统函数 function drupal_get_form(),drupal_get_form() 是要来建立表单的。
    'page arguments' => array('feedback_form'),//给drupal_get_form参数,变成drupal_get_form('feedback_form'), feedback_form 是我们定义的一个函数 function feedback_form()
    'file' => 'feedback.pages.inc',//function feedback_form() 函数所在的文件地址
    'access arguments' => array('feedback submit'),// 访问权限控制,需要调用hook_permission()钩子。
    'type' => MENU_NORMAL_ITEM,
  );
  // 设定地址为http://www.drupalla.com/admin/structure/feedback.
  $items['admin/structure/feedback'] = array(
    'title' => '留言',
    'description' => '留言',
    'page callback' => 'feedback_view',//调用自定义函数 function feedback_view()
    'file' => 'feedback.admins.inc',//function feedback_view() 函数所在的文件地址
    'access arguments' => array('feedback view'),// 访问权限控制,需要调用hook_permission()钩子。
    'type' => MENU_NORMAL_ITEM,
  );
  return $items;
}

看到@分头诗人写的一个例子,有些地方有疑问。

$items['feedback'],定义的就是URL路径了?执行完后面两个自己写的.INC,项目路径/feedback下就能自动有页面了么?我自己照着这个写,钩子名,数据库名字字段全改成自己的,但是死活刷不出来页面。

我在网上找了别的hook里面是这么写的$items['node/%publishcontent_tab/publish/%publishcontent_security_token'],这种URL又是在哪里的呢,启用好这个,本地路径完全找不到有这个。

求各位大神指点一二

5 个回答

赞成!
0
否决!

最好是贴上你的代码

赞成!
0
否决!

代码是参照你之前写的一个创建留言板文档写的

赞成!
0
否决!

建议看看 hook_menu 的api文档,细看一下。

赞成!
0
否决!

这个是生成路径的钩子,我现在生成不了,不知道为何。权限控制的有了已经

<?php
/**
* Implements hook_menu().
*/
function test_menu() {
//http://drupal/test
  $items['test'] = array(
'title' => 'Test设置',
'description' => 'test',
'page callback' => 'drupal_get_form', //调用系统函数 function drupal_get_form()
'page arguments' => array('test_form'),
'access arguments' => array('test submit'), //权限控制项
'type' => MENU_NORMAL_ITEM,
'file' => 'test.pages.inc',
);
//设定地址为 drupal/admin/
$items['admin/structure/test'] = array(
    'title' => '留言',
    'description' => '留言',
    'page callback' => 'test_view',//调用自定义函数 function feedback_view()
    'file' => 'test.inc',//函数所在的文件地址
    'access arguments' => array('test view'),// 访问权限控制,需要调用hook_permission()钩子。
    'type' => MENU_NORMAL_ITEM,
  );
return $items;
}

function test_permission() {
  return array(
    'test submit' =>  array(
      'title' => t('test submit'),
    ),
    'test view' =>  array(
      'title' => t('test view'),
    ),
  );
}

赞成!
0
否决!

%publishcontent_tab

%publishcontent_security_token

这类型带百分号的,意思是随机获取浏览器的参数