Несколько аргументов при обратном вызове меню - PullRequest
0 голосов
/ 16 августа 2010

Я знаю, как передать один аргумент в обратный вызов меню

  $items['someaddress/%'] = array(
    'title' => 'title',
    'page callback' => 'some_function',
    'page arguments' => 1,
    'type' => MENU_CALLBACK
  );

Я не понимаю, почему передаваемый аргумент $_POST['nid'], но это работает. Это соответствует аргументу страницы 1.

function some_function (){

    $node = isset($_POST['nid']) ? node_load($_POST['nid']) : FALSE;

}

Я сейчас пытаюсь передать несколько аргументов. $items['someaddress/%/%/%'] = array( и ищет пример кода, как я это делаю.

Спасибо!

1 Ответ

12 голосов
/ 16 августа 2010

Использовать массив для page arguments:

$items['someaddress/%/%/%'] = array(
  'title' => 'title',
  'page callback' => 'some_function',
  'page arguments' => array(1, 2, 3),
  'type' => MENU_CALLBACK,
);

function some_function($arg1, $arg2, $arg3) {
  // Insert code here
}

Вы должны всегда сохранять аргументы, передаваемые в обратные вызовы меню, в виде массива , в любом случае.

К сведениюповедение, которое вы видите, - это то, как разработана система меню Drupal.Число соответствует каждому аргументу, передаваемому в меню.1 - первый аргумент, 2 - второй и т. Д.

...