我写了一个简单的模块来练习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,模块信息文件是正确的,缓存被清除。但在导航部分,我看不到我创建的菜单。谢谢。
答案 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”将无效。至少,这就是我理解它的方式。