覆盖Drupal中跟踪器模块页面的页面标题
我读了几篇关于hook\u form\u alter()的帖子,但没能做到这一点 我想创建一个自定义模块来覆盖Drupal core Tracker模块的菜单覆盖Drupal中跟踪器模块页面的页面标题,drupal,drupal-7,Drupal,Drupal 7,我读了几篇关于hook\u form\u alter()的帖子,但没能做到这一点 我想创建一个自定义模块来覆盖Drupal core Tracker模块的菜单$items'title' function tracker_menu() { // .... $items['user/%user/track'] = array( 'title' => 'Track', 'page callback' => 'tracker_page', 'page argu
$items
'title'
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';
}
你用错钩子了。你必须使用
hook\u form\u 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
中的预处理函数(实际上更好,请参见):
还尝试使用函数mymodule\u tracker\u menu\u form\u alter(&$items)声明变量{instead@Markus–输入错误。#1缺少
。#2您是对的,它必须是\u进程
钩子:)@Markus–Updated@Markus–它是$variables
是的,就像文档中写的一样。#1可能不起作用,因为模块实现的顺序不理想。然后您必须确保模块最后通过这个钩子请阅读我提供的链接后面的文档。@Markus–然后刷新缓存一千次;)@Markus–否,如果您在主题的template.php中实现该钩子。是的,如果您在自定义模块中实现它。
/**
* Implements template_process_page().
*/
function MYTEMPLATE_process_page(&$variables) {
if (arg(0) === 'user' && arg(2) === 'track) {
$variables['title'] = t('Recent Content');
}
}