Index: includes/menu.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/menu.inc,v retrieving revision 1.225 diff -u -r1.225 menu.inc --- includes/menu.inc 21 Nov 2007 09:37:07 -0000 1.225 +++ includes/menu.inc 23 Nov 2007 21:59:40 -0000 @@ -596,7 +596,7 @@ _menu_check_access($item, $map); } // If the link title matches that of a router item, localize it. - if (!empty($item['title']) && (($item['title'] == $item['link_title']) || ($item['title_callback'] != 't'))) { + if ((!empty($item['title']) && ($item['title'] == $item['link_title'])) || (!empty($item['title_callback']) && $item['title_callback'] != 't')) { _menu_item_localize($item, $map); } else { Index: modules/filter/filter.admin.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/filter/filter.admin.inc,v retrieving revision 1.4 diff -u -r1.4 filter.admin.inc --- modules/filter/filter.admin.inc 23 Nov 2007 13:34:55 -0000 1.4 +++ modules/filter/filter.admin.inc 23 Nov 2007 21:59:40 -0000 @@ -74,16 +74,13 @@ } /** - * Display a filter format form. + * Menu callback; Display a filter format form. */ function filter_admin_format_page($format = NULL) { if (!isset($format->name)) { drupal_set_title(t("Add input format")); $format = (object)array('name' => '', 'roles' => '', 'format' => ''); } - else { - drupal_set_title(t("%format input format", array('%format' => $format->name))); - } return drupal_get_form('filter_admin_format_form', $format); } Index: modules/filter/filter.module =================================================================== RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v retrieving revision 1.190 diff -u -r1.190 filter.module --- modules/filter/filter.module 22 Oct 2007 10:32:03 -0000 1.190 +++ modules/filter/filter.module 23 Nov 2007 21:59:40 -0000 @@ -108,6 +108,8 @@ ); $items['admin/settings/filters/%filter_format'] = array( 'type' => MENU_CALLBACK, + 'title callback' => 'filter_admin_format_title', + 'title arguments' => array(3), 'page callback' => 'filter_admin_format_page', 'page arguments' => array(3), 'access arguments' => array('administer filters'), @@ -144,6 +146,13 @@ } /** + * Display a filter format form title. + */ +function filter_admin_format_title($format) { + return $format->name; +} + +/** * Implementation of hook_perm(). */ function filter_perm() { Index: modules/node/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.module,v retrieving revision 1.905 diff -u -r1.905 node.module --- modules/node/node.module 23 Nov 2007 12:27:38 -0000 1.905 +++ modules/node/node.module 23 Nov 2007 22:06:28 -0000 @@ -1377,9 +1377,10 @@ ); } $items['node/%node'] = array( - 'title' => 'View', - 'page callback' => 'node_page_view', - 'page arguments' => array(1), + 'title callback' => 'node_page_title', + 'title arguments' => array(1), + 'page callback' => 'node_show', + 'page arguments' => array(1, NULL), 'access callback' => 'node_access', 'access arguments' => array('view', 1), 'type' => MENU_CALLBACK); @@ -1585,6 +1586,13 @@ } /** + * Menu callback; return the given node's title + */ +function node_page_title($node) { + return $node->title; +} + +/** * Menu callback; view a single node. */ function node_page_view($node, $cid = NULL) { Index: modules/user/user.module =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.module,v retrieving revision 1.866 diff -u -r1.866 user.module --- modules/user/user.module 20 Nov 2007 13:44:38 -0000 1.866 +++ modules/user/user.module 23 Nov 2007 21:59:40 -0000 @@ -1022,7 +1022,8 @@ ); $items['user/%user_current'] = array( - 'title' => 'My account', + 'title callback' => 'user_page_title', + 'title arguments' => array(1), 'page callback' => 'user_view', 'page arguments' => array(1), 'access callback' => 'user_view_access', @@ -1102,6 +1103,22 @@ return empty($arg) || $arg == '%' ? $GLOBALS['user']->uid : $arg; } +function user_page_title($account) { + if ($account->uid == $GLOBALS['user']->uid) { + return t('My account'); + } + else { + // Shorten the name when it is too long or it will break many tables. + if (drupal_strlen($account->name) > 20) { + $name = drupal_substr($account->name, 0, 15) .'...'; + } + else { + $name = $account->name; + } + return $name; + } +} + /** * Accepts an user object, $account, or a DA name and returns an associative * array of modules and DA names. Called at external login.