{
var $_context = array();
- function set($varName, $value)
- {
+ function set($varName, $value) {
$this->_context[$varName] = $value;
}
- function translate($value)
- {
+ function translate($value) {
$value = wfMsg( $value );
-
// interpolate variables
while (preg_match('/\$([0-9]*?)/sm', $value, $m)) {
list($src, $var) = $m;
- $varValue = $this->_context[$var];
+ $varValue = @$this->_context[$var];
$value = str_replace($src, $varValue, $value);
}
return $value;
function outputPage( &$out ) {
global $wgTitle, $wgArticle, $wgUser, $wgLang, $wgOut;
- global $wgScript, $wgStyleSheetPath, $wgLanguageCode, $wgUseNewInterlanguage;
+ global $wgScript, $wgStylePath, $wgLanguageCode, $wgUseNewInterlanguage;
global $wgMimeType, $wgOutputEncoding, $wgUseDatabaseMessages, $wgRequest;
global $wgDisableCounters, $wgLogo, $action, $wgFeedClasses;
extract( $wgRequest->getValues( 'oldid', 'diff' ) );
+ $this->initPage( $out );
+ $tpl = new PHPTAL($this->template . '.pt', 'templates');
+
+ #if ( $wgUseDatabaseMessages ) { // uncomment this to fall back to GetText
+ $tpl->setTranslator(new MediaWiki_I18N());
+ #}
+
$this->thispage = $wgTitle->getPrefixedDbKey();
$this->thisurl = $wgTitle->getPrefixedURL();
- $this->thisurle = urlencode($this->thisurl);
$this->loggedin = $wgUser->getID() != 0;
$this->username = $wgUser->getName();
$this->userpage = $wgLang->getNsText( Namespace::getUser() ) . ":" . $wgUser->getName();
- $this->titletxt = $wgTitle->getPrefixedText();
+ $this->userpageurl = $this->makeUrl($this->userpage);
- $this->initPage( $out );
- $tpl = new PHPTAL($this->template . '.pt', 'templates');
+ if( $this->loggedin ) {
+ $this->usercss = $this->makeUrl($this->userpage.'/'.$this->skinname.'.css', 'action=raw&ctype=text/css');
+ $this->usercsse = htmlspecialchars($this->usercss);
+ $this->userjs = $this->makeUrl($this->userpage.'/'.$this->skinname.'.js', 'action=raw&ctype=text/javascript');
+ $this->userjse = htmlspecialchars($this->userjs);
+ } else {
+ $this->usercss = $this->usercsse = $this->userjs = $this->userjse = false;
+ }
+ $this->titletxt = $wgTitle->getPrefixedText();
- #if ( $wgUseDatabaseMessages ) { // uncomment this to fall back to GetText
- $tpl->setTranslator(new MediaWiki_I18N());
- #}
-
$tpl->set( "title", $wgOut->getPageTitle() );
$tpl->set( "pagetitle", $wgOut->getHTMLTitle() );
$tpl->setRef( "thispage", &$this->thispage );
- $tpl->set( "subtitle", $out->getSubtitle() );
- $tpl->set( 'catlinks', getCategories());
+ $subpagestr = $this->subPageSubtitle();
+ $tpl->set(
+ "subtitle", !empty($subpagestr)?
+ '<span class="subpages">'.$subpagestr.'</span>'.$out->getSubtitle():
+ $out->getSubtitle()
+ );
+ $tpl->set( 'catlinks', $this->getCategories());
if( $wgOut->isSyndicated() ) {
$feeds = array();
foreach( $wgFeedClasses as $format => $class ) {
$tpl->set( "sysop", $wgUser->isSysop() );
*/
$tpl->set( "searchaction", $this->escapeSearchLink() );
- $tpl->setRef( "stylepath", &$wgStyleSheetPath );
+ $tpl->setRef( "stylepath", &$wgStylePath );
$tpl->setRef( "logopath", &$wgLogo );
$tpl->setRef( "lang", &$wgLanguageCode );
+ $tpl->set( "dir", $wgLang->isRTL() ? "rtl" : "ltr" );
+ $tpl->set( "rtl", $wgLang->isRTL() );
$tpl->set( "langname", $wgLang->getLanguageName( $wgLanguageCode ) );
$tpl->setRef( "username", &$this->username );
$tpl->setRef( "userpage", &$this->userpage);
+ $tpl->setRef( "userpageurl", &$this->userpageurl);
+ $tpl->setRef( "usercss", &$this->usercss);
+ $tpl->setRef( "usercsse", &$this->usercsse);
+ $tpl->setRef( "userjs", &$this->userjs);
+ $tpl->setRef( "userjse", &$this->userjse);
if( $wgUser->getNewtalk() ) {
$usertitle = Title::newFromText( $this->userpage );
$usertalktitle = $usertitle->getTalkPage();
if ($this->loggedin) {
$personal_urls['userpage'] = array(
'text' => $this->username,
- 'href' => $this->makeUrl($this->userpage),
+ 'href' => &$this->userpageurl,
'ttip' => wfMsg('tooltip-userpage'),
'akey' => wfMsg('accesskey-userpage')
);
);
$personal_urls['logout'] = array(
'text' => wfMsg('userlogout'),
- 'href' => $this->makeSpecialUrl('Userlogout','returnpage=' . $this->thisurle),
+ 'href' => $this->makeSpecialUrl('Userlogout','returnto=' . $this->thisurl),
'ttip' => wfMsg('tooltip-logout'),
'akey' => wfMsg('accesskey-logout')
);
);
$personal_urls['anonlogin'] = array(
'text' => wfMsg('userlogin'),
- 'href' => $this->makeSpecialUrl('Userlogin', 'return='.$this->thisurle),
+ 'href' => $this->makeSpecialUrl('Userlogin', 'returnto='.$this->thisurl),
'ttip' => wfMsg('tooltip-login'),
'akey' => wfMsg('accesskey-login')
);
$personal_urls['login'] = array(
'text' => wfMsg('userlogin'),
- 'href' => $this->makeSpecialUrl('Userlogin', 'return='.$this->thisurle),
+ 'href' => $this->makeSpecialUrl('Userlogin', 'returnto='.$this->thisurl),
'ttip' => wfMsg('tooltip-login'),
'akey' => wfMsg('accesskey-login')
);
);
} else {
$content_actions['talk'] = array(
- 'class' => $talk_class.' new',
+ 'class' => $talk_class?$talk_class.' new':'new',
'text' => wfMsg('talk'),
'href' => $this->makeTalkUrl($this->titletxt,'action=edit'),
'ttip' => wfMsg('tooltip-talk'),
$nav_urls['randompage'] = array('href' => htmlspecialchars( $this->makeSpecialUrl('Randompage')));
$nav_urls['recentchanges'] = array('href' => htmlspecialchars( $this->makeSpecialUrl('Recentchanges')));
$nav_urls['whatlinkshere'] = array('href' => htmlspecialchars( $this->makeSpecialUrl('Whatlinkshere', 'target='.$this->thispage)));
- $nav_urls['currentevents'] = (wfMsg('currentevents') != '') ? array('href' => htmlspecialchars( $this->makeI18nUrl('currentevents'))) : '';
- $nav_urls['portal'] = (wfMsg('portal') != '') ? array('href' => htmlspecialchars( $this->makeI18nUrl('portal-url'))) : '';
+ $nav_urls['currentevents'] = (wfMsg('currentevents') != '-') ? array('href' => htmlspecialchars( $this->makeI18nUrl('currentevents'))) : '';
+ $nav_urls['portal'] = (wfMsg('portal') != '-') ? array('href' => htmlspecialchars( $this->makeI18nUrl('portal-url'))) : '';
$nav_urls['recentchangeslinked'] = array('href' => htmlspecialchars( $this->makeSpecialUrl('Recentchangeslinked', 'target='.$this->thispage)));
$nav_urls['bugreports'] = array('href' => htmlspecialchars( $this->makeI18nUrl('bugreportspage')));
// $nav_urls['sitesupport'] = array('href' => htmlspecialchars( $this->makeI18nUrl('sitesupportpage')));
return $nav_urls;
}
- function getPageTitleActionText () {
- global $action;
- switch($action) {
- case 'edit':
- return wfMsg('edit');
- case 'history':
- return wfMsg('history_short');
- case 'protect':
- return wfMsg('unprotect');
- case 'unprotect':
- return wfMsg('unprotect');
- case 'delete':
- return wfMsg('delete');
- case 'watch':
- return wfMsg('watch');
- case 'unwatch':
- return wfMsg('unwatch');
- case 'submit':
- return wfMsg('preview');
- default:
- return '';
- }
- }
/*static*/ function makeSpecialUrl( $name, $urlaction='' ) {
$title = Title::makeTitle( NS_SPECIAL, $name );
$this->checkTitle(&$title, &$name);