Drupal的 - hook_menu

时间:2010-11-16 09:33:17

标签: drupal module hook

信息文件是对的,以下是我的模块文件代码。当我访问http://localhost/drupal/mymenu时,为什么它无法正常工作。

  <?php
 function mymenu(){
    $item = array();
  $item['mymenu'] = array(
       'description'=>'test1',
      'page callback'=>'mymenu_test',
      'access arguments' => array('access mymenu'),
     'type'=>MENU_CALLBACK,
 );
 return $item;
 }

  function mymenu_perm(){
   return array('access mymenu');
  }

 function mymenu_test() {
 $output = 'hello world';
 return $output;
}

我已经给匿名人员提供了“访问mymenu”权限。

4 个答案:

答案 0 :(得分:6)

应该是

function mymenu_menu() { ... }

您不需要$ item = array();还有。

答案 1 :(得分:1)

每当你看到带有hook_something的api函数时,你必须用你的模块名称替换'hook'部分

在这种情况下,确实是mymenu_menu

答案 2 :(得分:1)

请尝试以下操作:将函数名称用作modulename_menu并使用'access arguments' => array('access content')

<?php
  function test_menu(){
  $item = array();
  $item['mymenu'] = array(
  'description'=>'test1',
  'page callback'=>'mymenu_test',
  'access arguments' => array('access content'),
  'type'=>MENU_CALLBACK,
  );
  return $item;
  }

  function mymenu_test() {
  $output = 'hello world';
  return $output;
  }

答案 3 :(得分:-2)

在使用hook_menu添加菜单项后,您需要刷新菜单缓存(在drupal 7中至少两次)。