今天遇到一个项目,需要创建动态变化的目录:
例如:http://www.trackself.com/activemenu/12345
其中后面的12345是动态改变的
查了一下API,单纯的hook_menu不能实现
需要一个hook_load
这个hook_load在这时候的作用是注册了一个占位符,drupal的文档上可不是这么说的。
function selfaffiliate_load($localurl){
return $localurl;
}
我的模块叫selfaffiliate,上面这么一个函数,即注册了一个叫%selfaffiliate的占位符
而用在menu上即是
function selfaffiliate_menu(){
$items=array();
$items['activemenu/%selfaffiliate'] = array
‘title’ => ‘ad menu header’,
‘title arguments’ => array(),
‘title callback’ => FALSE,
‘description’ => ‘ad menu header’,
‘access callback’ => ‘selfaffiliate_safe’,
‘access arguments’ => array(),
‘page arguments’ => array(1),
‘page callback’ => ‘selfaffiliate_headerto‘,
//’file’ => ‘name_of_file.inc’,
//’file path’ => drupal_get_path(‘module’, ‘name_of_module_goes_here’),
‘weight’ => 0,
‘type’ => MENU_CALLBACK,
……
}
这样,当用户请求:http://www.trackself.com/activemenu/12345的时候,就会自动调用selfaffiliate_headerto(12345)函数的返回了
这两个hook合在一起果然很强大