Меню на Друпале, ч.5
node/%node/edit - использование такого пути запускает функцию node_load().
Например - возьмём вот такой вот пример:
<?php
$items['user/%user_uid_optional'] = array(
'title' => 'My account',
'title callback' => 'user_page_title',
'title arguments' => array(1),
'file' => 'user_pages.inc',
);
?>
<?php
$items['user/%user_uid_optional'] = array(
'title' => 'My account',
'title callback' => 'user_page_title',
'title arguments' => array(1),
'file' => 'user_pages.inc',
);
?>Обратите внимание вот на это - %user_uid_optional. С каким аргументом вызывается функция user_page_title для например пути user/356. Так вот - на этот раз она вызывается не с аргументом 356, а вот с таким user_uid_optional_load('356'), то есть входным параметром служит объект пользователя, uid которого равен 356, а не просто 356.
А теперь еще пример использования to_arg():
<?php
/**
* Implementation of hook_menu().
*/
function_menufun_menu() {
$items['menufun/%a_zoo_animal'] = array(
'title' => 'Hi',
'page callback' => 'menufun_hello',
'page arguments' => array(1),
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM,
'weight' => -10
);
return $items;
}
function a_zoo_animal_to_arg($arg) {
return 'tiger';
}
?>
<?php
/**
* Implementation of hook_menu().
*/
function_menufun_menu() {
$items['menufun/%a_zoo_animal'] = array(
'title' => 'Hi',
'page callback' => 'menufun_hello',
'page arguments' => array(1),
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM,
'weight' => -10
);
return $items;
}
function a_zoo_animal_to_arg($arg) {
return 'tiger';
}
?>Таким образом (благодаря функции to_arg()) пункт меню появляется в Навигации.
ССылки


