老葛的Drupal培训班 Think in Drupal
Drupal在为一个菜单项构建链接时,它要查找的to_arg()函数,是基于Drupal路径中通配符后面的字符串生成的。它可以是任意的字符串,例如:
/**
* 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) {
// $arg is '%' since it is a wildcard
// Let's replace it with a zoo animal.
return 'tiger';
}
这样,链接“Hi”就会出现在导航区块中了。该链接的URL为http://example.com/?q=menufun/tiger。通常,你不会像这个简单的例子中这样,使用一个静态字符串来替换通配符,而是使用动态的东西,比如当前用户的uid或者当前节点的nid。