通过 URI(而不是 GET 方法)将值传递给函数

发布于 2024-10-23 14:36:15 字数 739 浏览 1 评论 0原文

我正在编写一个 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”。

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

I'm writing a Drupal 6 module that sends a user ID + a randomly generated string to a function through the URI. I'm using the menu hook:

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
  );
  // ...
}

I am new to Drupal, but as I understand it (and I could well be mistaken) this should pass two values to the callback function, which for testing purposes currently looks like this:

function invites_pageAuth($auth = NULL, $uid = NULL) {
  drupal_set_message("uid: $uid <br /> $auth");
}

The URL I use is 'invites/auth/RANDOMSTRING/USERID'. This seems to get the first value twice; both $auth and $uid contain 'RANDOMSTRING'.

Am I missing something really simple?
Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

神经大条 2024-10-30 14:36:15
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 而不是 %,您将在回调中获得 user 对象

$items['invites/auth/%/%user']
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
          );
    ...
}

Also you can use arg(3) as user object -> use %user instead % and you will get user object in your callback

$items['invites/auth/%/%user']
惟欲睡 2024-10-30 14:36:15

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

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

My reading of the docs is that 'page_arguments' => array(2) means: "pass path component number 2 as the first argument to the page callback, followed by any optional arguments". So you'd get: RANDOMSTRING, RANDOMSTRING, USERID.

Warning: I am not a Drupal expert and the above may be wrong. You can check it easily enough by giving invites_pageAuth another argument, changing the 2 in your page_arguments, etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文