From f3c2c5fd9ba1d7c2982274197aca291e9a162909 Mon Sep 17 00:00:00 2001 From: Robin Pepermans Date: Sun, 25 Sep 2011 16:32:15 +0000 Subject: [PATCH] Talk page links were bluelinks if the root page existed instead of the subpage (i.e. a link to MediaWiki talk:Xyz/nl was blue if MediaWiki talk:Xyz existed). This is present in at least MW 1.16 - now. --- includes/specials/SpecialAllmessages.php | 25 +++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/includes/specials/SpecialAllmessages.php b/includes/specials/SpecialAllmessages.php index 5cd5e2d0e1..35fa9e7ed0 100644 --- a/includes/specials/SpecialAllmessages.php +++ b/includes/specials/SpecialAllmessages.php @@ -249,6 +249,7 @@ class AllmessagesTablePager extends TablePager { * @param array $messageNames * @param string $langcode What language code * @param bool $foreign Whether the $langcode is not the content language + * @return array: a 'pages' and 'talks' array with the keys of existing pages */ public static function getCustomisedStatuses( $messageNames, $langcode = 'en', $foreign = false ) { // FIXME: This function should be moved to Language:: or something. @@ -266,18 +267,20 @@ class AllmessagesTablePager extends TablePager { $pageFlags = $talkFlags = array(); foreach ( $res as $s ) { - if( $s->page_namespace == NS_MEDIAWIKI ) { - if( $foreign ) { - $title = explode( '/', $s->page_title ); - if( count( $title ) === 2 && $langcode == $title[1] - && isset( $xNames[$title[0]] ) ) { - $pageFlags["{$title[0]}"] = true; - } - } elseif( isset( $xNames[$s->page_title] ) ) { - $pageFlags[$s->page_title] = true; + $exists = false; + if( $foreign ) { + $title = explode( '/', $s->page_title ); + if( count( $title ) === 2 && $langcode == $title[1] + && isset( $xNames[$title[0]] ) ) { + $exists = $title[0]; } - } elseif( $s->page_namespace == NS_MEDIAWIKI_TALK ){ - $talkFlags[$s->page_title] = true; + } elseif( isset( $xNames[$s->page_title] ) ) { + $exists = $s->page_title; + } + if( $exists && $s->page_namespace == NS_MEDIAWIKI ) { + $pageFlags[$exists] = true; + } elseif( $exists && $s->page_namespace == NS_MEDIAWIKI_TALK ) { + $talkFlags[$exists] = true; } } -- 2.20.1