Index: modules/forum/forum.module =================================================================== RCS file: /cvs/drupal/drupal/modules/forum/forum.module,v retrieving revision 1.573 diff -u -p -r1.573 forum.module --- modules/forum/forum.module 17 Aug 2010 16:20:07 -0000 1.573 +++ modules/forum/forum.module 17 Aug 2010 21:15:04 -0000 @@ -59,7 +59,7 @@ function forum_theme() { return array( 'forums' => array( 'template' => 'forums', - 'variables' => array('forums' => NULL, 'topics' => NULL, 'parents' => NULL, 'tid' => NULL, 'sortby' => NULL, 'forum_per_page' => NULL), + 'variables' => array('forum' => NULL, 'topics' => NULL, 'sortby' => NULL, 'forum_per_page' => NULL), ), 'forum_list' => array( 'template' => 'forum-list', @@ -274,13 +274,12 @@ function _forum_node_check_node_type($no * Implements hook_node_view(). */ function forum_node_view($node, $view_mode) { - $vid = variable_get('forum_nav_vocabulary', 0); - $vocabulary = taxonomy_vocabulary_load($vid); if (_forum_node_check_node_type($node)) { if ($view_mode == 'full' && node_is_page($node)) { // Breadcrumb navigation $breadcrumb[] = l(t('Home'), NULL); - $breadcrumb[] = l($vocabulary->name, 'forum'); + $menu_item = menu_get_item('forum'); + $breadcrumb[] = l($menu_item['title'], 'forum'); if ($parents = taxonomy_get_parents_all($node->forum_tid)) { $parents = array_reverse($parents); foreach ($parents as $parent) { @@ -288,7 +287,6 @@ function forum_node_view($node, $view_mo } } drupal_set_breadcrumb($breadcrumb); - } } } @@ -956,28 +954,9 @@ function forum_get_topics($tid, $sortby, function template_preprocess_forums(&$variables) { global $user; - $vid = variable_get('forum_nav_vocabulary', 0); - $vocabulary = taxonomy_vocabulary_load($vid); - $title = !empty($vocabulary->name) ? $vocabulary->name : ''; - - // Breadcrumb navigation: - $breadcrumb[] = l(t('Home'), NULL); - if ($variables['tid']) { - $breadcrumb[] = l($vocabulary->name, 'forum'); - } - if ($variables['parents']) { - $variables['parents'] = array_reverse($variables['parents']); - foreach ($variables['parents'] as $p) { - if ($p->tid == $variables['tid']) { - $title = $p->name; - } - else { - $breadcrumb[] = l($p->name, 'forum/' . $p->tid); - } - } - } - drupal_set_breadcrumb($breadcrumb); - drupal_set_title($title); + $variables['tid'] = $variables['forum']->tid; + $variables['forums'] = $variables['forum']->forums; + $variables['parents'] = $variables['forum']->parents; if ($variables['forums_defined'] = count($variables['forums']) || count($variables['parents'])) { if (!empty($variables['forums'])) { @@ -989,7 +968,8 @@ function template_preprocess_forums(&$va if ($variables['tid'] && !in_array($variables['tid'], variable_get('forum_containers', array()))) { $variables['topics'] = theme('forum_topic_list', $variables); - drupal_add_feed('taxonomy/term/' . $variables['tid'] . '/0/feed', 'RSS - ' . $title); + // Add RSS feed. + drupal_add_feed('taxonomy/term/' . $variables['tid'] . '/0/feed', 'RSS - ' . $variables['forum']->name); } else { $variables['topics'] = ''; @@ -1013,7 +993,6 @@ function template_preprocess_forums(&$va } else { - drupal_set_title(t('No forums defined')); $variables['forums'] = ''; $variables['topics'] = ''; } Index: modules/forum/forum.pages.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/forum/forum.pages.inc,v retrieving revision 1.4 diff -u -p -r1.4 forum.pages.inc --- modules/forum/forum.pages.inc 28 Apr 2010 05:54:55 -0000 1.4 +++ modules/forum/forum.pages.inc 17 Aug 2010 21:15:04 -0000 @@ -15,6 +15,37 @@ function forum_page($forum_term = NULL) $forum_term = forum_forum_load(0); } + // The page title for forum list and breadcrumbs should be inherited from + // menu link title to follow menu title changes. + $title = menu_get_active_title(); + + // Breadcrumb navigation. + $breadcrumb[] = l(t('Home'), NULL); + if ($forum_term->tid) { + $breadcrumb[] = l($title, 'forum'); + } + if ($forum_term->parents) { + $parents = array_reverse($forum_term->parents); + foreach ($parents as $p) { + if ($p->tid == $forum_term->tid) { + $title = $p->name; + } + else { + $breadcrumb[] = l($p->name, 'forum/' . $p->tid); + } + } + } + drupal_set_breadcrumb($breadcrumb); + + + if ($forum_term->tid) { + // Page title should be assigned to a viewing forum or container's name. + drupal_set_title($title); + } + elseif (empty($forum_term->forums) && empty($forum_term->parents)) { + drupal_set_title(t('No forums defined')); + } + $forum_per_page = variable_get('forum_per_page', 25); $sortby = variable_get('forum_order', 1); @@ -25,5 +56,10 @@ function forum_page($forum_term = NULL) $topics = ''; } - return theme('forums', array('forums' => $forum_term->forums, 'topics' => $topics, 'parents' => $forum_term->parents, 'tid' => $forum_term->tid, 'sortby' => $sortby, 'forums_per_page' => $forum_per_page)); + return theme('forums', array( + 'forum' => $forum_term, + 'topics' => $topics, + 'sortby' => $sortby, + 'forums_per_page' => $forum_per_page, + )); }