1

ユーザー ID + ランダムに生成された文字列を URI を介して関数に送信する Drupal 6 モジュールを作成しています。メニューフックを使用しています:

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 を初めて使用しますが、私が理解しているように (そして私が間違っている可能性もあります)、コールバック関数に 2 つの値を渡す必要があります。これは、テスト目的で現在次のようになっています。

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

私が使用する URL は「invites/auth/RANDOMSTRING/USERID」です。これは最初の値を 2 回取得しているようです。$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、、。RANDOMSTRINGUSERID

警告:私はDrupalの専門家ではないため、上記は間違っている可能性があります。invites_pageAuth別の引数を指定したり、のを変更したりすることで、簡単に確認でき2ますpage_arguments

于 2011-03-19T00:01:56.853 に答える