我正在编写一个Drupal 6模块,它通过URI将一个用户ID +一个随机生成的字符串发送给一个函数。我正在使用菜单钩子:
function invites_menu() {
// ...
$items['invites/auth'] = array(
'title' => 'Are you human?',
'page callback' => 'invites_pageAuth',
'access arguments' => array('access invites content'),
'page arguments' => array(2),
'type' => MENU_CALLBACK
);
// ...
}
我是Drupal的新手,但据我所知(我很可能会误会),这应该将两个值传递给回调函数,出于测试目的,目前看起来像这样:
function invites_pageAuth($auth = NULL, $uid = NULL) {
drupal_set_message("uid: $uid <br /> $auth");
}
我使用的网址是'invites / auth / RANDOMSTRING / USERID'。这似乎两次得到第一个值; $ auth和$ uid都包含'RANDOMSTRING'。
我错过了一些非常简单的事情吗? 谢谢。
答案 0 :(得分:4)
function invites_menu()
{
...
$items['invites/auth/%/%'] = array(
'title' => 'Are you human?',
'page callback' => 'invites_pageAuth',
'access arguments' => array('access invites content'),
'page arguments' => array(2, 3),
'type' => MENU_CALLBACK
);
...
}
您也可以使用arg(3)作为用户对象 - &gt;使用%user而不是%,您将在回调中获得用户对象
$items['invites/auth/%/%user']
答案 1 :(得分:1)
我对文档的阅读是'page_arguments' => array(2)
表示:“将路径组件号2作为页面回调的第一个参数传递,后跟任何可选参数”。所以你得到:RANDOMSTRING
,RANDOMSTRING
,USERID
。
警告:我不是Drupal专家,以上可能是错误的。您可以通过提供invites_pageAuth
其他参数,更改2
中的page_arguments
等来轻松查看。