global $wgTitle, $wgArticle, $wgUser, $wgLang, $wgContLang, $wgOut;
global $wgScript, $wgStylePath, $wgLanguageCode, $wgContLanguageCode, $wgUseNewInterlanguage;
global $wgMimeType, $wgJsMimeType, $wgOutputEncoding, $wgUseDatabaseMessages, $wgRequest;
- global $wgDisableCounters, $wgLogo, $action, $wgFeedClasses;
+ global $wgDisableCounters, $wgLogo, $action, $wgFeedClasses, $wgHideInterlanguageLinks;
global $wgMaxCredits, $wgShowCreditsIfMax;
global $wgPageShowWatchingUsers;
wfProfileIn( "$fname-init" );
$this->initPage( $out );
- $this->mTitle = $wgTitle;
+ $this->mTitle =& $wgTitle;
$this->mUser =& $wgUser;
$tpl =& $this->setupTemplate( $this->template, 'skins' );
$tpl->setRef( 'wgScript', $wgScript );
$tpl->setRef( 'skinname', $this->skinname );
$tpl->setRef( 'stylename', $this->stylename );
+ $tpl->set( 'printable', $wgRequest->getBool( 'printable' ) );
$tpl->setRef( 'loggedin', $this->loggedin );
$tpl->set('nsclass', 'ns-'.$this->mTitle->getNamespace());
$tpl->set('notspecialpage', $this->mTitle->getNamespace() != NS_SPECIAL);
$tpl->set('numberofwatchingusers', false);
}
- $tpl->set('lastmod', $this->lastModified());
$tpl->set('copyright',$this->getCopyright());
$this->credits = false;
if (isset($wgMaxCredits) && $wgMaxCredits != 0) {
require_once("Credits.php");
$this->credits = getCredits($wgArticle, $wgMaxCredits, $wgShowCreditsIfMax);
+ } else {
+ $tpl->set('lastmod', $this->lastModified());
}
$tpl->setRef( 'credits', $this->credits );
# Language links
$language_urls = array();
- foreach( $wgOut->getLanguageLinks() as $l ) {
- $nt = Title::newFromText( $l );
- $language_urls[] = array('href' => $nt->getFullURL(),
- 'text' => ($wgContLang->getLanguageName( $nt->getInterwiki()) != ''?$wgContLang->getLanguageName( $nt->getInterwiki()) : $l),
- 'class' => $wgContLang->isRTL() ? 'rtl' : 'ltr');
+
+ if ( !$wgHideInterlanguageLinks ) {
+ foreach( $wgOut->getLanguageLinks() as $l ) {
+ $nt = Title::newFromText( $l );
+ $language_urls[] = array('href' => $nt->getFullURL(),
+ 'text' => ($wgContLang->getLanguageName( $nt->getInterwiki()) != ''?$wgContLang->getLanguageName( $nt->getInterwiki()) : $l),
+ 'class' => $wgContLang->isRTL() ? 'rtl' : 'ltr');
+ }
}
if(count($language_urls)) {
$tpl->setRef( 'language_urls', $language_urls);
} else {
$tpl->set( 'body_onload', false );
}
- $tpl->set( 'navigation_urls', $this->buildNavigationUrls() );
+ $tpl->set( 'sidebar', $this->buildSidebar() );
$tpl->set( 'nav_urls', $this->buildNavUrls() );
// execute template
* @access private
*/
function buildContentActionUrls () {
- global $wgContLang, $wgUseValidation, $wgDBprefix;
+ global $wgContLang, $wgUseValidation, $wgDBprefix, $wgValidationForAnons;
$fname = 'SkinTemplate::buildContentActionUrls';
wfProfileIn( $fname );
'href' => $this->mTitle->getLocalUrl( 'action=unwatch' )
);
}
+ }
+ if( $wgUser->isLoggedIn() || $wgValidationForAnons ) { # and $action != 'submit' ) {
# Validate tab. TODO: add validation to logged-in user rights
if($wgUseValidation && ( $action == "" || $action=='view' ) ){ # && $wgUser->isAllowed('validate')){
if ( $oldid ) $oid = IntVal( $oldid ) ; # Use the oldid
$content_actions['article'] = array(
'class' => 'selected',
'text' => wfMsg('specialpage'),
- 'href' => false
+ 'href' => $this->mTitle->getLocalUrl(), // @bug 2457
);
}
);
$vcount ++;
}
- }
+ }
+
+ // A print stylesheet is attached to all pages, but nobody ever
+ // figures that out. :) Add a link...
+ if( $this->iscontent && ($action == '' || $action == 'view' || $action == 'purge' ) ) {
+ $content_actions['print'] = array(
+ 'class' => false,
+ 'text' => wfMsg( 'printableversion' ),
+ 'href' => $wgRequest->appendQuery( 'printable=yes' ) );
+ }
wfProfileOut( $fname );
return $content_actions;
}
- function getNavigationLinks() {
- global $wgNavigationLinks;
- return $wgNavigationLinks;
- }
-
/**
- * build array of global navigation links
+ * Build an array that represents the sidebar(s), the navigation bar among them
+ *
* @return array
* @access private
*/
- function buildNavigationUrls () {
- $fname = 'SkinTemplate::buildNavigationUrls';
+ function buildSidebar() {
+ $fname = 'SkinTemplate::buildSidebar';
wfProfileIn( $fname );
- $links = $this->getNavigationLinks();
-
- $result = array();
- foreach ( $links as $link ) {
- $text = wfMsg( $link['text'] );
- wfProfileIn( "$fname-{$link['text']}" );
- if ($text != '-') {
- $dest = wfMsgForContent( $link['href'] );
- wfProfileIn( "$fname-{$link['text']}2" );
- $result[] = array(
- 'text' => $text,
- 'href' => $this->makeInternalOrExternalUrl( $dest ),
- 'id' => 'n-'.$link['text']
- );
- wfProfileOut( "$fname-{$link['text']}2" );
+ $bar = array();
+ $lines = explode( "\n", wfMsgForContent( 'sidebar' ) );
+ foreach ($lines as $line) {
+ if (strpos($line, '*') !== 0)
+ continue;
+ if (strpos($line, '**') !== 0) {
+ $line = trim($line, '* ');
+ $heading = $line;
+ } else {
+ if (strpos($line, '|') !== false) { // sanity check
+ $line = explode( '|' , trim($line, '* '), 2 );
+ $bar[$heading][] = array(
+ 'text' => wfMsg( $line[1] ),
+ 'href' => $this->makeInternalOrExternalUrl( wfMsgForContent( $line[0] ) ),
+ 'id' => 'n-' . $line[1],
+ );
+ } else { continue; }
}
- wfProfileOut( "$fname-{$link['text']}" );
}
+
wfProfileOut( $fname );
- return $result;
+ return $bar;
}
/**