http://www.mediawiki.org/wiki/Special:Code/MediaWiki/98067

Revision: 98067
Author:   robin
Date:     2011-09-25 16:32:15 +0000 (Sun, 25 Sep 2011)
Log Message:
-----------
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.

Modified Paths:
--------------
    trunk/phase3/includes/specials/SpecialAllmessages.php

Modified: trunk/phase3/includes/specials/SpecialAllmessages.php
===================================================================
--- trunk/phase3/includes/specials/SpecialAllmessages.php       2011-09-25 
14:38:54 UTC (rev 98066)
+++ trunk/phase3/includes/specials/SpecialAllmessages.php       2011-09-25 
16:32:15 UTC (rev 98067)
@@ -249,6 +249,7 @@
         * @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,19 +267,21 @@
                $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;
+                       }
                }
 
                wfProfileOut( __METHOD__ . '-db' );


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to