* @package MediaWiki not Mediawiki
[lhc/web/wiklou.git] / includes / Namespace.php
index 5ae927b..f0992a7 100644 (file)
@@ -1,18 +1,20 @@
 <?php
-
-# This is not a valid entry point, perform no further processing unless MEDIAWIKI is defined
+/**
+ * Provide things related to namespaces
+ * @package MediaWiki
+ */
+/**
+ * This is not a valid entry point, perform no further processing unless MEDIAWIKI is defined
+ */
 if( defined( 'MEDIAWIKI' ) ) {
 
-# This is a utility class with only static functions
-# for dealing with namespaces that encodes all the
-# "magic" behaviors of them based on index.  The textual
-# names of the namespaces are handled by Language.php.
-
-# Definitions of the NS_ constants are in Defines.php
-
-# These are synonyms for the names given in the language file
-# Users and translators should not change them
-/* private */ $wgCanonicalNamespaceNames = array(
+/**
+ * Definitions of the NS_ constants are in Defines.php
+ * @private
+ */
+$wgCanonicalNamespaceNames = array(
        NS_MEDIA            => 'Media',
        NS_SPECIAL          => 'Special',
        NS_TALK             => 'Talk',
@@ -29,39 +31,56 @@ if( defined( 'MEDIAWIKI' ) ) {
        NS_HELP             => 'Help',
        NS_HELP_TALK        => 'Help_talk',
        NS_CATEGORY             => 'Category',
-       NS_CATEGORY_TALK    => 'Category_talk'
+       NS_CATEGORY_TALK    => 'Category_talk',
 );
 
-class Namespace {
+if( defined( 'MEDIAWIKI' ) && is_array( $wgExtraNamespaces ) ) {
+       $wgCanonicalNamespaceNames = $wgCanonicalNamespaceNames + $wgExtraNamespaces;
+}
 
-       /* These functions are deprecated */
-       function getSpecial() { return NS_SPECIAL; }
-       function getUser() { return NS_USER; }
-       function getWikipedia() { return NS_PROJECT; }
-       function getImage() { return NS_IMAGE; }
-       function getMedia() { return NS_MEDIA; }
-       function getCategory() { return NS_CATEGORY; }
+/**
+ * This is a utility class with only static functions
+ * for dealing with namespaces that encodes all the
+ * "magic" behaviors of them based on index.  The textual
+ * names of the namespaces are handled by Language.php.
+ *
+ * These are synonyms for the names given in the language file
+ * Users and translators should not change them
+ *
+ * @package MediaWiki
+ */
+class Namespace {
 
-       function isMovable( $index )
-       {
+       /**
+        * Check if the given namespace might be moved
+        * @return bool
+        */
+       function isMovable( $index ) {
                if ( $index < NS_MAIN || $index == NS_IMAGE  || $index == NS_CATEGORY ) { 
                        return false; 
                }
                return true;
        }
 
-       function isTalk( $index )
-       {
+       /**
+        * Check if the give namespace is a talk page
+        * @return bool
+        */
+       function isTalk( $index ) {
+               global $wgExtraNamespaces;
                return ( $index == NS_TALK           || $index == NS_USER_TALK     ||
                                 $index == NS_PROJECT_TALK   || $index == NS_IMAGE_TALK    ||
                                 $index == NS_MEDIAWIKI_TALK || $index == NS_TEMPLATE_TALK ||
-                                $index == NS_HELP_TALK      || $index == NS_CATEGORY_TALK );
+                                $index == NS_HELP_TALK      || $index == NS_CATEGORY_TALK 
+                                ||  ( (isset($wgExtraNamespaces) && $index % 2) )
+                                );
+               
        }
 
-       # Get the talk namespace corresponding to the given index
-       #
-       function getTalk( $index )
-       {
+       /**
+        * Get the talk namespace corresponding to the given index
+        */
+       function getTalk( $index ) {
                if ( Namespace::isTalk( $index ) ) {
                        return $index;
                } else {
@@ -70,8 +89,7 @@ class Namespace {
                }
        }
 
-       function getSubject( $index )
-       {
+       function getSubject( $index ) {
                if ( Namespace::isTalk( $index ) ) {
                        return $index - 1;
                } else {
@@ -79,17 +97,19 @@ class Namespace {
                }
        }
 
-       # Returns the canonical (English Wikipedia) name for a given index
-       function &getCanonicalName( $index )
-       {
+       /**
+        * Returns the canonical (English Wikipedia) name for a given index
+        */
+       function &getCanonicalName( $index ) {
                global $wgCanonicalNamespaceNames;
                return $wgCanonicalNamespaceNames[$index];
        }
 
-       # Returns the index for a given canonical name, or NULL
-       # The input *must* be converted to lower case first
-       function &getCanonicalIndex( $name )
-       {
+       /**
+        * Returns the index for a given canonical name, or NULL
+        * The input *must* be converted to lower case first
+        */
+       function &getCanonicalIndex( $name ) {
                global $wgCanonicalNamespaceNames;
                static $xNamespaces = false;
                if ( $xNamespaces === false ) {