00001 <?php
00010 if( !defined( 'MEDIAWIKI' ) )
00011 die( -1 );
00012
00018 class SkinModern extends SkinTemplate {
00019
00020
00021
00022
00023 function getPoweredBy() {
00024 global $wgVersion;
00025 return "<div class='mw_poweredby'>Powered by MediaWiki $wgVersion</div>";
00026 }
00027
00028 function initPage( OutputPage $out ) {
00029 parent::initPage( $out );
00030 $this->skinname = 'modern';
00031 $this->stylename = 'modern';
00032 $this->template = 'ModernTemplate';
00033 }
00034
00035 function setupSkinUserCss( OutputPage $out ){
00036
00037 $out->addStyle( 'common/shared.css', 'screen' );
00038 $out->addStyle( 'modern/main.css', 'screen' );
00039 $out->addStyle( 'modern/print.css', 'print' );
00040 $out->addStyle( 'modern/rtl.css', 'screen', '', 'rtl' );
00041 }
00042 }
00043
00048 class ModernTemplate extends QuickTemplate {
00049 var $skin;
00058 function execute() {
00059 global $wgRequest;
00060 $this->skin = $skin = $this->data['skin'];
00061 $action = $wgRequest->getText( 'action' );
00062
00063
00064 wfSuppressWarnings();
00065
00066 ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
00067 <html xmlns="<?php $this->text('xhtmldefaultnamespace') ?>" <?php
00068 foreach($this->data['xhtmlnamespaces'] as $tag => $ns) {
00069 ?>xmlns:<?php echo "{$tag}=\"{$ns}\" ";
00070 } ?>xml:lang="<?php $this->text('lang') ?>" lang="<?php $this->text('lang') ?>" dir="<?php $this->text('dir') ?>">
00071 <head>
00072 <meta http-equiv="Content-Type" content="<?php $this->text('mimetype') ?>; charset=<?php $this->text('charset') ?>" />
00073 <?php $this->html('headlinks') ?>
00074 <title><?php $this->text('pagetitle') ?></title>
00075 <?php $this->html('csslinks') ?>
00076 <!--[if lt IE 7]><meta http-equiv="imagetoolbar" content="no" /><![endif]-->
00077
00078 <?php print Skin::makeGlobalVariablesScript( $this->data ); ?>
00079
00080 <script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath' ) ?>/common/wikibits.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"><!-- wikibits js --></script>
00081 <!-- Head Scripts -->
00082 <?php $this->html('headscripts') ?>
00083 <?php if($this->data['jsvarurl' ]) { ?>
00084 <script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('jsvarurl' ) ?>"><!-- site js --></script>
00085 <?php } ?>
00086 <?php if($this->data['pagecss' ]) { ?>
00087 <style type="text/css"><?php $this->html('pagecss' ) ?></style>
00088 <?php }
00089 if($this->data['usercss' ]) { ?>
00090 <style type="text/css"><?php $this->html('usercss' ) ?></style>
00091 <?php }
00092 if($this->data['userjs' ]) { ?>
00093 <script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('userjs' ) ?>"></script>
00094 <?php }
00095 if($this->data['userjsprev']) { ?>
00096 <script type="<?php $this->text('jsmimetype') ?>"><?php $this->html('userjsprev') ?></script>
00097 <?php }
00098 if($this->data['trackbackhtml']) print $this->data['trackbackhtml']; ?>
00099 </head>
00100 <body<?php if($this->data['body_ondblclick']) { ?> ondblclick="<?php $this->text('body_ondblclick') ?>"<?php } ?>
00101 <?php if($this->data['body_onload' ]) { ?> onload="<?php $this->text('body_onload') ?>"<?php } ?>
00102 class="mediawiki <?php $this->text('dir') ?> <?php $this->text('pageclass') ?> <?php $this->text('skinnameclass') ?>">
00103
00104 <!-- heading -->
00105 <div id="mw_header"><h1 id="firstHeading"><?php $this->data['displaytitle']!=""?$this->html('title'):$this->text('title') ?></h1></div>
00106
00107 <div id="mw_main">
00108 <div id="mw_contentwrapper">
00109 <!-- navigation portlet -->
00110 <div id="p-cactions" class="portlet">
00111 <h5><?php $this->msg('views') ?></h5>
00112 <div class="pBody">
00113 <ul>
00114 <?php foreach($this->data['content_actions'] as $key => $tab) {
00115 echo '
00116 <li id="' . Sanitizer::escapeId( "ca-$key" ) . '"';
00117 if( $tab['class'] ) {
00118 echo ' class="'.htmlspecialchars($tab['class']).'"';
00119 }
00120 echo'><a href="'.htmlspecialchars($tab['href']).'"';
00121 # We don't want to give the watch tab an accesskey if the
00122 # page is being edited, because that conflicts with the
00123 # accesskey on the watch checkbox. We also don't want to
00124 # give the edit tab an accesskey, because that's fairly su-
00125 # perfluous and conflicts with an accesskey (Ctrl-E) often
00126 # used for editing in Safari.
00127 if( in_array( $action, array( 'edit', 'submit' ) )
00128 && in_array( $key, array( 'edit', 'watch', 'unwatch' ))) {
00129 echo $skin->tooltip( "ca-$key" );
00130 } else {
00131 echo $skin->tooltipAndAccesskey( "ca-$key" );
00132 }
00133 echo '>'.htmlspecialchars($tab['text']).'</a></li>';
00134 } ?>
00135 </ul>
00136 </div>
00137 </div>
00138
00139 <!-- content -->
00140 <div id="mw_content">
00141 <!-- contentholder does nothing by default, but it allows users to style the text inside
00142 the content area without affecting the meaning of 'em' in #mw_content, which is used
00143 for the margins -->
00144 <div id="mw_contentholder">
00145 <div class='mw-topboxes'>
00146 <div id="mw-js-message" style="display:none;"></div>
00147 <div class="mw-topbox" id="siteSub"><?php $this->msg('tagline') ?></div>
00148 <?php if($this->data['newtalk'] ) {
00149 ?><div class="usermessage mw-topbox"><?php $this->html('newtalk') ?></div>
00150 <?php } ?>
00151 <?php if($this->data['sitenotice']) {
00152 ?><div class="mw-topbox" id="siteNotice"><?php $this->html('sitenotice') ?></div>
00153 <?php } ?>
00154 </div>
00155
00156 <div id="contentSub"><?php $this->html('subtitle') ?></div>
00157
00158 <?php if($this->data['undelete']) { ?><div id="contentSub2"><?php $this->html('undelete') ?></div><?php } ?>
00159 <?php if($this->data['showjumplinks']) { ?><div id="jump-to-nav"><?php $this->msg('jumpto') ?> <a href="#mw_portlets"><?php $this->msg('jumptonavigation') ?></a>, <a href="#searchInput"><?php $this->msg('jumptosearch') ?></a></div><?php } ?>
00160
00161 <?php $this->html('bodytext') ?>
00162 <div class='mw_clear'></div>
00163 <?php if($this->data['catlinks']) { $this->html('catlinks'); } ?>
00164 <?php $this->html ('dataAfterContent') ?>
00165 </div><!-- mw_contentholder -->
00166 </div><!-- mw_content -->
00167 </div><!-- mw_contentwrapper -->
00168
00169 <div id="mw_portlets">
00170
00171 <!-- portlets -->
00172 <?php
00173 $sidebar = $this->data['sidebar'];
00174 if ( !isset( $sidebar['SEARCH'] ) ) $sidebar['SEARCH'] = true;
00175 if ( !isset( $sidebar['TOOLBOX'] ) ) $sidebar['TOOLBOX'] = true;
00176 if ( !isset( $sidebar['LANGUAGES'] ) ) $sidebar['LANGUAGES'] = true;
00177
00178 foreach ($sidebar as $boxName => $cont) {
00179 if ( $boxName == 'SEARCH' ) {
00180 $this->searchBox();
00181 } elseif ( $boxName == 'TOOLBOX' ) {
00182 $this->toolbox();
00183 } elseif ( $boxName == 'LANGUAGES' ) {
00184 $this->languageBox();
00185 } else {
00186 $this->customBox( $boxName, $cont );
00187 }
00188 }
00189 ?>
00190
00191 </div><!-- mw_portlets -->
00192
00193
00194 </div><!-- main -->
00195
00196 <div class="mw_clear"></div>
00197
00198 <!-- personal portlet -->
00199 <div class="portlet" id="p-personal">
00200 <h5><?php $this->msg('personaltools') ?></h5>
00201 <div class="pBody">
00202 <ul>
00203 <?php foreach($this->data['personal_urls'] as $key => $item) { ?>
00204 <li id="<?php echo Sanitizer::escapeId( "pt-$key" ) ?>"<?php
00205 if ($item['active']) { ?> class="active"<?php } ?>><a href="<?php
00206 echo htmlspecialchars($item['href']) ?>"<?php echo $skin->tooltipAndAccesskey('pt-'.$key) ?><?php
00207 if(!empty($item['class'])) { ?> class="<?php
00208 echo htmlspecialchars($item['class']) ?>"<?php } ?>><?php
00209 echo htmlspecialchars($item['text']) ?></a></li>
00210 <?php } ?>
00211 </ul>
00212 </div>
00213 </div>
00214
00215
00216 <!-- footer -->
00217 <div id="footer">
00218 <ul id="f-list">
00219 <?php
00220 $footerlinks = array(
00221 'lastmod', 'viewcount', 'numberofwatchingusers', 'credits', 'copyright',
00222 'privacy', 'about', 'disclaimer', 'tagline',
00223 );
00224 foreach( $footerlinks as $aLink ) {
00225 if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
00226 ?> <li id="<?php echo$aLink?>"><?php $this->html($aLink) ?></li>
00227 <?php }
00228 }
00229 ?>
00230 </ul>
00231 <?php echo $this->html("poweredbyico"); ?>
00232 </div>
00233
00234 <?php $this->html('bottomscripts'); ?>
00235 <?php $this->html('reporttime') ?>
00236 <?php if ( $this->data['debug'] ): ?>
00237 <!-- Debug output:
00238 <?php $this->text( 'debug' ); ?>
00239 -->
00240 <?php endif; ?>
00241 </body></html>
00242 <?php
00243 wfRestoreWarnings();
00244 }
00245
00246
00247 function searchBox() {
00248 global $wgUseTwoButtonsSearchForm;
00249 ?>
00250 <!-- search -->
00251 <div id="p-search" class="portlet">
00252 <h5><label for="searchInput"><?php $this->msg('search') ?></label></h5>
00253 <div id="searchBody" class="pBody">
00254 <form action="<?php $this->text('wgScript') ?>" id="searchform"><div>
00255 <input type='hidden' name="title" value="<?php $this->text('searchtitle') ?>"/>
00256 <input id="searchInput" name="search" type="text"<?php echo $this->skin->tooltipAndAccesskey('search');
00257 if( isset( $this->data['search'] ) ) {
00258 ?> value="<?php $this->text('search') ?>"<?php } ?> />
00259 <input type='submit' name="go" class="searchButton" id="searchGoButton" value="<?php $this->msg('searcharticle') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-go' ); ?> /><?php if ($wgUseTwoButtonsSearchForm) { ?>
00260 <input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg('searchbutton') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-fulltext' ); ?> /><?php } else { ?>
00261
00262 <div><a href="<?php $this->text('searchaction') ?>" rel="search"><?php $this->msg('powersearch-legend') ?></a></div><?php } ?>
00263
00264 </div></form>
00265 </div><!-- pBody -->
00266 </div><!-- portlet -->
00267 <?php
00268 }
00269
00270
00271 function toolbox() {
00272 ?>
00273 <!-- toolbox -->
00274 <div class="portlet" id="p-tb">
00275 <h5><?php $this->msg('toolbox') ?></h5>
00276 <div class="pBody">
00277 <ul>
00278 <?php
00279 if($this->data['notspecialpage']) { ?>
00280 <li id="t-whatlinkshere"><a href="<?php
00281 echo htmlspecialchars($this->data['nav_urls']['whatlinkshere']['href'])
00282 ?>"<?php echo $this->skin->tooltipAndAccesskey('t-whatlinkshere') ?>><?php $this->msg('whatlinkshere') ?></a></li>
00283 <?php
00284 if( $this->data['nav_urls']['recentchangeslinked'] ) { ?>
00285 <li id="t-recentchangeslinked"><a href="<?php
00286 echo htmlspecialchars($this->data['nav_urls']['recentchangeslinked']['href'])
00287 ?>"<?php echo $this->skin->tooltipAndAccesskey('t-recentchangeslinked') ?>><?php $this->msg('recentchangeslinked') ?></a></li>
00288 <?php }
00289 }
00290 if(isset($this->data['nav_urls']['trackbacklink'])) { ?>
00291 <li id="t-trackbacklink"><a href="<?php
00292 echo htmlspecialchars($this->data['nav_urls']['trackbacklink']['href'])
00293 ?>"<?php echo $this->skin->tooltipAndAccesskey('t-trackbacklink') ?>><?php $this->msg('trackbacklink') ?></a></li>
00294 <?php }
00295 if($this->data['feeds']) { ?>
00296 <li id="feedlinks"><?php foreach($this->data['feeds'] as $key => $feed) {
00297 ?><a id="<?php echo Sanitizer::escapeId( "feed-$key" ) ?>" href="<?php
00298 echo htmlspecialchars($feed['href']) ?>" rel="alternate" type="application/<?php echo $key ?>+xml" class="feedlink"<?php echo $this->skin->tooltipAndAccesskey('feed-'.$key) ?>><?php echo htmlspecialchars($feed['text'])?></a>
00299 <?php } ?></li><?php
00300 }
00301
00302 foreach( array('contributions', 'log', 'blockip', 'emailuser', 'upload', 'specialpages') as $special ) {
00303
00304 if($this->data['nav_urls'][$special]) {
00305 ?><li id="t-<?php echo $special ?>"><a href="<?php echo htmlspecialchars($this->data['nav_urls'][$special]['href'])
00306 ?>"<?php echo $this->skin->tooltipAndAccesskey('t-'.$special) ?>><?php $this->msg($special) ?></a></li>
00307 <?php }
00308 }
00309
00310 if(!empty($this->data['nav_urls']['print']['href'])) { ?>
00311 <li id="t-print"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['print']['href'])
00312 ?>" rel="alternate"<?php echo $this->skin->tooltipAndAccesskey('t-print') ?>><?php $this->msg('printableversion') ?></a></li><?php
00313 }
00314
00315 if(!empty($this->data['nav_urls']['permalink']['href'])) { ?>
00316 <li id="t-permalink"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['permalink']['href'])
00317 ?>"<?php echo $this->skin->tooltipAndAccesskey('t-permalink') ?>><?php $this->msg('permalink') ?></a></li><?php
00318 } elseif ($this->data['nav_urls']['permalink']['href'] === '') { ?>
00319 <li id="t-ispermalink"<?php echo $this->skin->tooltip('t-ispermalink') ?>><?php $this->msg('permalink') ?></li><?php
00320 }
00321
00322 wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this ) );
00323 ?> </ul>
00324 </div><!-- pBody -->
00325 </div><!-- portlet -->
00326 <?php
00327 }
00328
00329
00330 function languageBox() {
00331 ?>
00332 <!-- languages -->
00333 <?php
00334 if( $this->data['language_urls'] ) { ?>
00335 <div id="p-lang" class="portlet">
00336 <h5><?php $this->msg('otherlanguages') ?></h5>
00337 <div class="pBody">
00338 <ul>
00339 <?php foreach($this->data['language_urls'] as $langlink) { ?>
00340 <li class="<?php echo htmlspecialchars($langlink['class'])?>"><?php
00341 ?><a href="<?php echo htmlspecialchars($langlink['href']) ?>"><?php echo $langlink['text'] ?></a></li>
00342 <?php } ?>
00343 </ul>
00344 </div><!-- pBody -->
00345 </div><!-- portlet -->
00346 <?php
00347 }
00348 }
00349
00350
00351 function customBox( $bar, $cont ) {
00352 ?>
00353 <div class='generated-sidebar portlet' id='<?php echo Sanitizer::escapeId( "p-$bar" ) ?>'<?php echo $this->skin->tooltip('p-'.$bar) ?>>
00354 <h5><?php $out = wfMsg( $bar ); if (wfEmptyMsg($bar, $out)) echo $bar; else echo $out; ?></h5>
00355 <div class='pBody'>
00356 <?php if ( is_array( $cont ) ) { ?>
00357 <ul>
00358 <?php foreach($cont as $key => $val) { ?>
00359 <li id="<?php echo Sanitizer::escapeId($val['id']) ?>"<?php
00360 if ( $val['active'] ) { ?> class="active" <?php }
00361 ?>><a href="<?php echo htmlspecialchars($val['href']) ?>"<?php echo $this->skin->tooltipAndAccesskey($val['id']) ?>><?php echo htmlspecialchars($val['text']) ?></a></li>
00362 <?php } ?>
00363 </ul>
00364 <?php } else {
00365 # allow raw HTML block to be defined by extensions
00366 print $cont;
00367 }
00368 ?>
00369 </div><!-- pBody -->
00370 </div><!-- portlet -->
00371 <?php
00372 }
00373
00374 }
00375 ?>