From: Roan Kattouw Date: Wed, 5 Jul 2017 23:41:36 +0000 (-0700) Subject: ChangesListSpecialPage: Don't short-circuit the ChangesList, instead format zero... X-Git-Tag: 1.31.0-rc.0~2715^2 X-Git-Url: http://git.cyclocoop.org/%7B%24admin_url%7Dcompta/comptes/journal.php?a=commitdiff_plain;h=92fa43d9c2a5ae6b6a2147cfe1a655a7b315a8f5;p=lhc%2Fweb%2Fwiklou.git ChangesListSpecialPage: Don't short-circuit the ChangesList, instead format zero rows Short-circuiting the ChangesList causes bugs, because it causes ChangesList::beginRecentChangesList() to be bypassed. This function adds important styles and RL modules, especially when enhanced RC is enabled. Instead, fake an empty result and let the ChangesList format it. This will add styles and modules but otherwise produce no output. (It does produce an empty div, but the idiosyncratic way in which the subclasses deal with empty results causes that div not to be output.) Bug: T169835 Change-Id: Ib831c781f4fe91eef787aef3d17e71780be9da51 --- diff --git a/includes/specialpage/ChangesListSpecialPage.php b/includes/specialpage/ChangesListSpecialPage.php index 0be06461f4..eb431a495a 100644 --- a/includes/specialpage/ChangesListSpecialPage.php +++ b/includes/specialpage/ChangesListSpecialPage.php @@ -22,6 +22,7 @@ */ use MediaWiki\Logger\LoggerFactory; use Wikimedia\Rdbms\ResultWrapper; +use Wikimedia\Rdbms\FakeResultWrapper; use Wikimedia\Rdbms\IDatabase; /** @@ -518,13 +519,7 @@ abstract class ChangesListSpecialPage extends SpecialPage { $rows = $this->getRows(); $opts = $this->getOptions(); if ( $rows === false ) { - if ( !$this->including() ) { - $this->doHeader( $opts, 0 ); - $this->outputNoResults(); - $this->getOutput()->setStatusCode( 404 ); - } - - return; + $rows = new FakeResultWrapper( [] ); } $batch = new LinkBatch;