Drupal 自定义模块返回错误的标题
Posted
技术标签:
【中文标题】Drupal 自定义模块返回错误的标题【英文标题】:Drupal Custom Module returning wrong title 【发布时间】:2012-11-30 19:14:04 【问题描述】:对于我的 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());
如果我访问 URL hr/payroll
,它会显示标题“工资单”
但是如果我转到 URL hr/payroll/employee/hours/overtime
它仍然显示“工资单”而不是预期的“加班提交”
那么我完全误解了菜单项的 $title 元素或 function drupal_get_title()
的工作原理是什么?
【问题讨论】:
【参考方案1】:我相信您根据您想要做的事情以错误的方式使用 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,
);
参数“员工”“小时”“加班”是静态的还是动态的? , 我看到提供的页面参数是相同的 ('employee','hours','overtime') 如果它们是动态的,请使用通配符,例如
$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。这是有原因的还是随机的??
【讨论】:
以上是关于Drupal 自定义模块返回错误的标题的主要内容,如果未能解决你的问题,请参考以下文章