{
global $wgUser, $wgLang, $wgDebugComments, $wgCookieExpiration;
global $wgInputEncoding, $wgOutputEncoding, $wgLanguageCode;
- wfProfileIn( "OutputPage::output" );
$sk = $wgUser->getSkin();
- wfProfileIn( "OutputPage::output-headers" );
$this->sendCacheControl();
header( "Content-type: text/html; charset={$wgOutputEncoding}" );
if ( "" != $this->mRedirect ) {
header( "Location: {$this->mRedirect}" );
- wfProfileOut();
return;
}
foreach( $this->mCookies as $name => $val ) {
setcookie( $name, $val, $exp, "/" );
}
- wfProfileOut();
-
- wfProfileIn( "OutputPage::output-middle" );
- $sk->initPage();
- $this->out( $this->headElement() );
-
- $this->out( "\n<body" );
- $ops = $sk->getBodyOptions();
- foreach ( $ops as $name => $val ) {
- $this->out( " $name='$val'" );
- }
- $this->out( ">\n" );
- if ( $wgDebugComments ) {
- $this->out( "<!-- Wiki debugging output:\n" .
- $this->mDebugtext . "-->\n" );
- }
- $this->out( $sk->beforeContent() );
- wfProfileOut();
-
- wfProfileIn( "OutputPage::output-bodytext" );
- $this->out( $this->mBodytext );
- wfProfileOut();
- wfProfileIn( "OutputPage::output-after" );
- $this->out( $sk->afterContent() );
- wfProfileOut();
-
- wfProfileOut(); # A hack - we can't report after here
- $this->out( $this->reportTime() );
- $this->out( "\n</body></html>" );
+ $sk->outputPage( $this );
flush();
}
# Language class has internationalized names
#
/* private */ $wgValidSkinNames = array(
- "Standard", "Nostalgia", "CologneBlue"
+ "Standard", "Nostalgia", "CologneBlue", "Smarty", "Montparnasse"
);
# For some odd PHP bug, this function can't be part of a class
$wgOut->addLink( "stylesheet", "", "{$wgStyleSheetPath}/{$ss}" );
wfProfileOut();
}
+
+ function outputPage( &$out ) {
+ $this->initPage();
+ $out->out( $out->headElement() );
+
+ $out->out( "\n<body" );
+ $ops = $this->getBodyOptions();
+ foreach ( $ops as $name => $val ) {
+ $out->out( " $name='$val'" );
+ }
+ $out->out( ">\n" );
+ if ( $wgDebugComments ) {
+ $out->out( "<!-- Wiki debugging output:\n" .
+ $out->mDebugtext . "-->\n" );
+ }
+ $out->out( $this->beforeContent() );
+
+ $out->out( $out->mBodytext );
+
+ $out->out( $this->afterContent() );
+ wfProfileOut();
+
+ wfProfileOut(); # A hack - we can't report after here
+ $out->out( $out->reportTime() );
+
+ $out->out( "\n</body></html>" );
+ }
function getHeadScripts() {
global $wgStyleSheetPath;
include_once( "SkinStandard.php" );
include_once( "SkinNostalgia.php" );
include_once( "SkinCologneBlue.php" );
+include_once( "SkinSmarty.php" );
?>
--- /dev/null
+<?
+
+include_once( "Smarty.class.php" );
+
+class SkinSmarty extends Skin {
+ var $template;
+
+ function SkinSmarty() {
+ }
+
+ function initPage() {
+ $this->template = "paddington";
+ }
+
+ function outputPage( &$out ) {
+ global $wgTitle, $wgArticle, $wgUser, $wgLang;
+ global $wgScriptPath, $wgStyleSheetPath, $wgLanguageCode;
+
+ $this->initPage();
+
+ $smarty = new Smarty();
+ $smarty->register_function( "wikimsg",
+ array( &$this,"smarty_function_wikimsg" ), true );
+ $smarty->register_function( "wikilink",
+ array( &$this, "smarty_function_wikilink" ) );
+
+ $smarty->assign( "title", $wgTitle->getPrefixedText() ); // ?
+ $smarty->assign( "thispage", $wgTitle->getPrefixedDbKey() );
+ $smarty->assign( "subtitle", $out->getSubtitle() );
+
+ $smarty->assign( "editable", ($wgTitle->getNamespace != Namespace::getSpecial() ) );
+ $smarty->assign( "exists", $wgTitle->getArticleID() != 0 );
+ $smarty->assign( "watch", $wgTitle->userIsWatching() ? "unwatch" : "watch" );
+ $smarty->assign( "protect", count($wgTitle->getRestrictions()) ? "unprotect" : "protect" );
+
+ $smarty->assign( "searchaction", $wgScriptPath );
+ $smarty->assign( "stylepath", $wgStyleSheetPath );
+ $smarty->assign( "lang", $wgLanguageCode );
+ $smarty->assign( "langname", $wgLang->getLanguageName( $wgLanguageCode ) );
+
+ $smarty->assign( "username", $wgUser->getName() );
+ $smarty->assign( "userpage", $wgLang->getNsText( Namespace::getUser() ) . ":" . $wgUser->getName() );
+ $smarty->assign( "loggedin", $wgUser->getID() != 0 );
+ $smarty->assign( "sysop", $wgUser->isSysop() );
+ if( $wgUser->getNewtalk() ) {
+ $ntl = wfMsg( "newmessages",
+ $this->makeKnownLink(
+ $wgLang->getNsText( Namespace::getTalk( Namespace::getUser() ) )
+ . ":" . $wgUser->getName(),
+ wfMsg("newmessageslink")
+ )
+ );
+ } else {
+ $ntl = "";
+ }
+ $smarty->assign( "newtalk", $ntl );
+
+ $smarty->assign( "logo", $this->logoText() );
+ $smarty->assign( "pagestats", $this->pageStats() );
+ $smarty->assign( "otherlanguages", $this->otherLanguages() );
+
+ $smarty->assign( "debug", $out->mDebugtext );
+ $smarty->assign( "reporttime", $out->reportTime() );
+
+ $smarty->assign( "bodytext", $out->mBodytext );
+
+ $smarty->display( $this->template . ".tpl" );
+ }
+
+ function smarty_function_wikimsg( $params, &$smarty ) {
+ return wfMsg( $params['key'] );
+ }
+
+ function smarty_function_wikilink( $params, &$smarty ) {
+ global $wgLang;
+ $action = "";
+ $popup = "";
+ $page = "";
+
+ if($params['action']) $action = "action=" . $params['action'];
+
+ if($params['special']) {
+ $page = $wgLang->specialPage( $params['special'] );
+ #$text = $wgLang->getSpecialPageName( $params['special'] );
+ $text = $popup = $params['special'];
+ if($params['target']) $action .= "target=" . urlencode( $params['target'] );
+ } else {
+ if( $params['keypage'] )
+ $title = Title::newFromText( wfMsg( $params['keypage'] ) );
+ else
+ $title = Title::newFromText( $params['name'] );
+ if(isset($params["talk"])) {
+ $title = Title::makeTitle( $title->getNamespace() ^ 1, $title->getDbKey() );
+ }
+ $text = $popup = $title->getPrefixedText();
+ $page = urlencode( $title->getPrefixedUrl() );
+ }
+
+ $url = wfLocalUrlE( $page, $action );
+
+ if($params['text']) $text = $params['text'];
+ if($params['key']) $text = wfMsg( $params['key'] );
+ if($popup) $popup = ' title="' . htmlspecialchars( $popup ) . '"';
+
+ return "<a href=\"$url\"$popup>$text</a>";
+ }
+
+/*
+ function Skin()
+ function getSkinNames()
+ function getStylesheet()
+
+ function qbSetting()
+ function initPage()
+ function getHeadScripts() {
+ function getUserStyles()
+ function doGetUserStyles()
+ function getBodyOptions()
+ function getExternalLinkAttributes( $link, $text )
+ function getInternalLinkAttributes( $link, $text, $broken = false )
+
+ function getLogo()
+ function beforeContent()
+ function doBeforeContent()
+ function getQuickbarCompensator( $rows = 1 )
+ function afterContent()
+ function doAfterContent()
+ function pageTitleLinks()
+ function printableLink()
+ function pageTitle()
+ function pageSubtitle()
+ function nameAndLogin()
+ function searchForm()
+ function topLinks()
+ function bottomLinks()
+ function pageStats()
+ function lastModified()
+ function logoText( $align = "" )
+ function quickBar()
+ function specialPagesList()
+ function mainPageLink()
+ function copyrightLink()
+ function aboutLink()
+ function editThisPage()
+ function deleteThisPage()
+ function protectThisPage()
+ function watchThisPage()
+ function moveThisPage()
+ function historyLink()
+ function whatLinksHere()
+ function userContribsLink()
+ function emailUserLink()
+ function watchPageLinksLink()
+ function otherLanguages()
+ function bugReportsLink()
+ function dateLink()
+ function talkLink()
+ function transformContent( $text )
+
+ function makeLink( $title, $text= "", $query = "", $trail = "" )
+ function makeKnownLink( $title, $text = "", $query = "", $trail = "" )
+ function makeBrokenLink( $title, $text = "", $query = "", $trail = "" )
+ function makeStubLink( $title, $text = "", $query = "", $trail = "" )
+ function fnamePart( $url )
+ function makeImage( $url, $alt = "" )
+ function makeImageLink( $name, $url, $alt = "" )
+ function makeMediaLink( $name, $url, $alt = "" )
+ function specialLink( $name, $key = "" )
+
+ function beginHistoryList()
+ function beginImageHistoryList()
+ function endRecentChangesList()
+ function endHistoryList()
+ function endImageHistoryList()
+ function historyLine( $ts, $u, $ut, $ns, $ttl, $oid, $c, $isminor )
+ function imageHistoryLine( $iscur, $ts, $img, $u, $ut, $size, $c )
+
+
+ function beginRecentChangesList()
+ function recentChangesBlockLine ( $y ) {
+ function recentChangesBlockGroup ( $y ) {
+ function recentChangesBlock ()
+ function recentChangesLine( $ts, $u, $ut, $ns, $ttl, $c, $isminor, $isnew, $watched = false, $oldid = 0 , $diffid = 0 )
+ function recentChangesLineOld( $ts, $u, $ut, $ns, $ttl, $c, $isminor, $isnew, $watched = false, $oldid = 0, $diffid = 0 )
+ function recentChangesLineNew( $ts, $u, $ut, $ns, $ttl, $c, $isminor, $isnew, $watched = false, $oldid = 0 , $diffid = 0 )
+
+ function tocIndent($level) {
+ function tocUnindent($level) {
+ function tocLine($anchor,$tocline,$level) {
+ function tocTable($toc) {
+ function editSectionScript($section,$head) {
+ function editSectionLink($section) {
+*/
+
+}
+
+class SkinMontparnasse extends SkinSmarty {
+ function initPage() {
+ SkinSmarty::initPage();
+ $this->template = "montparnasse";
+ }
+}
+
+?>
);
/* private */ $wgSkinNamesEn = array(
- "Standard", "Nostalgia", "Cologne Blue"
+ "Standard", "Nostalgia", "Cologne Blue", "Paddington", "Montparnasse"
);
/* private */ $wgMathNamesEn = array(
--- /dev/null
+body.encyclopedia { background: white; }
+body.meta { background: #ffffdd; }
+body {
+ margin: 0px;
+ padding:0px;
+ }
+/* ================= masthead */
+#topbar {
+ background: #6688AA; /* from ColBlue */
+ background: #8ad; /* light blue */
+ color:white;
+ color:#fff;
+ border:none; /* for NN4 */
+ width:100%;
+ margin: 0px;
+ }
+
+#topbar h1 {
+ font-size: 160%;
+ margin: 0px;
+ padding:1px 2px;
+ }
+#topbar h1 span {
+ font-size: 65%;
+ }
+#topbar span#alert {
+ color:#f08;
+ font-weight:bold;
+ }
+#topbar div {
+ background: #ddd;
+ font-size: 90%;
+ color:black;
+ padding:1px;
+}
+#topbar div a {
+ text-decoration:none;
+}
+#topbar div a:hover {
+ text-decoration:underline;
+}
+
+/* ================= article */
+#article {
+ padding:0.5em;
+ margin-left:0.5em;
+ margin-right:15em; /* sidebar margin */
+}
+h1.pagetitle {
+ font-size: 150%;
+ padding-top: 0; margin-top: 0; padding-bottom: 0; margin-bottom: 0;
+ }
+p.subtitle , p.languages , p.actions {
+ padding: 0em 1em;
+ margin: 0em ;
+ font-size: 90%;
+ color:#723;
+ }
+/* ================= sidebar */
+#main {
+ position:relative;
+ /* only needed if sidebar sits below masthead */
+}
+
+#sidebar {
+ position:absolute;
+ top:0px;
+ right:0px;
+ width:11em;
+ padding:0.5em;
+}
+#dummylogo {
+ width:100px;
+ height:100px;
+ background: #ddd;
+ margin:0px auto;
+ font-size:75%;
+
+}
+#sidebar h2 {
+ margin: 4px 0px 0px;
+ padding: 0px 0.5em;
+ font-size:100%;
+ background: #8ad;
+ color:white;
+ }
+#sidebar div {
+ border: solid 2px #8ad;
+ padding: 0.5em ;
+ margin: 0em ;
+ font-size: 90%;
+ background: #def;
+}
+#sidebar #search {
+ text-align:center;
+}
+#sidebar #dummylogo {
+ margin:0px auto ;
+ width:100px;
+ height:100px;
+ background: #eee;
+}
+
+/* ================= footer */
+#footer {
+ padding:2px;
+ margin-left:0.5em;
+ margin-right:12em; /* sidebar margin */
+ /*
+ border-top: solid 2px #8ad; /* light blue */;
+
+}
+#footer div {
+
+ border: solid 2px #8ad;
+ padding: 0.5em ;
+ margin: 0em ;
+ font-size: 90%;
+ background: #def;
+
+}
+#footer h2 {
+ margin: 4px 0px 0px;
+ padding: 0px 0.5em;
+ font-size:100%;
+ background: #8ad;
+ color:white;
+}
+#footer #pagestats {
+ margin: 4px 0px 0px;
+ background: #8ad;
+ color:white;
+ font-weight:bold;
+}
+
+/* ================= hacks */
+ /* Feed these styles only to NS4.... */
+ /*/*/ /*/
+ h1.pagetitle {
+ margin-top: -30px;
+ color:red;
+ }
+ p.actions {
+ margin-top: -20px;
+ }
+ /* Okay, we can let the others back in.... */
+
+
+
+
+
+
--- /dev/null
+body.encyclopedia { background: white }
+body.meta { background: #ffffdd }
+body {
+ margin: 0px;
+ padding:0px;
+ }
+form.inline {
+ display: inline;
+ }
+
+/* borders */
+/*
+#topbar h1, #topbar div.navbox {
+ border-bottom:solid grey 1px;
+}
+*/
+
+/* ********************************** TOPBAR */
+#topbar {
+ border-bottom: solid 1px black;
+
+}
+/* common to all 3 topbar blocks */
+#topbar h1, #topbar div.navbox {
+ /*
+ background-color: #eef;
+ background-color: #f8f8f8;
+ */
+ padding: 0px 4px;
+ margin: 0px;
+ /*
+ border-bottom:solid white 2px;
+ border-bottom:solid grey 1px;
+ */
+ }
+#topbar h1 {
+ font-size: 2.2em;
+ }
+#topbar h1 span {
+ font-size: 0.6em;
+ color:#aaa;
+ }
+div.navbox {
+ font-size:0.9em;
+ }
+#topbar div#navboxsubtitle {
+ }
+#topbar div#sitelinks {
+ padding-bottom: 2px;
+}
+
+div.spacer {
+ clear:both;
+}
+
+div.row span.left {
+ float: left;
+ text-align: left;
+ width: 49%;
+ }
+
+div.row span.right {
+ float: right;
+ text-align: right;
+ width: 49%;
+ }
+
+/* ********************************* CONTENT */
+#content {
+ top: 0px;
+ margin: 0px;
+ /*
+ padding: 0px 5px 0px ;
+ position:relative;
+ */
+ }
+h1.pagetitle {
+ padding-top: 0; margin-top: 0; padding-bottom: 0; margin-bottom: 0;
+ font-size: 2em;
+
+ }
+p.subtitle , p.languages , p.actions {
+ padding: 0em 1em;
+ margin: 0em ;
+ font-size: 0.9em;
+ color:#723;
+ }
+p.languages {
+ font-style: italic;
+ }
+
+#article {
+ padding: 0px 4px;
+}
+
+/* ********************************* quickbar */
+#quickbar-left , #quickbar-right {
+ position: absolute;
+ top: 0px;
+ bottom:0px;
+ width: 148px;
+ padding: 0px;
+ visibility: visible;
+ z-index: 99;
+ }
+#quickbar-left {
+ left: 0px;
+ border-right:1px solid black;
+ }
+#quickbar-right {
+ right: 0px;
+ border-left:1px solid black;
+ }
+.quickbarsection {
+ padding: 6px;
+ border-bottom:1px solid black;
+}
+/* ********************************** QUICKBAR DEPENDENCIES */
+#content {
+ margin-left: 148px;
+ }
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="{$lang}">
+<head><title>{$title|escape:"html"}</title>
+<meta http-equiv="Content-type" content="text/html; charset={$charset}">
+<meta name="robots" content="{$robots}">
+{if $favicon}<link rel="shortcut icon" href="{$favicon}">{/if}
+<link rel="stylesheet" href="{$stylepath}/montparnasse.css">
+</head>
+
+<body class="encyclopedia">
+<div id="content">
+
+<!-- ************************************* topbar -->
+<div id="topbar">
+<h1 class="sitename">{wikimsg key="sitetitle"}<span> - {wikimsg key="sitesubtitle"} - {$langname}</span></h1>
+
+<div>{wikilink keypage="mainpage"} -
+ {wikilink special="Recentchanges"} -
+ {wikilink special="Randompage"} -
+ {wikilink keypage="currentevents"} -
+ {if $loggedin}{wikilink special="Userlogout"}{else}{wikilink special="Userlogin"}{/if}
+ {if $newtalk}- <span id="alert">{$newtalk}</span>{/if}</div>
+</div>
+
+<!-- ************************************* article -->
+<div id="main">
+<div id="article">
+<h1 class="pagetitle">{$title|escape:"html"}</h1>
+ <p class="actions">{wikilink name=$thispage printable=true key="printable"}
+ {if $editable}
+ | {wikilink name=$thispage action="edit" key=$editpage}
+ {if $exists}| {wikilink name=$thispage action="history" key="pagehistory"}{/if}
+ {/if}</p>
+
+{$bodytext}
+
+</div id="article">
+
+<div id="sidebar">
+ <div id="search">
+ <div id="dummylogo">logo placeholder</div>
+ {wikimsg key="searchwiki"}
+ <form name="search" class="inline" method="get" action="{$searchaction}">
+ <input type="text" name="search" size="19" value=""><br>
+ <input type=submit name="go" value="{wikimsg key="go"}"> <input type="submit" value="{wikimsg key="search"}">
+ </form>
+ </div>
+
+<h2>{wikimsg key="otherlanguages"}</h2>
+
+ <div class="languages">{$otherlanguages}</div>
+
+<h2>{wikimsg key="sitelinks"}</h2>
+<div>
+ {wikilink keypage="mainpage"}<br>
+ {wikilink special="Recentchanges"}<br>
+ {wikilink special="Randompage"}<br>
+ {wikilink keypage="currentevents"}
+</div>
+
+<h2>{wikimsg key="personaltools"}</h2>
+<div>
+{if $loggedin}
+ {wikilink name=$userpage key="myuserpage"}<br>
+ {wikilink name=$userpage talk=true key="mytalkpage"}<br>
+ {wikilink special="Watchlist"}<br>
+ {wikilink special="Contributions" target=$username}
+ {wikilink special="Userlogout"}
+{else}
+ {wikimsg key="notloggedin"}<br>
+ {wikilink special="Userlogin"}
+{/if}
+</div>
+
+
+</div id="sidebar">
+</div id="main">
+
+<div id="footer">
+ <h2>{wikimsg key="searchwiki"}</h2><div>
+ <form name="search" class="inline" method=get action="{$searchaction}">
+ <input type=text name="search" size="19" value="">
+ <input type=submit name="go" value="Go"> <input type=submit value="Search">
+ <!-- ** namespace checkboxes here would be nice! -->
+ </form>
+ </div>
+{if $editable}
+ <h2>{wikimsg key="pagetools"}</h2><div>
+ <strong>{wikilink name=$thispage action="edit" key=$editpage}</strong> |
+ {if $loggedin}{wikilink name=$thispage action=$watch key=$watch} |{/if}
+ {wikilink name=$thispage talk=true key=$talkpage} |
+ {if $exists}{wikilink name=$thispage action="history" key="pagehistory"} |{/if}
+ {wikilink special="Whatlinkshere" target=$thispage} |
+ {wikilink special="Recentchangeslinked" target=$thispage} |
+ {if $loggedin && $exists}
+ <br>
+ {if $sysop}
+ {wikilink name=$thispage action="delete" key="deletepage"} |
+ {wikilink name=$thispage action=$protect key=$protect} |
+ {/if}
+ {wikilink special="Movepage" target="$thispage"}
+ {/if}
+ </div>
+{/if}
+<div id="pagestats">
+{$pagestats}
+</div>
+
+</div id="footer">
+</body>
+</html>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="{$lang}">
+<head>
+<title>{$title|escape:"html"}</title>
+<meta http-equiv="Content-type" content="text/html; charset={$charset}">
+<meta name="robots" content="{$robots}">
+{if $favicon}<link rel="shortcut icon" href="{$favicon}">{/if}
+<link rel="stylesheet" href="{$stylepath}/paddington.css">
+<script type="text/javascript" src="{$stylepath}/wikibits.js"></script>
+</head>
+
+<body class="encyclopedia">
+<div id="content">
+
+<!-- ************************************* topbar -->
+
+<div id="topbar">
+<h1 class="sitename">{wikimsg key="sitetitle"} <span>{$langname}</span></h1>
+<div class="spacer"></div>
+
+<div class="navbox" id="navboxsubtitle">
+<div class="row" id="searchrow">
+ <span class="left">
+ {wikimsg key="sitesubtitle"}</span>
+ <span class="right">
+ <form name="search" class="inline" method=get action="{$searchurl}">
+ <input type=text name="search" size="19" value="">
+ <input type=submit name="go" value="{wikimsg key="go"}"> <input type="submit" value="{wikimsg key="search"}">
+ </form>
+ </span>
+</div><!--searchrow-->
+<div class="spacer"></div>
+</div><!--navboxsubtitle-->
+
+<div class="navbox" id="sitelinks">
+<div class="spacer"></div>
+<div class="row" id="sitelinksrow">
+ <span class="left">
+ {wikilink keypage="mainpage"} |
+ {wikilink special="Recentchanges"} |
+ {wikilink keypage="helppage"}
+ </span>
+ <span class="right">
+ {if $loggedin}
+ {wikilink name=$userpage} ({wikilink name=$userpage talk=true}) |
+ {wikilink special="Userlogout" returnto=$thispage} |
+ {wikilink special="Preferences"}
+ {else}
+ {wikimsg key="notloggedin"} |
+ {wikilink special="Userlogin"}
+ {/if}
+ </span>
+</div>
+ {if $newtalk}<div class="alert">{$newtalk}</div>{/if}
+ <div class="spacer"></div>
+</div><!--sitelinks-->
+
+</div><!-- ************************************* topbar -->
+
+<!-- ************************************* article -->
+<div id="article">
+ <h1 class="pagetitle">{$title|escape:"html"}</h1>
+
+ <p class="subtitle">{$subtitle}</p>
+
+ <p class="actions">{wikilink name=$thispage printable=true key="printable"} |
+ {if $editable}
+ {wikilink name=$title action="edit" key=$editpage}
+ {if $exists} | {wikilink name=$title action="history" key="history"}{/if}
+ {/if}</p>
+
+ <p class="languages">{wikimsg key="otherlanguages"} {$langlist}</p>
+
+
+{$bodytext}
+
+</div><!--article-->
+
+<div id="pagestats">
+{$pagestats}
+</div>
+
+</div><!-- id="content" -->
+
+<!-- ************************************* quickbar -->
+
+<div id="quickbar-left">
+<div class="quickbarsection">
+ {$logo}
+</div>
+<div class="quickbarsection">
+ {wikilink keypage="mainpage"}
+ <br>{wikilink special="Recentchanges"}
+ <br>{wikilink special="Random"}
+ {if $loggedin}<br>{wikilink special="Watchlist"}{/if}
+ <br>{wikilink special="Contributions" target=$username}
+ <br>{wikilink keypage="currentevents"}
+</div>
+{if $editable}<div class="quickbarsection">
+ <strong>{wikilink name=$thispage action="edit" key=$editpage}</strong>
+ {if $loggedin}
+ <br>{wikilink name=$thispage action="watch" key=$watchpage}
+ {if $exists}
+ <br>{wikilink special="Movepage" target=$thispage}
+ {if $sysop}
+ <br>{wikilink name=$thispage action="delete" key="deletepage"}
+ <br>{wikilink name=$thispage action=$protect key=$protect}
+ {/if}
+ {/if}
+ {/if}
+ <br>{wikilink name=$thispage talk=true key=$talkpage}
+ {if $exists}<br>{wikilink name=$thispage action="history" key="history"}{/if}
+ <br>{wikilink special="Whatlinkshere" target=$thispage}
+ <br>{wikilink special="Recentchangeslinked" target=$thispage}
+</div>{/if}
+<div class="quickbarsection">
+ {if $loggedin}{wikilink special="Upload"}
+ <br>{/if}{wikilink special="Specialpages"}
+ <br>{wikilink keypage="bugreports"}
+</div>
+</div><!-- end quickbar -->
+
+</body></html>
+