1

我正在编写一个 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");
}

我使用的 URL 是“invites/auth/RANDOMSTRING/USERID”。这似乎两次获得了第一个值;$auth 和 $uid 都包含“RANDOMSTRING”。

我错过了一些非常简单的东西吗?
谢谢你。

4

2 回答 2

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) 作为用户对象 -> 使用 %user 代替 % ,您将在回调中获得用户对象

$items['invites/auth/%/%user']
于 2011-03-19T00:19:57.837 回答
1

我对文档的阅读是'page_arguments' => array(2):“将路径组件号 2 作为第一个参数传递给页面回调,然后是任何可选参数”。所以你会得到:RANDOMSTRING, RANDOMSTRING, USERID.

警告:我不是 Drupal 专家,以上可能是错误的。您可以通过给出invites_pageAuth另一个参数、更改2您的page_arguments等来轻松地检查它。

于 2011-03-19T00:01:56.853 回答