Множество аргументи при обратно извикване на менюто

Знам как да предам един аргумент на обратно извикване на менюто

  $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( и търси примерен код за това как правя това.

Благодаря!


person Mark    schedule 16.08.2010    source източник


Отговори (1)


Използвайте масив за 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
}

Така или иначе винаги трябва да запазвате аргументите, предадени на обратното извикване на менюто като масив.

FYI: поведението, което виждате, е как е проектирана системата от менюта на Drupal. Номерът съответства на всеки аргумент, който се предава на менюто. 1 е първият аргумент, 2 е вторият и т.н.

person Community    schedule 16.08.2010