我阅读了一些关于hook_form_alter()
的帖子,但无法完成这项工作。
我想创建一个自定义模块来覆盖菜单$items
' title'用于Drupal核心跟踪器模块。
function tracker_menu() {
// ....
$items['user/%user/track'] = array(
'title' => 'Track',
'page callback' => 'tracker_page',
'page arguments' => array(1, TRUE),
'access callback' => '_tracker_user_access',
'access arguments' => array(1),
'type' => MENU_LOCAL_TASK,
'file' => 'tracker.pages.inc',
);
// ...
}
我试过
function mymodule_tracker_menu_form_alter(&$form, &$form_state, $form_id) {
$items['user/%user/track']['title'] = 'Recent Content';
}
答案 0 :(得分:1)
你使用了错误的钩子。您必须使用hook_menu_alter
。 hook_form_alter()
适用于表单。
/**
* Implements hook_menu_alter().
*/
function MYMODULE_menu_alter(&$items) {
$items['user/%user/track']['title callback'] = '_MYCALLBACK';
}
/**
* Custom title callback.
*/
function _MYCALLBACK() {
return t('Recent Content');
}
您还可以使用主题template.php
中的预处理功能(实际上要好得多,请参阅template_process_page
):
/**
* Implements template_process_page().
*/
function MYTEMPLATE_process_page(&$variables) {
if (arg(0) === 'user' && arg(2) === 'track) {
$variables['title'] = t('Recent Content');
}
}