/**
* Nostalgia: A skin which looks like Wikipedia did in its first year (2001).
*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
* @file
* @ingroup Skins
*/
-if( !defined( 'MEDIAWIKI' ) )
+if( !defined( 'MEDIAWIKI' ) ) {
die( -1 );
+}
/**
* @todo document
* @ingroup Skins
*/
-class SkinNostalgia extends Skin {
-
- function getStylesheet() {
- return 'common/nostalgia.css';
+class SkinNostalgia extends SkinLegacy {
+ var $skinname = 'nostalgia', $stylename = 'nostalgia',
+ $template = 'NostalgiaTemplate';
+
+ /**
+ * @param $out OutputPage
+ */
+ function setupSkinUserCss( OutputPage $out ){
+ parent::setupSkinUserCss( $out );
+ $out->addModuleStyles( 'skins.nostalgia' );
}
- function getSkinName() {
- return 'nostalgia';
- }
+}
+
+class NostalgiaTemplate extends LegacyTemplate {
+ /**
+ * @return string
+ */
function doBeforeContent() {
$s = "\n<div id='content'>\n<div id='top'>\n";
- $s .= '<div id="logo">' . $this->logoText( 'right' ) . '</div>';
+ $s .= '<div id="logo">' . $this->getSkin()->logoText( 'right' ) . '</div>';
$s .= $this->pageTitle();
$s .= $this->pageSubtitle() . "\n";
$s .= '<div id="topbar">';
$s .= $this->topLinks() . "\n<br />";
- $notice = wfGetSiteNotice();
+ $notice = $this->getSkin()->getSiteNotice();
if( $notice ) {
$s .= "\n<div id='siteNotice'>$notice</div>\n";
}
$s .= $this->pageTitleLinks();
$ol = $this->otherLanguages();
- if( $ol ) $s .= '<br />' . $ol;
+ if( $ol ) {
+ $s .= '<br />' . $ol;
+ }
- $cat = $this->getCategoryLinks();
- if( $cat ) $s .= '<br />' . $cat;
+ $s .= $this->getSkin()->getCategories();
$s .= "<br clear='all' /></div><hr />\n</div>\n";
$s .= "\n<div id='article'>";
return $s;
}
+ /**
+ * @return string
+ */
function topLinks() {
- global $wgOut, $wgUser, $wgEnableUploads;
$sep = " |\n";
- $s = $this->mainPageLink() . $sep
- . $this->specialLink( 'recentchanges' );
+ $s = $this->getSkin()->mainPageLink() . $sep
+ . Linker::specialLink( 'Recentchanges' );
- if ( $wgOut->isArticle() ) {
- $s .= $sep . '<strong>' . $this->editThisPage() . '</strong>' . $sep . $this->historyLink();
+ if ( $this->data['isarticle'] ) {
+ $s .= $sep . '<strong>' . $this->editThisPage() . '</strong>' . $sep . $this->talkLink() .
+ $sep . $this->historyLink();
}
/* show links to different language variants */
$s .= $this->variantLinks();
$s .= $this->extensionTabLinks();
- if ( $wgUser->isAnon() ) {
- $s .= $sep . $this->specialLink( 'userlogin' );
+ if ( !$this->data['loggedin'] ) {
+ $s .= $sep . Linker::specialLink( 'Userlogin' );
} else {
- $name = $wgUser->getName();
/* show user page and user talk links */
- $s .= $sep . $this->link( $wgUser->getUserPage(), wfMsgHtml( 'mypage' ) );
- $s .= $sep . $this->link( $wgUser->getTalkPage(), wfMsgHtml( 'mytalk' ) );
- if ( $wgUser->getNewtalk() ) {
+ $user = $this->getSkin()->getUser();
+ $s .= $sep . Linker::link( $user->getUserPage(), wfMsgHtml( 'mypage' ) );
+ $s .= $sep . Linker::link( $user->getTalkPage(), wfMsgHtml( 'mytalk' ) );
+ if ( $user->getNewtalk() ) {
$s .= ' *';
}
/* show watchlist link */
- $s .= $sep . $this->specialLink( 'watchlist' );
+ $s .= $sep . Linker::specialLink( 'Watchlist' );
/* show my contributions link */
- $s .= $sep . $this->link(
- SpecialPage::getSafeTitleFor( 'Contributions', $wgUser->getName() ),
+ $s .= $sep . Linker::link(
+ SpecialPage::getSafeTitleFor( 'Contributions', $this->data['username'] ),
wfMsgHtml( 'mycontris' ) );
/* show my preferences link */
- $s .= $sep . $this->specialLink( 'preferences' );
+ $s .= $sep . Linker::specialLink( 'Preferences' );
/* show upload file link */
- if ( $wgEnableUploads ) {
- $s .= $sep . $this->specialLink( 'upload' );
+ if( UploadBase::isEnabled() && UploadBase::isAllowed( $user ) === true ) {
+ $s .= $sep . $this->getUploadLink();
}
+
/* show log out link */
- $s .= $sep . $this->specialLink( 'userlogout' );
+ $s .= $sep . Linker::specialLink( 'Userlogout' );
}
$s .= $sep . $this->specialPagesList();
return $s;
}
+ /**
+ * @return string
+ */
function doAfterContent() {
$s = "\n</div><br clear='all' />\n";
$s .= $this->bottomLinks();
$s .= "\n<br />" . $this->pageStats();
- $s .= "\n<br />" . $this->mainPageLink()
- . " | " . $this->aboutLink()
- . " | " . $this->searchForm();
+ $s .= "\n<br />" . $this->getSkin()->mainPageLink()
+ . ' | ' . $this->getSkin()->aboutLink()
+ . ' | ' . $this->searchForm();
$s .= "\n</div>\n</div>\n";
return $s;
}
-}
\ No newline at end of file
+}