$useLinkPrefixExtension = $wgContLang->linkPrefixExtension();
- $nottalk = !Namespace::isTalk( $this->mTitle->getNamespace() );
+ if( is_null( $this->mTitle ) ) {
+ wfDebugDieBacktrace( 'nooo' );
+ }
+ $nottalk = !$this->mTitle->isTalkPage();
if ( $useLinkPrefixExtension ) {
if ( preg_match( $e2, $s, $m ) ) {
#if( !$wgOut->isArticle() ) return '';
$t = implode ( ' | ' , $wgOut->mCategoryLinks ) ;
- $s = $this->makeKnownLink( 'Special:Categories',
+ $s = $this->makeKnownLinkObj( Title::makeTitle( NS_SPECIAL, 'Categories' ),
wfMsg( 'categories' ), 'article=' . urlencode( $wgTitle->getPrefixedDBkey() ) )
. ': ' . $t;
}
}
if ( 'history' == $action || isset( $diff ) || isset( $oldid ) ) {
- $s .= ' | ' . $this->makeKnownLink( $wgTitle->getPrefixedText(),
+ $s .= ' | ' . $this->makeKnownLinkObj( $wgTitle,
wfMsg( 'currentrev' ) );
}
if(!(strcmp($wgTitle->getText(),$wgUser->getName()) == 0 &&
$wgTitle->getNamespace()==Namespace::getTalk(Namespace::getUser()))) {
- $n =$wgUser->getName();
- $tl = $this->makeKnownLink( $wgContLang->getNsText(
- Namespace::getTalk( Namespace::getUser() ) ) . ":{$n}",
+ $tl = $this->makeKnownLinkObj( $wgUser->getTalkPage(),
wfMsg('newmessageslink') );
$s.= ' | <strong>'. wfMsg( 'newmessages', $tl ) . '</strong>';
# disable caching
if( $wgShowIPinHeader && isset( $_COOKIE[ini_get('session.name')] ) ) {
$n = $wgIP;
- $tl = $this->makeKnownLink( $wgContLang->getNsText(
- Namespace::getTalk( Namespace::getUser() ) ) . ":{$n}",
- $wgContLang->getNsText( Namespace::getTalk( 0 ) ) );
+ $tl = $this->makeKnownLinkObj( $wgUser->getTalkPage(),
+ $wgContLang->getNsText( NS_TALK ) );
$s .= $n . ' ('.$tl.')';
} else {
$q = '';
} else { $q = "returnto={$rt}"; }
- $s .= "\n<br />" . $this->makeKnownLink( $li,
- wfMsg( 'login' ), $q );
+ $s .= "\n<br />" . $this->makeKnownLinkObj(
+ Title::makeTitle( NS_SPECIAL, 'Userlogin' ),
+ wfMsg( 'login' ), $q );
} else {
$n = $wgUser->getName();
$rt = $wgTitle->getPrefixedURL();
- $tl = $this->makeKnownLink( $wgContLang->getNsText(
- Namespace::getTalk( Namespace::getUser() ) ) . ":{$n}",
- $wgContLang->getNsText( Namespace::getTalk( 0 ) ) );
+ $tl = $this->makeKnownLinkObj( $wgUser->getTalkPage(),
+ $wgContLang->getNsText( NS_TALK ) );
$tl = " ({$tl})";
- $s .= $this->makeKnownLink( $wgContLang->getNsText(
- Namespace::getUser() ) . ":{$n}", $n ) . "{$tl}<br />" .
- $this->makeKnownLink( $lo, wfMsg( 'logout' ),
+ $s .= $this->makeKnownLinkObj( $wgUser->getUserPage(),
+ $n ) . "{$tl}<br />" .
+ $this->makeKnownLinkObj( Title::makeTitle( NS_SPECIAL, 'Userlogout' ), wfMsg( 'logout' ),
"returnto={$rt}" ) . ' | ' .
$this->specialLink( 'preferences' );
}
if ( ! $wgOut->isArticleRelated() ) {
$s = wfMsg( 'protectedpage' );
} else {
- $n = $wgTitle->getPrefixedText();
if ( $wgTitle->userCanEdit() ) {
$t = wfMsg( 'editthispage' );
} else {
- #$t = wfMsg( "protectedpage" );
$t = wfMsg( 'viewsource' );
}
$oid = $red = '';
if ( $oldid && ! isset( $diff ) ) {
$oid = '&oldid='.$oldid;
}
- $s = $this->makeKnownLink( $n, $t, "action=edit{$oid}{$red}" );
+ $s = $this->makeKnownLinkObj( $wgTitle, $t, "action=edit{$oid}{$red}" );
}
return $s;
}
$diff = $wgRequest->getVal( 'diff' );
if ( $wgTitle->getArticleId() && ( ! $diff ) && $wgUser->isAllowed('delete') ) {
- $n = $wgTitle->getPrefixedText();
$t = wfMsg( 'deletethispage' );
- $s = $this->makeKnownLink( $n, $t, 'action=delete' );
+ $s = $this->makeKnownLinkObj( $wgTitle, $t, 'action=delete' );
} else {
$s = '';
}
$diff = $wgRequest->getVal( 'diff' );
if ( $wgTitle->getArticleId() && ( ! $diff ) && $wgUser->isAllowed('protect') ) {
- $n = $wgTitle->getPrefixedText();
-
if ( $wgTitle->isProtected() ) {
$t = wfMsg( 'unprotectthispage' );
$q = 'action=unprotect';
$t = wfMsg( 'protectthispage' );
$q = 'action=protect';
}
- $s = $this->makeKnownLink( $n, $t, $q );
+ $s = $this->makeKnownLinkObj( $wgTitle, $t, $q );
} else {
$s = '';
}
global $wgUser, $wgOut, $wgTitle;
if ( $wgOut->isArticleRelated() ) {
- $n = $wgTitle->getPrefixedText();
-
if ( $wgTitle->userIsWatching() ) {
$t = wfMsg( 'unwatchthispage' );
$q = 'action=unwatch';
$t = wfMsg( 'watchthispage' );
$q = 'action=watch';
}
- $s = $this->makeKnownLink( $n, $t, $q );
+ $s = $this->makeKnownLinkObj( $wgTitle, $t, $q );
} else {
$s = wfMsg( 'notanarticle' );
}
}
function moveThisPage() {
- global $wgTitle, $wgContLang;
+ global $wgTitle;
if ( $wgTitle->userCanMove() ) {
- return $this->makeKnownLink( $wgContLang->specialPage( 'Movepage' ),
+ return $this->makeKnownLinkObj( Title::makeTitle( NS_SPECIAL, 'Movepage' ),
wfMsg( 'movethispage' ), 'target=' . $wgTitle->getPrefixedURL() );
} else {
// no message if page is protected - would be redundant
function historyLink() {
global $wgTitle;
- $s = $this->makeKnownLink( $wgTitle->getPrefixedText(),
+ return $this->makeKnownLinkObj( $wgTitle,
wfMsg( 'history' ), 'action=history' );
- return $s;
}
function whatLinksHere() {
- global $wgTitle, $wgContLang;
+ global $wgTitle;
- $s = $this->makeKnownLink( $wgContLang->specialPage( 'Whatlinkshere' ),
+ return $this->makeKnownLinkObj( Title::makeTitle( NS_SPECIAL, 'Whatlinkshere' ),
wfMsg( 'whatlinkshere' ), 'target=' . $wgTitle->getPrefixedURL() );
- return $s;
}
function userContribsLink() {
- global $wgTitle, $wgContLang;
+ global $wgTitle;
- $s = $this->makeKnownLink( $wgContLang->specialPage( 'Contributions' ),
+ return $this->makeKnownLinkObj( Title::makeTitle( NS_SPECIAL, 'Contributions' ),
wfMsg( 'contributions' ), 'target=' . $wgTitle->getPartialURL() );
- return $s;
}
function showEmailUser( $id ) {
}
function emailUserLink() {
- global $wgTitle, $wgContLang;
+ global $wgTitle;
- $s = $this->makeKnownLink( $wgContLang->specialPage( 'Emailuser' ),
+ return $this->makeKnownLinkObj( Title::makeTitle( NS_SPECIAL, 'Emailuser' ),
wfMsg( 'emailuser' ), 'target=' . $wgTitle->getPartialURL() );
- return $s;
}
function watchPageLinksLink() {
- global $wgOut, $wgTitle, $wgContLang;
+ global $wgOut, $wgTitle;
if ( ! $wgOut->isArticleRelated() ) {
- $s = '(' . wfMsg( 'notanarticle' ) . ')';
+ return '(' . wfMsg( 'notanarticle' ) . ')';
} else {
- $s = $this->makeKnownLink( $wgContLang->specialPage(
+ return $this->makeKnownLinkObj( Title::makeTitle( NS_SPECIAL,
'Recentchangeslinked' ), wfMsg( 'recentchangeslinked' ),
'target=' . $wgTitle->getPrefixedURL() );
}
- return $s;
}
function otherLanguages() {
- global $wgOut, $wgContLang, $wgTitle, $wgUseNewInterlanguage;
+ global $wgOut, $wgContLang, $wgTitle;
$a = $wgOut->getLanguageLinks();
if ( 0 == count( $a ) ) {
- if ( !$wgUseNewInterlanguage ) return '';
- $ns = $wgContLang->getNsIndex ( $wgTitle->getNamespace () ) ;
- if ( $ns != NS_MAIN AND $ns != NS_TALK ) return '' ;
- $pn = 'Intl' ;
- $x = 'mode=addlink&xt='.$wgTitle->getDBkey() ;
- return $this->makeKnownLink( $wgContLang->specialPage( $pn ),
- wfMsg( 'intl' ) , $x );
- }
-
- if ( !$wgUseNewInterlanguage ) {
- $s = wfMsg( 'otherlanguages' ) . ': ';
- } else {
- global $wgContLanguageCode ;
- $x = 'mode=zoom&xt='.$wgTitle->getDBkey() ;
- $x .= '&xl='.$wgContLanguageCode ;
- $s = $this->makeKnownLink( $wgContLang->specialPage( 'Intl' ),
- wfMsg( 'otherlanguages' ) , $x ) . ': ' ;
- }
+ return '';
+ }
$s = wfMsg( 'otherlanguages' ) . ': ';
$first = true;
$first = false;
$nt = Title::newFromText( $l );
- $url = $nt->getFullURL();
+ $url = $nt->escapeFullURL();
$text = $wgContLang->getLanguageName( $nt->getInterwiki() );
if ( '' == $text ) { $text = $l; }
}
function talkLink() {
- global $wgContLang, $wgTitle, $wgLinkCache;
+ global $wgTitle, $wgLinkCache;
- $tns = $wgTitle->getNamespace();
- if ( -1 == $tns ) { return ''; }
+ if ( NS_SPECIAL == $wgTitle->getNamespace() ) {
+ # No discussion links for special pages
+ return '';
+ }
- $pn = $wgTitle->getText();
- $tp = wfMsg( 'talkpage' );
- if ( Namespace::isTalk( $tns ) ) {
- $lns = Namespace::getSubject( $tns );
- switch($tns) {
- case 1:
+ if( $wgTitle->isTalkPage() ) {
+ $link = $wgTitle->getSubjectPage();
+ switch( $link->getNamespace() ) {
+ case NS_MAIN:
$text = wfMsg('articlepage');
break;
- case 3:
+ case NS_USER:
$text = wfMsg('userpage');
break;
- case 5:
+ case NS_PROJECT:
$text = wfMsg('wikipediapage');
break;
- case 7:
+ case NS_IMAGE:
$text = wfMsg('imagepage');
break;
- default:
+ default:
$text= wfMsg('articlepage');
}
} else {
-
- $lns = Namespace::getTalk( $tns );
- $text=$tp;
+ $link = $wgTitle->getTalkPage();
+ $text = wfMsg( 'talkpage' );
}
- $n = $wgContLang->getNsText( $lns );
- if ( '' == $n ) { $link = $pn; }
- else { $link = $n.':'.$pn; }
$wgLinkCache->suspend();
- $s = $this->makeLink( $link, $text );
+ $s = $this->makeLinkObj( $link, $text );
$wgLinkCache->resume();
return $s;
function commentLink() {
global $wgContLang, $wgTitle, $wgLinkCache;
- $tns = $wgTitle->getNamespace();
- if ( -1 == $tns ) { return ''; }
-
- $lns = ( Namespace::isTalk( $tns ) ) ? $tns : Namespace::getTalk( $tns );
-
- # assert Namespace::isTalk( $lns )
-
- $n = $wgContLang->getNsText( $lns );
- $pn = $wgTitle->getText();
-
- $link = $n.':'.$pn;
-
- $wgLinkCache->suspend();
- $s = $this->makeKnownLink($link, wfMsg('postcomment'), 'action=edit§ion=new');
- $wgLinkCache->resume();
-
- return $s;
+ if ( $wgTitle->getNamespace() == NS_SPECIAL ) {
+ return '';
+ }
+ return $this->makeKnownLinkObj( $wgTitle->getTalkPage(),
+ wfMsg( 'postcomment' ), 'action=edit§ion=new' );
}
/* these are used extensively in SkinPHPTal, but also some other places */
/*static*/ function makeSpecialUrl( $name, $urlaction='' ) {
$title = Title::makeTitle( NS_SPECIAL, $name );
- $this->checkTitle($title, $name);
- return $title->getLocalURL( $urlaction );
- }
- /*static*/ function makeTalkUrl ( $name, $urlaction='' ) {
- $title = Title::newFromText( $name );
- $title = $title->getTalkPage();
- $this->checkTitle($title, $name);
- return $title->getLocalURL( $urlaction );
- }
- /*static*/ function makeArticleUrl ( $name, $urlaction='' ) {
- $title = Title::newFromText( $name );
- $this->checkTitle($title, $name);
- $title= $title->getSubjectPage();
- $this->checkTitle($title, $name);
return $title->getLocalURL( $urlaction );
}
+
/*static*/ function makeI18nUrl ( $name, $urlaction='' ) {
$title = Title::newFromText( wfMsgForContent($name) );
$this->checkTitle($title, $name);
return $title->getLocalURL( $urlaction );
}
+
/*static*/ function makeUrl ( $name, $urlaction='' ) {
$title = Title::newFromText( $name );
$this->checkTitle($title, $name);
'exists' => $title->getArticleID() != 0?true:false
);
}
- /*static*/ function makeTalkUrlDetails ( $name, $urlaction='' ) {
- $title = Title::newFromText( $name );
- $title = $title->getTalkPage();
- $this->checkTitle($title, $name);
- return array(
- 'href' => $title->getLocalURL( $urlaction ),
- 'exists' => $title->getArticleID() != 0?true:false
- );
- }
- /*static*/ function makeArticleUrlDetails ( $name, $urlaction='' ) {
- $title = Title::newFromText( $name );
- $title= $title->getSubjectPage();
- $this->checkTitle($title, $name);
- return array(
- 'href' => $title->getLocalURL( $urlaction ),
- 'exists' => $title->getArticleID() != 0?true:false
- );
- }
- /*static*/ function makeI18nUrlDetails ( $name, $urlaction='' ) {
- $title = Title::newFromText( wfMsgForContent($name) );
- $this->checkTitle($title, $name);
- return array(
- 'href' => $title->getLocalURL( $urlaction ),
- 'exists' => $title->getArticleID() != 0?true:false
- );
- }
# make sure we have some title to operate on
/*static*/ function checkTitle ( &$title, &$name ) {
wfProfileIn( "$fname-init" );
$this->initPage( $out );
+
+ $this->mTitle = $wgTitle;
+ $this->mUser =& $wgUser;
+
$tpl =& $this->setupTemplate( $this->template, 'skins' );
#if ( $wgUseDatabaseMessages ) { // uncomment this to fall back to GetText
wfProfileOut( "$fname-init" );
wfProfileIn( "$fname-stuff" );
- $this->thispage = $wgTitle->getPrefixedDbKey();
- $this->thisurl = $wgTitle->getPrefixedURL();
+ $this->thispage = $this->mTitle->getPrefixedDbKey();
+ $this->thisurl = $this->mTitle->getPrefixedURL();
$this->loggedin = $wgUser->getID() != 0;
- $this->iscontent = ($wgTitle->getNamespace() != Namespace::getSpecial() );
+ $this->iscontent = ($this->mTitle->getNamespace() != Namespace::getSpecial() );
$this->iseditable = ($this->iscontent and !($action == 'edit' or $action == 'submit'));
$this->username = $wgUser->getName();
$this->userpage = $wgContLang->getNsText( Namespace::getUser() ) . ":" . $wgUser->getName();
$this->usercss = $this->userjs = $this->userjsprev = false;
$this->setupUserCss();
$this->setupUserJs();
- $this->titletxt = $wgTitle->getPrefixedText();
+ $this->titletxt = $this->mTitle->getPrefixedText();
wfProfileOut( "$fname-stuff" );
wfProfileIn( "$fname-stuff2" );
$tpl->setRef( 'skinname', $this->skinname );
$tpl->setRef( 'stylename', $this->stylename );
$tpl->setRef( 'loggedin', $this->loggedin );
- $tpl->set('nsclass', 'ns-'.$wgTitle->getNamespace());
- $tpl->set('notspecialpage', $wgTitle->getNamespace() != NS_SPECIAL);
+ $tpl->set('nsclass', 'ns-'.$this->mTitle->getNamespace());
+ $tpl->set('notspecialpage', $this->mTitle->getNamespace() != NS_SPECIAL);
/* XXX currently unused, might get useful later
- $tpl->set( "editable", ($wgTitle->getNamespace() != NS_SPECIAL ) );
- $tpl->set( "exists", $wgTitle->getArticleID() != 0 );
- $tpl->set( "watch", $wgTitle->userIsWatching() ? "unwatch" : "watch" );
- $tpl->set( "protect", count($wgTitle->isProtected()) ? "unprotect" : "protect" );
+ $tpl->set( "editable", ($this->mTitle->getNamespace() != NS_SPECIAL ) );
+ $tpl->set( "exists", $this->mTitle->getArticleID() != 0 );
+ $tpl->set( "watch", $this->mTitle->userIsWatching() ? "unwatch" : "watch" );
+ $tpl->set( "protect", count($this->mTitle->isProtected()) ? "unprotect" : "protect" );
$tpl->set( "helppage", wfMsg('helppage'));
*/
$tpl->set( 'searchaction', $this->escapeSearchLink() );
$tpl->set('jsvarurl', false);
}
if( $wgUser->getNewtalk() ) {
- $usertitle = Title::newFromText( $this->userpage );
+ $usertitle = $this->mUser->getUserPage();
$usertalktitle = $usertitle->getTalkPage();
- if($usertalktitle->getPrefixedDbKey() != $this->thispage){
-
+ if( !$usertalktitle->equals( $this->mTitle ) ) {
$ntl = wfMsg( 'newmessages',
- $this->makeKnownLink(
- $wgContLang->getNsText( Namespace::getTalk( Namespace::getUser() ) )
- . ':' . $this->username,
- wfMsg('newmessageslink') )
+ $this->makeKnownLinkObj(
+ $usertalktitle,
+ wfMsg('newmessageslink')
+ )
);
# Disable Cache
$wgOut->setSquidMaxage(0);
$dbr =& wfGetDB( DB_SLAVE );
extract( $dbr->tableNames( 'watchlist' ) );
$sql = "SELECT COUNT(*) AS n FROM $watchlist
- WHERE wl_title='" . $dbr->strencode($wgTitle->getDBKey()) .
- "' AND wl_namespace=" . $wgTitle->getNamespace() ;
+ WHERE wl_title='" . $dbr->strencode($this->mTitle->getDBKey()) .
+ "' AND wl_namespace=" . $this->mTitle->getNamespace() ;
$res = $dbr->query( $sql, 'SkinPHPTal::outputPage');
$x = $dbr->fetchObject( $res );
$numberofwatchingusers = $x->n;
return $personal_urls;
}
+
+ function tabAction( &$title, $message, $selected, $query='', $checkEdit=false ) {
+ $classes = array();
+ if( $selected ) {
+ $classes[] = 'selected';
+ }
+ if( $checkEdit && $title->getArticleId() == 0 ) {
+ $classes[] = 'new';
+ }
+ return array(
+ 'class' => implode( ' ', $classes ),
+ 'text' => wfMsg( $message ),
+ 'href' => $title->getLocalUrl( $query ) );
+ }
+
/**
* an array of edit links by default used for the tabs
* @return array
$fname = 'SkinTemplate::buildContentActionUrls';
wfProfileIn( $fname );
- global $wgTitle, $wgUser, $wgRequest;
+ global $wgUser, $wgRequest;
$action = $wgRequest->getText( 'action' );
$section = $wgRequest->getText( 'section' );
$oldid = $wgRequest->getVal( 'oldid' );
if( $this->iscontent ) {
$nskey = $this->getNameSpaceKey();
- $is_active = !Namespace::isTalk( $wgTitle->getNamespace()) ;
-
- $subjectTitle = $wgTitle->getSubjectPage();
- if( $subjectTitle->getArticleId() != 0 ) {
- $class = ($is_active) ? 'selected' : false;
- } else {
- $class = ($is_active) ? 'selected new' : 'new';
- }
- $content_actions[$nskey] = array('class' => $class,
- 'text' => wfMsg($nskey),
- 'href' => $this->makeArticleUrl($this->thispage));
-
- /* set up the classes for the talk link */
- wfProfileIn( "$fname-talk" );
- $talk_class = (Namespace::isTalk( $wgTitle->getNamespace()) ? 'selected' : false);
- $talktitle = $wgTitle->getTalkPage();
- if( $talktitle->getArticleId() != 0 ) {
- $content_actions['talk'] = array(
- 'class' => $talk_class,
- 'text' => wfMsg('talk'),
- 'href' => $talktitle->getLocalUrl()
- );
- } else {
- $content_actions['talk'] = array(
- 'class' => $talk_class ? $talk_class.' new' : 'new',
- 'text' => wfMsg('talk'),
- 'href' => $talktitle->getLocalUrl( 'action=edit' )
- );
- }
- wfProfileOut( "$fname-talk" );
-
+ $content_actions[$nskey] = $this->tabAction(
+ $this->mTitle->getSubjectPage(),
+ $nskey,
+ !$this->mTitle->isTalkPage() );
+
+ $content_actions['talk'] = $this->tabAction(
+ $this->mTitle->getTalkPage(),
+ 'talk',
+ $this->mTitle->isTalkPage(),
+ '',
+ true);
+
wfProfileIn( "$fname-edit" );
- if ( $wgTitle->userCanEdit() ) {
+ if ( $this->mTitle->userCanEdit() ) {
$oid = ( $oldid && ! isset( $diff ) ) ? '&oldid='.IntVal( $oldid ) : false;
- $istalk = ( Namespace::isTalk( $wgTitle->getNamespace()) );
+ $istalk = $this->mTitle->isTalkPage();
$istalkclass = $istalk?' istalk':'';
$content_actions['edit'] = array(
'class' => ((($action == 'edit' or $action == 'submit') and $section != 'new') ? 'selected' : '').$istalkclass,
'text' => wfMsg('edit'),
- 'href' => $wgTitle->getLocalUrl( 'action=edit'.$oid )
+ 'href' => $this->mTitle->getLocalUrl( 'action=edit'.$oid )
);
+
if ( $istalk ) {
$content_actions['addsection'] = array(
'class' => $section == 'new'?'selected':false,
'text' => wfMsg('addsection'),
- 'href' => $wgTitle->getLocalUrl( 'action=edit§ion=new' )
+ 'href' => $this->mTitle->getLocalUrl( 'action=edit§ion=new' )
);
}
} else {
$content_actions['viewsource'] = array(
'class' => ($action == 'edit') ? 'selected' : false,
'text' => wfMsg('viewsource'),
- 'href' => $wgTitle->getLocalUrl( 'action=edit'.$oid )
+ 'href' => $this->mTitle->getLocalUrl( 'action=edit'.$oid )
);
}
wfProfileOut( "$fname-edit" );
wfProfileIn( "$fname-live" );
- if ( $wgTitle->getArticleId() ) {
+ if ( $this->mTitle->getArticleId() ) {
$content_actions['history'] = array(
'class' => ($action == 'history') ? 'selected' : false,
'text' => wfMsg('history_short'),
- 'href' => $wgTitle->getLocalUrl( 'action=history')
+ 'href' => $this->mTitle->getLocalUrl( 'action=history')
);
- # XXX: is there a rollback action anywhere or is it planned?
- # Don't recall where i got this from...
- /*if( $wgUser->getNewtalk() ) {
- $content_actions['rollback'] = array('class' => ($action == 'rollback') ? 'selected' : false,
- 'text' => wfMsg('rollback_short'),
- 'href' => $this->makeUrl($this->thispage, 'action=rollback'),
- 'ttip' => wfMsg('tooltip-rollback'),
- 'akey' => wfMsg('accesskey-rollback'));
- }
- */
-
if($wgUser->isAllowed('protect')){
- if(!$wgTitle->isProtected()){
+ if(!$this->mTitle->isProtected()){
$content_actions['protect'] = array(
'class' => ($action == 'protect') ? 'selected' : false,
'text' => wfMsg('protect'),
- 'href' => $wgTitle->getLocalUrl( 'action=protect' )
+ 'href' => $this->mTitle->getLocalUrl( 'action=protect' )
);
} else {
$content_actions['unprotect'] = array(
'class' => ($action == 'unprotect') ? 'selected' : false,
'text' => wfMsg('unprotect'),
- 'href' => $wgTitle->getLocalUrl( 'action=unprotect' )
+ 'href' => $this->mTitle->getLocalUrl( 'action=unprotect' )
);
}
}
$content_actions['delete'] = array(
'class' => ($action == 'delete') ? 'selected' : false,
'text' => wfMsg('delete'),
- 'href' => $wgTitle->getLocalUrl( 'action=delete' )
+ 'href' => $this->mTitle->getLocalUrl( 'action=delete' )
);
}
if ( $wgUser->getID() != 0 ) {
- if ( $wgTitle->userCanMove()) {
+ if ( $this->mTitle->userCanMove()) {
$content_actions['move'] = array(
- 'class' => ($wgTitle->getDbKey() == 'Movepage' and $wgTitle->getNamespace == Namespace::getSpecial()) ? 'selected' : false,
+ 'class' => ($this->mTitle->getDbKey() == 'Movepage' and $this->mTitle->getNamespace == Namespace::getSpecial()) ? 'selected' : false,
'text' => wfMsg('move'),
'href' => $this->makeSpecialUrl('Movepage', 'target='. urlencode( $this->thispage ) )
);
} else {
//article doesn't exist or is deleted
if($wgUser->isAllowed('delete')){
- if( $n = $wgTitle->isDeleted() ) {
+ if( $n = $this->mTitle->isDeleted() ) {
$content_actions['undelete'] = array(
'class' => false,
'text' => wfMsg( "undelete_short", $n ),
wfProfileOut( "$fname-live" );
if ( $wgUser->getID() != 0 and $action != 'submit' ) {
- if( !$wgTitle->userIsWatching()) {
+ if( !$this->mTitle->userIsWatching()) {
$content_actions['watch'] = array(
'class' => ($action == 'watch' or $action == 'unwatch') ? 'selected' : false,
'text' => wfMsg('watch'),
- 'href' => $wgTitle->getLocalUrl( 'action=watch' )
+ 'href' => $this->mTitle->getLocalUrl( 'action=watch' )
);
} else {
$content_actions['unwatch'] = array(
'class' => ($action == 'unwatch' or $action == 'watch') ? 'selected' : false,
'text' => wfMsg('unwatch'),
- 'href' => $wgTitle->getLocalUrl( 'action=unwatch' )
+ 'href' => $this->mTitle->getLocalUrl( 'action=unwatch' )
);
}
}
$content_actions['varlang-' . $vcount] = array(
'class' => $selected,
'text' => $varname,
- 'href' => $wgTitle->getLocalUrl( $actstr . 'variant=' . $code )
+ 'href' => $this->mTitle->getLocalUrl( $actstr . 'variant=' . $code )
);
$vcount ++;
}
$fname = 'SkinTemplate::buildNavUrls';
wfProfileIn( $fname );
- global $wgTitle, $wgUser, $wgRequest;
+ global $wgUser, $wgRequest;
global $wgSiteSupportPage, $wgDisableUploads;
$action = $wgRequest->getText( 'action' );
}
$nav_urls['specialpages'] = array('href' => $this->makeSpecialUrl('Specialpages'));
- if( $wgTitle->getNamespace() != NS_SPECIAL) {
+ if( $this->mTitle->getNamespace() != NS_SPECIAL) {
$nav_urls['whatlinkshere'] = array('href' => $this->makeSpecialUrl('Whatlinkshere', 'target='.urlencode( $this->thispage)));
$nav_urls['recentchangeslinked'] = array('href' => $this->makeSpecialUrl('Recentchangeslinked', 'target='.urlencode( $this->thispage)));
}
- if( $wgTitle->getNamespace() == NS_USER || $wgTitle->getNamespace() == NS_USER_TALK ) {
- $id = User::idFromName($wgTitle->getText());
- $ip = User::isIP($wgTitle->getText());
+ if( $this->mTitle->getNamespace() == NS_USER || $this->mTitle->getNamespace() == NS_USER_TALK ) {
+ $id = User::idFromName($this->mTitle->getText());
+ $ip = User::isIP($this->mTitle->getText());
} else {
$id = 0;
$ip = false;
if($id || $ip) { # both anons and non-anons have contri list
$nav_urls['contributions'] = array(
- 'href' => $this->makeSpecialUrl('Contributions', "target=" . $wgTitle->getPartialURL() )
+ 'href' => $this->makeSpecialUrl('Contributions', "target=" . $this->mTitle->getPartialURL() )
);
} else {
$nav_urls['contributions'] = false;
$nav_urls['emailuser'] = false;
if( $this->showEmailUser( $id ) ) {
$nav_urls['emailuser'] = array(
- 'href' => $this->makeSpecialUrl('Emailuser', "target=" . $wgTitle->getPartialURL() )
+ 'href' => $this->makeSpecialUrl('Emailuser', "target=" . $this->mTitle->getPartialURL() )
);
}
wfProfileOut( $fname );
* @private
*/
function getNameSpaceKey () {
- global $wgTitle;
- switch ($wgTitle->getNamespace()) {
+ switch ($this->mTitle->getNamespace()) {
case NS_MAIN:
case NS_TALK:
return 'nstab-main';
$fname = 'SkinTemplate::setupUserCss';
wfProfileIn( $fname );
- global $wgRequest, $wgTitle, $wgAllowUserCss, $wgUseSiteCss, $wgContLang, $wgSquidMaxage, $wgStylePath, $wgUser;
+ global $wgRequest, $wgAllowUserCss, $wgUseSiteCss, $wgContLang, $wgSquidMaxage, $wgStylePath, $wgUser;
$sitecss = '';
$usercss = '';
$action = $wgRequest->getText('action');
# if we're previewing the CSS page, use it
- if( $wgTitle->isCssSubpage() and $this->userCanPreview( $action ) ) {
+ if( $this->mTitle->isCssSubpage() and $this->userCanPreview( $action ) ) {
$siteargs = "&smaxage=0&maxage=0";
$usercss = $wgRequest->getText('wpTextbox1');
} else {
$fname = 'SkinTemplate::setupUserJs';
wfProfileIn( $fname );
- global $wgRequest, $wgTitle, $wgAllowUserJs;
+ global $wgRequest, $wgAllowUserJs;
$action = $wgRequest->getText('action');
if( $wgAllowUserJs && $this->loggedin ) {
- if( $wgTitle->isJsSubpage() and $this->userCanPreview( $action ) ) {
+ if( $this->mTitle->isJsSubpage() and $this->userCanPreview( $action ) ) {
# XXX: additional security check/prompt?
$this->userjsprev = '/*<![CDATA[*/ ' . $wgRequest->getText('wpTextbox1') . ' /*]]>*/';
} else {
$fname = 'Title::newFromText';
wfProfileIn( $fname );
+ if( is_object( $text ) ) {
+ wfDebugDieBacktrace( 'Title::newFromText given an object' );
+ }
+
/**
* Wiki pages often contain multiple links to the same page.
* Title normalization and parsing can become expensive on
}
return false;
}
+
+ /**
+ * Is this a talk page of some sort?
+ * @return bool
+ * @access public
+ */
+ function isTalkPage() {
+ return Namespace::isTalk( $this->getNamespace() );
+ }
/**
* Is this a .css or .js subpage of a user page?
'rev_page=' . IntVal( $this->getArticleId() ) .
' AND rev_id>' . IntVal( $revision ) . ' ORDER BY rev_id' );
}
+
+ /**
+ * Compare with another title.
+ *
+ * @param Title $title
+ * @return bool
+ */
+ function equals( &$title ) {
+ return $this->getInterwiki() == $title->getInterwiki()
+ && $this->getNamespace() == $title->getNamespace()
+ && $this->getDbkey() == $title->getDbkey();
+ }
}
?>
\ No newline at end of file
return wfSetVar( $this->mDataLoaded, $loaded );
}
+ /**
+ * Get this user's personal page title.
+ *
+ * @return Title
+ * @access public
+ */
function getUserPage() {
return Title::makeTitle( NS_USER, $this->mName );
}
+
+ /**
+ * Get this user's talk page title.
+ *
+ * @return Title
+ * @access public
+ */
+ function getTalkPage() {
+ $title = $this->getUserPage();
+ return $title->getTalkPage();
+ }
/**
* @static