对于我的drupal网站,在我的自定义模块(hr_payroll.module)中,我有以下内容来添加URL处理程序:
function hr_payroll_menu() {
$items['hr/payroll/employee/hours/overtime'] = array(
'title' => 'Overtime Submission',
'page callback' => 'hr_payroll_page',
'page arguments' => array('employee','hours','overtime'),
'access arguments' => array('access hr payroll'),
'type' => MENU_CALLBACK,
);
$items['hr/payroll'] = array(
'title' => 'Payroll',
'page callback' => 'hr_payroll_intro',
'access arguments' => array('access hr payroll'),
'type' => MENU_CALLBACK,
);
return $items;
}
在我的网站上是一个只包含的块
echo(drupal_get_title());
如果我转到网址hr/payroll
,则会显示标题为“Payroll”
但是,如果我转到网址hr/payroll/employee/hours/overtime
,它仍会显示“工资单”,而不是预期的“加班提交”
那么我完全误解了菜单项的$ title元素或function drupal_get_title()
的工作原理?
答案 0 :(得分:0)
我相信你是根据你想要的方式以错误的方式使用hook_menu。 第一个菜单
$items['hr/payroll/employee/hours/overtime'] = array(
'title' => 'Overtime Submission',
'page callback' => 'hr_payroll_page',
'page arguments' => array('employee','hours','overtime'),
'access arguments' => array('access hr payroll'),
'type' => MENU_CALLBACK,
);
参数'员工''小时''加班'是静态的还是动态的? ,我看到提供的页面参数是相同的('员工','小时','加班') 如果它们是动态的,则使用通配符而不是
$items['hr/payroll/%/%/%'] = array(
'title' => 'Overtime Submission',
'page callback' => 'hr_payroll_page',
'page arguments' => array(2,3,4),
'access arguments' => array('access hr payroll'),
'type' => MENU_CALLBACK,
);
如果菜单链接“hr / payroll / employee / hours / overtime”是静态的,则表示您不需要提供的访问参数,因为您已经知道页面回调函数中的这些值是什么。
还有为什么你使用类型作为MENU_CALLBACK。是因为理由或只是随机?