From 6c693d99d9eff466cf922a67b8b6132cd23fb0bb Mon Sep 17 00:00:00 2001 From: Ilmari Karonen Date: Thu, 19 Apr 2007 18:47:04 +0000 Subject: [PATCH] reapply r21363, hopefully without stupid notices this time --- includes/Title.php | 7 +------ languages/Language.php | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/includes/Title.php b/includes/Title.php index d7b29ec34b..531944aae5 100644 --- a/includes/Title.php +++ b/includes/Title.php @@ -1645,12 +1645,7 @@ class Title { $m = array(); if ( preg_match( "/^(.+?)_*:_*(.*)$/S", $dbkey, $m ) ) { $p = $m[1]; - $lowerNs = $wgContLang->lc( $p ); - if ( $ns = Namespace::getCanonicalIndex( $lowerNs ) ) { - # Canonical namespace - $dbkey = $m[2]; - $this->mNamespace = $ns; - } elseif ( $ns = $wgContLang->getNsIndex( $lowerNs )) { + if ( $ns = $wgContLang->getNsIndex( $p )) { # Ordinary namespace $dbkey = $m[2]; $this->mNamespace = $ns; diff --git a/languages/Language.php b/languages/Language.php index 4f217918c6..1eb09b67f2 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -228,7 +228,22 @@ class Language { } /** - * Get a namespace key by value, case insensetive. + * Get a namespace key by value, case insensitive. + * Only matches namespace names for the current language, not the + * canonical ones defined in Namespace.php. + * + * @param string $text + * @return mixed An integer if $text is a valid value otherwise false + */ + function getLocalNsIndex( $text ) { + $this->load(); + $lctext = $this->lc($text); + return isset( $this->mNamespaceIds[$lctext] ) ? $this->mNamespaceIds[$lctext] : false; + } + + /** + * Get a namespace key by value, case insensitive. Canonical namespace + * names override custom ones defined for the current language. * * @param string $text * @return mixed An integer if $text is a valid value otherwise false @@ -236,6 +251,7 @@ class Language { function getNsIndex( $text ) { $this->load(); $lctext = $this->lc($text); + if( ( $ns = Namespace::getCanonicalIndex( $lctext ) ) !== null ) return $ns; return isset( $this->mNamespaceIds[$lctext] ) ? $this->mNamespaceIds[$lctext] : false; } -- 2.20.1