Index: modules/forum/forum.module =================================================================== RCS file: /cvs/drupal/drupal/modules/forum/forum.module,v retrieving revision 1.582 diff -u -p -r1.582 forum.module --- modules/forum/forum.module 29 Nov 2010 04:53:32 -0000 1.582 +++ modules/forum/forum.module 30 Nov 2010 14:33:18 -0000 @@ -96,6 +96,8 @@ function forum_menu() { ); $items['forum/%forum_forum'] = array( 'title' => 'Forums', + 'title callback' => 'forum_page_title', + 'title arguments' => array(1), 'page callback' => 'forum_page', 'page arguments' => array(1), 'access arguments' => array('access content'), @@ -160,6 +162,13 @@ function forum_menu() { } /** + * Menu item title callback - use the forum name. + */ +function forum_page_title($forum_term) { + return $forum_term->name; +} + +/** * Implements hook_menu_local_tasks_alter(). */ function forum_menu_local_tasks_alter(&$data, $router_item, $root_path) { @@ -955,31 +964,6 @@ function forum_get_topics($tid, $sortby, * @see forums.tpl.php */ 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); - if ($variables['forums_defined'] = count($variables['forums']) || count($variables['parents'])) { if (!empty($variables['forums'])) { $variables['forums'] = theme('forum_list', $variables); @@ -990,7 +974,6 @@ 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'] . '/feed', 'RSS - ' . $title); } else { $variables['topics'] = ''; @@ -1014,7 +997,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 30 Nov 2010 14:33:18 -0000 @@ -15,6 +15,34 @@ function forum_page($forum_term = NULL) $forum_term = forum_forum_load(0); } + // Breadcrumb navigation. + $breadcrumb[] = l(t('Home'), NULL); + if ($forum_term->tid) { + // Parent of all forums' root is vacabulary name. + $vid = variable_get('forum_nav_vocabulary', 0); + $vocabulary = taxonomy_vocabulary_load($vid); + $breadcrumb[] = l($vocabulary->name, 'forum'); + } + if ($forum_term->parents) { + $forum_parents = array_reverse($forum_term->parents); + foreach ($forum_parents as $p) { + if ($p->tid != $forum_term->tid) { + $breadcrumb[] = l($p->name, 'forum/' . $p->tid); + } + } + } + drupal_set_breadcrumb($breadcrumb); + + if ($forum_term->tid && !in_array($forum_term->tid, variable_get('forum_containers', array()))) { + // Add RSS feed for forums not containers. + drupal_add_feed('taxonomy/term/' . $forum_term->tid . '/feed', 'RSS - ' . $forum_term->name); + } + + if (empty($forum_term->forums) && empty($forum_term->parents)) { + // Root of empty forum. + drupal_set_title(t('No forums defined')); + } + $forum_per_page = variable_get('forum_per_page', 25); $sortby = variable_get('forum_order', 1); @@ -25,5 +53,12 @@ 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( + 'forums' => $forum_term->forums, + 'topics' => $topics, + 'parents' => $forum_term->parents, + 'tid' => $forum_term->tid, + 'sortby' => $sortby, + 'forums_per_page' => $forum_per_page, + )); }