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