Adding {{ROOTPAGENAME}} (and {{ROOTPAGENAMEE}}) variables for accessing the page...
authorMisza13 <misza13@users.mediawiki.org>
Sat, 2 Feb 2008 00:56:41 +0000 (00:56 +0000)
committerMisza13 <misza13@users.mediawiki.org>
Sat, 2 Feb 2008 00:56:41 +0000 (00:56 +0000)
Also adding {{PARENTPAGENAME}} as an alias for {{BASEPAGENAME}}.

includes/MagicWord.php
includes/Parser.php
includes/Parser_OldPP.php
includes/Title.php
languages/messages/MessagesEn.php

index 18c931c..3f208ea 100644 (file)
@@ -91,6 +91,10 @@ class MagicWord {
                'currentversion',
                'basepagename',
                'basepagenamee',
+               'parentpagename',
+               'parentpagenamee',
+               'rootpagename',
+               'rootpagenamee',
                'urlencode',
                'currenttimestamp',
                'localtimestamp',
index 418792a..75050c9 100644 (file)
@@ -2454,6 +2454,14 @@ class Parser
                                return wfEscapeWikiText( $this->mTitle->getBaseText() );
                        case 'basepagenamee':
                                return wfUrlEncode( str_replace( ' ', '_', $this->mTitle->getBaseText() ) );
+                       case 'parentpagename':
+                               return wfEscapeWikiText( $this->mTitle->getBaseText() );
+                       case 'parentpagenamee':
+                               return wfUrlEncode( str_replace( ' ', '_', $this->mTitle->getBaseText() ) );
+                       case 'rootpagename':
+                               return wfEscapeWikiText( $this->mTitle->getRootText() );
+                       case 'rootpagenamee':
+                               return wfUrlEncode( str_replace( ' ', '_', $this->mTitle->getRootText() ) );
                        case 'talkpagename':
                                if( $this->mTitle->canTalk() ) {
                                        $talkPage = $this->mTitle->getTalkPage();
index c10de25..685336c 100644 (file)
@@ -2453,7 +2453,15 @@ class Parser_OldPP
                        case 'basepagename':
                                return wfEscapeWikiText( $this->mTitle->getBaseText() );
                        case 'basepagenamee':
+                return wfUrlEncode( str_replace( ' ', '_', $this->mTitle->getBaseText() ) );
+                       case 'parentpagename':
+                               return wfEscapeWikiText( $this->mTitle->getBaseText() );
+                       case 'parentpagenamee':
                                return wfUrlEncode( str_replace( ' ', '_', $this->mTitle->getBaseText() ) );
+                       case 'rootpagename':
+                               return wfEscapeWikiText( $this->mTitle->getRootText() );
+                       case 'rootpagenamee':
+                               return wfUrlEncode( str_replace( ' ', '_', $this->mTitle->getRootText() ) );
                        case 'talkpagename':
                                if( $this->mTitle->canTalk() ) {
                                        $talkPage = $this->mTitle->getTalkPage();
index b858b26..9cf3bb0 100644 (file)
@@ -682,7 +682,21 @@ class Title {
                } else {
                        return $this->getText();
                }
-       }
+    }
+
+       /**
+        * Get the root name, i.e. the leftmost part before the first /
+        * @return string Root name
+        */
+       public function getRootText() {
+               global $wgNamespacesWithSubpages;
+               if( !empty( $wgNamespacesWithSubpages[$this->mNamespace] ) ) {
+                       $parts = explode( '/', $this->getText() );
+                       return $parts[0];
+               } else {
+                       return $this->getText();
+               }
+    }
 
        /**
         * Get the lowest-level subpage name, i.e. the rightmost part after /
index c4ad9b7..92e8fbf 100644 (file)
@@ -261,6 +261,10 @@ $magicWords = array(
        'subpagenamee'           => array( 1,    'SUBPAGENAMEE'           ),
        'basepagename'           => array( 1,    'BASEPAGENAME'           ),
        'basepagenamee'          => array( 1,    'BASEPAGENAMEE'          ),
+       'parentpagename'         => array( 1,    'PARENTPAGENAME'         ),
+       'parentpagenamee'        => array( 1,    'PARENTPAGENAMEE'        ),
+       'rootpagename'           => array( 1,    'ROOTPAGENAME'           ),
+       'rootpagenamee'          => array( 1,    'ROOTPAGENAMEE'          ),
        'talkpagename'           => array( 1,    'TALKPAGENAME'           ),
        'talkpagenamee'          => array( 1,    'TALKPAGENAMEE'          ),
        'subjectpagename'        => array( 1,    'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),