drupal为什么MENU_NORMAL_ITEM无法正常工作

时间:2010-11-18 08:50:47

标签: drupal module menu hook

我写了一个简单的模块来练习hook_menu。但它不起作用。我的代码出了什么问题。       

   function mymenu1_menu(){
  $item = array();

  $item['mymenu/menu'] = array (
   'description' =>'test1',
   'page callback' => 'mymenu_test_access',
   'access callback' => 'mymenu_is_test_access',
   'type' =>MENU_NORMAL_ITEM,    
   );
   return $item;

  }

  function mymenu_test_access(){
  $output = 'you're logged';
  return $output;
  }

  function mymenu_is_test_access(){
    return $GLOBALS['user']->uid >0 ;
    }

我的模块名是mymenu1,模块信息文件是正确的,缓存被清除。但在导航部分,我看不到我创建的菜单。谢谢。

3 个答案:

答案 0 :(得分:4)

对于初学者 - 您的代码中存在错误

    function mymenu_test_access(){
  $output = 'you're logged';

  return $output;

  }

你需要逃避$ output中的单引号。 $ output ='你被记录';

应该是

$ output ='你已经记录';

尝试修复它,看看它是怎么回事

答案 1 :(得分:1)

访问控制可能存在问题。我真的不确定你在函数mymenu_is_test_access中尝试做了什么,但它没有返回正确的值(并且充满了拼写错误)。

尝试使用:

'access arguments' => array('access content'),

为每个用户(甚至是匿名用户)创建菜单项。

如果您想限制对特定群组/角色的访问权限,请阅读以下内容:Can someone explain "access arguments" in Drupal?

答案 2 :(得分:0)

您的系统是否有“mymenu”条目?因为如果它不存在,那么路径“mymenu / menu”将无效。至少,这就是我理解它的方式。