From: Timo Tijhof Date: Tue, 27 Sep 2016 18:03:48 +0000 (+0100) Subject: resourceloader: Fix undefined getPrefixedText() X-Git-Tag: 1.31.0-rc.0~5297^2 X-Git-Url: https://git.cyclocoop.org/%27.WWW_URL.%27admin/?a=commitdiff_plain;h=1e74a83a21b6e2f89930a1e0c90791034599ebec;p=lhc%2Fweb%2Fwiklou.git resourceloader: Fix undefined getPrefixedText() Follows-up dbe592df. Used to go in one-way only and silenced by addObj(). Now that we're iterating directly as well, need a conditional. Bug: T146728 Change-Id: Ief9d44cc5cb8f5d687560f59cc696c5671546163 --- diff --git a/includes/resourceloader/ResourceLoaderWikiModule.php b/includes/resourceloader/ResourceLoaderWikiModule.php index 4fdd86eaca..7cbec706e4 100644 --- a/includes/resourceloader/ResourceLoaderWikiModule.php +++ b/includes/resourceloader/ResourceLoaderWikiModule.php @@ -305,7 +305,11 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule { $titleInfo = []; $batch = new LinkBatch; foreach ( $pages as $titleText ) { - $batch->addObj( Title::newFromText( $titleText ) ); + $title = Title::newFromText( $titleText ); + if ( $title ) { + // Page name may be invalid if user-provided (e.g. gadgets) + $batch->addObj( $title ); + } } if ( !$batch->isEmpty() ) { $res = $db->select( 'page', @@ -359,8 +363,16 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule { // Before we intersect, map the names to canonical form (T145673). $intersect = []; foreach ( $pages as $page => $unused ) { - $title = Title::newFromText( $page )->getPrefixedText(); - $intersect[$title] = 1; + $title = Title::newFromText( $page ); + if ( $title ) { + $intersect[ $title->getPrefixedText() ] = 1; + } else { + // Page name may be invalid if user-provided (e.g. gadgets) + $rl->getLogger()->info( + 'Invalid wiki page title "{title}" in ' . __METHOD__, + [ 'title' => $page ] + ); + } } $info = array_intersect_key( $allInfo, $intersect );