Only generate date header when rendering is guaranteed
authorErik Bernhardson <ebernhardson@wikimedia.org>
Mon, 3 Mar 2014 22:35:11 +0000 (14:35 -0800)
committerErik Bernhardson <ebernhardson@wikimedia.org>
Mon, 3 Mar 2014 22:37:19 +0000 (14:37 -0800)
The OldChangesListRecentChangesLine hook can skip rendering of
a particular rc line.  If that line was the one that would have
added a new date header then no date header is output.  The
pushes checking for a new date header until after we know a
line will be output so none of the headers get lost.

Change-Id: I64ddd99c6af0b562802504b803563cf77fc2eb28

includes/changes/OldChangesList.php

index 9cb1146..458f21a 100644 (file)
@@ -37,9 +37,6 @@ class OldChangesList extends ChangesList {
                # Should patrol-related stuff be shown?
                $unpatrolled = $this->showAsUnpatrolled( $rc );
 
-               $dateheader = ''; // $s now contains only <li>...</li>, for hooks' convenience.
-               $this->insertDateHeader( $dateheader, $rc->mAttribs['rc_timestamp'] );
-
                $s = '';
                $classes = array();
                // use mw-line-even/mw-line-odd class only if linenumber is given (feature from bug 14468)
@@ -128,6 +125,9 @@ class OldChangesList extends ChangesList {
 
                wfProfileOut( __METHOD__ );
 
+               $dateheader = ''; // $s now contains only <li>...</li>, for hooks' convenience.
+               $this->insertDateHeader( $dateheader, $rc->mAttribs['rc_timestamp'] );
+
                return "$dateheader<li class=\"" . implode( ' ', $classes ) . "\">" . $s . "</li>\n";
        }
 }