summaryrefslogtreecommitdiff
path: root/includes/Namespace.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/Namespace.php')
-rw-r--r--includes/Namespace.php66
1 files changed, 55 insertions, 11 deletions
diff --git a/includes/Namespace.php b/includes/Namespace.php
index 95c167b2..292559d0 100644
--- a/includes/Namespace.php
+++ b/includes/Namespace.php
@@ -27,7 +27,7 @@ class MWNamespace {
/**
* Throw an exception when trying to get the subject or talk page
* for a given namespace where it does not make sense.
- * Special namespaces are defined in includes/define.php and have
+ * Special namespaces are defined in includes/Defines.php and have
* a value below 0 (ex: NS_SPECIAL = -1 , NS_MEDIA = -2)
*
* @param $index
@@ -36,7 +36,7 @@ class MWNamespace {
* @return true
*/
private static function isMethodValidFor( $index, $method ) {
- if( $index < NS_MAIN ) {
+ if ( $index < NS_MAIN ) {
throw new MWException( "$method does not make any sense for given namespace $index" );
}
return true;
@@ -50,7 +50,7 @@ class MWNamespace {
*/
public static function isMovable( $index ) {
global $wgAllowImageMoving;
- return !( $index < NS_MAIN || ($index == NS_FILE && !$wgAllowImageMoving) || $index == NS_CATEGORY );
+ return !( $index < NS_MAIN || ( $index == NS_FILE && !$wgAllowImageMoving ) || $index == NS_CATEGORY );
}
/**
@@ -58,12 +58,22 @@ class MWNamespace {
*
* @param $index Int: namespace index
* @return bool
+ * @since 1.19
*/
- public static function isMain( $index ) {
+ public static function isSubject( $index ) {
return !self::isTalk( $index );
}
/**
+ * @see self::isSubject
+ * @deprecated Please use the more consistently named isSubject (since 1.19)
+ */
+ public static function isMain( $index ) {
+ wfDeprecated( __METHOD__, '1.19' );
+ return self::isSubject( $index );
+ }
+
+ /**
* Is the given namespace a talk namespace?
*
* @param $index Int: namespace index
@@ -96,7 +106,7 @@ class MWNamespace {
*/
public static function getSubject( $index ) {
# Handle special namespaces
- if( $index < NS_MAIN ) {
+ if ( $index < NS_MAIN ) {
return $index;
}
@@ -116,9 +126,9 @@ class MWNamespace {
public static function getAssociated( $index ) {
self::isMethodValidFor( $index, __METHOD__ );
- if( self::isMain( $index ) ) {
+ if ( self::isSubject( $index ) ) {
return self::getTalk( $index );
- } elseif( self::isTalk( $index ) ) {
+ } elseif ( self::isTalk( $index ) ) {
return self::getSubject( $index );
} else {
return null;
@@ -129,8 +139,9 @@ class MWNamespace {
* Returns whether the specified namespace exists
*
* @param $index
- *
+ *
* @return bool
+ * @since 1.19
*/
public static function exists( $index ) {
$nslist = self::getCanonicalNamespaces();
@@ -138,6 +149,39 @@ class MWNamespace {
}
/**
+ * Returns whether the specified namespaces are the same namespace
+ *
+ * @note It's possible that in the future we may start using something
+ * other than just namespace indexes. Under that circumstance making use
+ * of this function rather than directly doing comparison will make
+ * sure that code will not potentially break.
+ *
+ * @param $ns1 int The first namespace index
+ * @param $ns2 int The second namespae index
+ *
+ * @return bool
+ * @since 1.19
+ */
+ public static function equals( $ns1, $ns2 ) {
+ return $ns1 == $ns2;
+ }
+
+ /**
+ * Returns whether the specified namespaces share the same subject.
+ * eg: NS_USER and NS_USER wil return true, as well
+ * NS_USER and NS_USER_TALK will return true.
+ *
+ * @param $ns1 int The first namespace index
+ * @param $ns2 int The second namespae index
+ *
+ * @return bool
+ * @since 1.19
+ */
+ public static function subjectEquals( $ns1, $ns2 ) {
+ return self::getSubject( $ns1 ) == self::getSubject( $ns2 );
+ }
+
+ /**
* Returns array of all defined namespaces with their canonical
* (English) names.
*
@@ -165,7 +209,7 @@ class MWNamespace {
*/
public static function getCanonicalName( $index ) {
$nslist = self::getCanonicalNamespaces();
- if( isset( $nslist[$index] ) ) {
+ if ( isset( $nslist[$index] ) ) {
return $nslist[$index];
} else {
return false;
@@ -184,7 +228,7 @@ class MWNamespace {
if ( $xNamespaces === false ) {
$xNamespaces = array();
foreach ( self::getCanonicalNamespaces() as $i => $text ) {
- $xNamespaces[strtolower($text)] = $i;
+ $xNamespaces[strtolower( $text )] = $i;
}
}
if ( array_key_exists( $name, $xNamespaces ) ) {
@@ -262,7 +306,7 @@ class MWNamespace {
*/
public static function getContentNamespaces() {
global $wgContentNamespaces;
- if( !is_array( $wgContentNamespaces ) || $wgContentNamespaces === array() ) {
+ if ( !is_array( $wgContentNamespaces ) || $wgContentNamespaces === array() ) {
return NS_MAIN;
} elseif ( !in_array( NS_MAIN, $wgContentNamespaces ) ) {
// always force NS_MAIN to be part of array (to match the algorithm used by isContent)