Also adding {{PARENTPAGENAME}} as an alias for {{BASEPAGENAME}}.
'currentversion',
'basepagename',
'basepagenamee',
+ 'parentpagename',
+ 'parentpagenamee',
+ 'rootpagename',
+ 'rootpagenamee',
'urlencode',
'currenttimestamp',
'localtimestamp',
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();
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();
} 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 /
'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' ),