Drupal Custom Module返回错误的标题

时间:2012-11-30 19:14:04

标签: drupal menu title

对于我的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()的工作原理?

1 个答案:

答案 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。是因为理由或只是随机?