我浪费了一整天与drupal 7 hook_menu的战斗,几天前我在创建新模块,新菜单条目等时都工作了。
我正在开发一个cron,取决于1个参数,它生成一个文件来输出,或者读取其他文件(输入)。
我试图定义一个简单的网址来测试cron,当我把... lec_profile_cron放在更加明亮的时候,它可以工作,但如果尝试.... companies_cron / 1或者只是公司_cron o其他名称y放在$ items ['route'],它不起作用。
我试图清理缓存,memcached,使用drush rr,所有并且不明白发生了什么。
我尝试了很多组合和示例,例如我创建的名为helloworld的新模块中的helloword_hello菜单选项,并且找不到返回404。
// CRON TEST
$items['companies_cron/%out'] = array(
'title' => t('Test cron'),
'page callback' => 'lec_profile_cron',
'page arguments' => array(1),
'access arguments' => array('administer lec profile configuration')
);
function lec_profile_cron($out)
{
// CRON OUT
if ($out == 1) {
//do stuff
} else {
//CRON IN
}
}
也许是一件蠢事,但我找不到......
Ty in advice。
答案 0 :(得分:0)
根据文档,我认为这会更好。你不需要你的$ items中的args,我也认为你错过了我已经添加的“访问参数”的尾随逗号,并且还返回了一些内容。
$items['companies_cron'] = array(
'title' => t('Test cron'),
'page callback' => 'lec_profile_cron',
'page arguments' => array(1),
'access arguments' => array('administer lec profile configuration'),
return $items;
);
function lec_profile_cron($out = 0){
// If companies_cron/ is called, $out takes default value of 0
// If companies_cron/1 is called, $out value will be 1
// To pass multiple args, like companies_cron/1/2, you would require further params with defaults like $out = 0, $in = 0 ...
// CRON OUT
if ($out == 1) {
//do stuff
} else {
//CRON IN
}
};