New global config setting $wgMaxTocLevel: Maximum indent level of toc.
[lhc/web/wiklou.git] / includes / Namespace.php
index ab963ed..e3fdab5 100644 (file)
@@ -25,6 +25,30 @@ define("NS_TEMPLATE", 10);
 define("NS_TEMPLATE_TALK", 11);
 define("NS_HELP", 12);
 define("NS_HELP_TALK", 13);
+define("NS_CATEGORY", 14);
+define("NS_CATEGORY_TALK", 15);
+
+# These are synonyms for the names given in the language file
+# Users and translators should not change them
+/* private */ $wgCanonicalNamespaceNames = array(
+       NS_MEDIA            => "Media",
+       NS_SPECIAL          => "Special",
+       NS_TALK             => "Talk",
+       NS_USER             => "User",
+       NS_USER_TALK        => "User_talk",
+       NS_WIKIPEDIA        => "Project",
+       NS_WIKIPEDIA_TALK   => "Project_talk",
+       NS_IMAGE            => "Image",
+       NS_IMAGE_TALK       => "Image_talk",
+       NS_MEDIAWIKI        => "MediaWiki",
+       NS_MEDIAWIKI_TALK   => "MediaWiki_talk",
+       NS_TEMPLATE         => "Template",
+       NS_TEMPLATE_TALK    => "Template_talk",
+       NS_HELP             => "Help",
+       NS_HELP_TALK        => "Help_talk",
+       NS_CATEGORY         => "Category",
+       NS_CATEGORY_TALK    => "Category_talk"
+);
 
 class Namespace {
 
@@ -34,10 +58,11 @@ class Namespace {
        function getWikipedia() { return NS_WP; }
        function getImage() { return NS_IMAGE; }
        function getMedia() { return NS_MEDIA; }
+       function getCategory() { return NS_CATEGORY; }
 
        function isMovable( $index )
        {
-               if ( $index < NS_MAIN || $index == NS_IMAGE ) { 
+               if ( $index < NS_MAIN || $index == NS_IMAGE  || $index == NS_CATEGORY ) { 
                        return false; 
                }
                return true;
@@ -45,7 +70,10 @@ class Namespace {
 
        function isTalk( $index )
        {
-               if ( NS_TALK == $index || NS_USER_TALK == $index || NS_WP_TALK == $index || NS_IMAGE_TALK == $index || NS_MEDIAWIKI_TALK == $index || NS_TEMPLATE_TALK == $index || NS_HELP_TALK == $index ) {
+               if ( NS_TALK == $index || NS_USER_TALK == $index || NS_WP_TALK
+       == $index || NS_IMAGE_TALK == $index || NS_MEDIAWIKI_TALK == $index ||
+       NS_TEMPLATE_TALK == $index || NS_HELP_TALK == $index ||
+       NS_CATEGORY_TALK == $index ) {
                        return true;
                }
                return false;
@@ -71,6 +99,32 @@ class Namespace {
                        return $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 )
+       {
+               global $wgCanonicalNamespaceNames;
+               static $xNamespaces = false;
+               if ( $xNamespaces === false ) {
+                       $xNamespaces = array();
+                       foreach ( $wgCanonicalNamespaceNames as $i => $text ) {
+                               $xNamespaces[strtolower($text)] = $i;
+                       }
+               }
+               if ( array_key_exists( $name, $xNamespaces ) ) {
+                       return $xNamespaces[$name];
+               } else {
+                       return NULL;
+               }
+       }
 }
 
 ?>