? 405238-forum_duplicate_id-rev14.patch
? 405238-forum_duplicate_id-rev15.patch
? sites/all/modules/devel
? sites/all/modules/devel-7.x-1.x-dev.tar.gz
Index: modules/forum/forum-icon.tpl.php
===================================================================
RCS file: /cvs/drupal/drupal/modules/forum/forum-icon.tpl.php,v
retrieving revision 1.6
diff -u -p -r1.6 forum-icon.tpl.php
--- modules/forum/forum-icon.tpl.php	9 Oct 2009 00:59:59 -0000	1.6
+++ modules/forum/forum-icon.tpl.php	8 Dec 2009 06:21:54 -0000
@@ -9,17 +9,14 @@
  * - $new_posts: Indicates whether or not the topic contains new posts.
  * - $icon: The icon to display. May be one of 'hot', 'hot-new', 'new',
  *   'default', 'closed', or 'sticky'.
+ * - $first_new: Indicates whether this is the first topic with new posts.
  *
  * @see template_preprocess_forum_icon()
  * @see theme_forum_icon()
  */
 ?>
-<?php if ($new_posts): ?>
-  <a id="new">
+<?php if ($first_new): ?>
+  <a id="new" />
 <?php endif; ?>
 
 <?php print theme('image', array('path' => "misc/forum-$icon.png")) ?>
-
-<?php if ($new_posts): ?>
-  </a>
-<?php endif; ?>
Index: modules/forum/forum.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/forum/forum.module,v
retrieving revision 1.541
diff -u -p -r1.541 forum.module
--- modules/forum/forum.module	6 Dec 2009 17:36:51 -0000	1.541
+++ modules/forum/forum.module	8 Dec 2009 06:21:54 -0000
@@ -69,7 +69,7 @@ function forum_theme() {
     ),
     'forum_icon' => array(
       'template' => 'forum-icon',
-      'variables' => array('new_posts' => NULL, 'num_posts' => 0, 'comment_mode' => 0, 'sticky' => 0),
+      'variables' => array('new_posts' => NULL, 'num_posts' => 0, 'comment_mode' => 0, 'sticky' => 0, 'first_new' => FALSE),
     ),
     'forum_submitted' => array(
       'template' => 'forum-submitted',
@@ -853,6 +853,7 @@ function forum_get_topics($tid, $sortby,
   }
 
   $topics = array();
+  $first_new_found = FALSE;
   foreach ($result as $topic) {
     if ($user->uid) {
       // folder is new if topic is new or there are new comments since last visit
@@ -871,6 +872,13 @@ function forum_get_topics($tid, $sortby,
       $topic->new = 0;
     }
 
+    // Make sure only one topic is indicated as the first new topic.
+    $topic->first_new = FALSE;
+    if ($topic->new != 0 && !$first_new_found) {
+      $topic->first_new = TRUE;
+      $first_new_found = TRUE;
+    }
+
     if ($topic->comment_count > 0) {
       $last_reply = new stdClass();
       $last_reply->created = $topic->last_comment_timestamp;
@@ -1032,7 +1040,7 @@ function template_preprocess_forum_topic
   if (!empty($variables['topics'])) {
     $row = 0;
     foreach ($variables['topics'] as $id => $topic) {
-      $variables['topics'][$id]->icon = theme('forum_icon', array('new_posts' => $topic->new, 'num_posts' => $topic->comment_count, 'comment_mode' => $topic->comment_mode, 'sticky' => $topic->sticky));
+      $variables['topics'][$id]->icon = theme('forum_icon', array('new_posts' => $topic->new, 'num_posts' => $topic->comment_count, 'comment_mode' => $topic->comment_mode, 'sticky' => $topic->sticky, 'first_new' => $topic->first_new));
       $variables['topics'][$id]->zebra = $row % 2 == 0 ? 'odd' : 'even';
       $row++;
 
@@ -1081,6 +1089,7 @@ function template_preprocess_forum_topic
  * - $num_posts = 0
  * - $comment_mode = 0
  * - $sticky = 0
+ * - $first_new
  *
  * @see forum-icon.tpl.php
  * @see theme_forum_icon()
