From 222b01f5169f1c7e69762e0e8904c24f78f71882 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 28 Jul 2010 11:52:48 +0200 Subject: update to MediaWiki 1.16.0 --- includes/Namespace.php | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) (limited to 'includes/Namespace.php') diff --git a/includes/Namespace.php b/includes/Namespace.php index 3d618e64..e8e7523f 100644 --- a/includes/Namespace.php +++ b/includes/Namespace.php @@ -28,7 +28,7 @@ $wgCanonicalNamespaceNames = array( NS_CATEGORY_TALK => 'Category_talk', ); -if( is_array( $wgExtraNamespaces ) ) { +if( isset( $wgExtraNamespaces ) && is_array( $wgExtraNamespaces ) ) { $wgCanonicalNamespaceNames = $wgCanonicalNamespaceNames + $wgExtraNamespaces; } @@ -45,6 +45,13 @@ if( is_array( $wgExtraNamespaces ) ) { class MWNamespace { + /** + * These namespaces should always be first-letter capitalized, now and + * forevermore. Historically, they could've probably been lowercased too, + * but some things are just too ingrained now. :) + */ + private static $alwaysCapitalizedNamespaces = array( NS_SPECIAL, NS_USER, NS_MEDIAWIKI ); + /** * Can pages in the given namespace be moved? * @@ -101,6 +108,15 @@ class MWNamespace { : $index; } + /** + * Returns whether the specified namespace exists + */ + public static function exists( $index ) { + global $wgCanonicalNamespaceNames; + return isset( $wgCanonicalNamespaceNames[$index] ); + } + + /** * Returns the canonical (English Wikipedia) name for a given index * @@ -135,7 +151,7 @@ class MWNamespace { if ( array_key_exists( $name, $xNamespaces ) ) { return $xNamespaces[$name]; } else { - return NULL; + return null; } } @@ -146,7 +162,7 @@ class MWNamespace { * @return bool */ public static function canTalk( $index ) { - return $index >= NS_MAIN; + return $index >= NS_MAIN; } /** @@ -182,4 +198,29 @@ class MWNamespace { return !empty( $wgNamespacesWithSubpages[$index] ); } + /** + * Is the namespace first-letter capitalized? + * + * @param $index int Index to check + * @return bool + */ + public static function isCapitalized( $index ) { + global $wgCapitalLinks, $wgCapitalLinkOverrides; + // Turn NS_MEDIA into NS_FILE + $index = $index === NS_MEDIA ? NS_FILE : $index; + + // Make sure to get the subject of our namespace + $index = self::getSubject( $index ); + + // Some namespaces are special and should always be upper case + if ( in_array( $index, self::$alwaysCapitalizedNamespaces ) ) { + return true; + } + if ( isset( $wgCapitalLinkOverrides[ $index ] ) ) { + // $wgCapitalLinkOverrides is explicitly set + return $wgCapitalLinkOverrides[ $index ]; + } + // Default to the global setting + return $wgCapitalLinks; + } } -- cgit v1.2.3-54-g00ecf