X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FNamespace.php;h=57a712824a43c13e408a0dc7cd4ca9900c1344d6;hb=5194b6033bf1c453170cff4cd6df137cb5f75d7f;hp=43f0d78a3a02efd9dc7edf740298cf895c35ddea;hpb=ba2afcd9fa9b1f3f6a865da054068466164fd2fa;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Namespace.php b/includes/Namespace.php index 43f0d78a3a..57a712824a 100644 --- a/includes/Namespace.php +++ b/includes/Namespace.php @@ -1,15 +1,8 @@ 'Media', NS_SPECIAL => 'Special', - NS_TALK => 'Talk', + NS_TALK => 'Talk', NS_USER => 'User', NS_USER_TALK => 'User_talk', NS_PROJECT => 'Project', @@ -30,12 +23,12 @@ $wgCanonicalNamespaceNames = array( NS_TEMPLATE_TALK => 'Template_talk', NS_HELP => 'Help', NS_HELP_TALK => 'Help_talk', - NS_CATEGORY => 'Category', - NS_CATEGORY_TALK => 'Category_talk' + NS_CATEGORY => 'Category', + NS_CATEGORY_TALK => 'Category_talk', ); -if(isset($wgExtraNamespaces)) { - $wgCanonicalNamespaceNames=$wgCanonicalNamespaceNames+$wgExtraNamespaces; +if( is_array( $wgExtraNamespaces ) ) { + $wgCanonicalNamespaceNames = $wgCanonicalNamespaceNames + $wgExtraNamespaces; } /** @@ -47,72 +40,76 @@ if(isset($wgExtraNamespaces)) { * These are synonyms for the names given in the language file * Users and translators should not change them * - * @package MediaWiki */ + +/* +WARNING: The statement below may fail on some versions of PHP: see bug 12294 +*/ + class Namespace { - /**#@+ - * These functions are deprecated - * @deprecated + /** + * Can pages in the given namespace be moved? + * + * @param int $index Namespace index + * @return bool */ - 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; } - /**#@-*/ + public static function isMovable( $index ) { + return !( $index < NS_MAIN || $index == NS_IMAGE || $index == NS_CATEGORY ); + } /** - * Check if the given namespace might be moved + * Is the given namespace is a subject (non-talk) namespace? + * + * @param int $index Namespace index * @return bool */ - function isMovable( $index ) { - if ( $index < NS_MAIN || $index == NS_IMAGE || $index == NS_CATEGORY ) { - return false; - } - return true; + public static function isMain( $index ) { + return !self::isTalk( $index ); } /** - * Check if the give namespace is a talk page + * Is the given namespace a talk namespace? + * + * @param int $index Namespace index * @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 - || ( (isset($wgExtraNamespaces) && $index % 2) ) - ); - + public static function isTalk( $index ) { + return $index > NS_MAIN + && $index % 2; } /** - * Get the talk namespace corresponding to the given index + * Get the talk namespace index for a given namespace + * + * @param int $index Namespace index + * @return int */ - function getTalk( $index ) { - if ( Namespace::isTalk( $index ) ) { - return $index; - } else { - # FIXME - return $index + 1; - } + public static function getTalk( $index ) { + return self::isTalk( $index ) + ? $index + : $index + 1; } - function getSubject( $index ) { - if ( Namespace::isTalk( $index ) ) { - return $index - 1; - } else { - return $index; - } + /** + * Get the subject namespace index for a given namespace + * + * @param int $index Namespace index + * @return int + */ + public static function getSubject( $index ) { + return self::isTalk( $index ) + ? $index - 1 + : $index; } /** * Returns the canonical (English Wikipedia) name for a given index + * + * @param int $index Namespace index + * @return string */ - function &getCanonicalName( $index ) { + public static function getCanonicalName( $index ) { global $wgCanonicalNamespaceNames; return $wgCanonicalNamespaceNames[$index]; } @@ -120,8 +117,11 @@ class Namespace { /** * Returns the index for a given canonical name, or NULL * The input *must* be converted to lower case first + * + * @param string $name Namespace name + * @return int */ - function &getCanonicalIndex( $name ) { + public static function getCanonicalIndex( $name ) { global $wgCanonicalNamespaceNames; static $xNamespaces = false; if ( $xNamespaces === false ) { @@ -136,7 +136,37 @@ class Namespace { return NULL; } } -} - -} -?> + + /** + * Can this namespace ever have a talk namespace? + * + * @param $index Namespace index + * @return bool + */ + public static function canTalk( $index ) { + return $index >= NS_MAIN; + } + + /** + * Does this namespace contain content, for the purposes + * of calculating statistics, etc? + * + * @param $index Index to check + * @return bool + */ + public static function isContent( $index ) { + global $wgContentNamespaces; + return $index == NS_MAIN || in_array( $index, $wgContentNamespaces ); + } + + /** + * Can pages in a namespace be watched? + * + * @param int $index + * @return bool + */ + public static function isWatchable( $index ) { + return $index >= NS_MAIN; + } + +} \ No newline at end of file