clean up 2011 files
[libreplanet-static.git] / 2011 / skins / Modern.php
diff --git a/2011/skins/Modern.php b/2011/skins/Modern.php
new file mode 100644 (file)
index 0000000..cb24baf
--- /dev/null
@@ -0,0 +1,370 @@
+<?php
+/**
+ * Modern skin, derived from monobook template.
+ *
+ * @todo document
+ * @file
+ * @ingroup Skins
+ */
+
+if( !defined( 'MEDIAWIKI' ) )
+       die( -1 );
+
+/**
+ * Inherit main code from SkinTemplate, set the CSS and template filter.
+ * @todo document
+ * @ingroup Skins
+ */
+class SkinModern extends SkinTemplate {
+       /*
+        * We don't like the default getPoweredBy, the icon clashes with the 
+        * skin L&F.
+        */
+       function getPoweredBy() {
+               global  $wgVersion;
+               return "<div class='mw_poweredby'>Powered by MediaWiki $wgVersion</div>";
+       }
+
+       function initPage( OutputPage $out ) {
+               parent::initPage( $out );
+               $this->skinname  = 'modern';
+               $this->stylename = 'modern';
+               $this->template  = 'ModernTemplate';
+       }
+       
+       function setupSkinUserCss( OutputPage $out ){
+               // Do not call parent::setupSkinUserCss(), we have our own print style
+               $out->addStyle( 'common/shared.css', 'screen' );
+               $out->addStyle( 'modern/main.css', 'screen' );
+               $out->addStyle( 'modern/print.css', 'print' );
+               $out->addStyle( 'modern/rtl.css', 'screen', '', 'rtl' );
+       }
+}
+
+/**
+ * @todo document
+ * @ingroup Skins
+ */
+class ModernTemplate extends QuickTemplate {
+       var $skin;
+       /**
+        * Template filter callback for Modern skin.
+        * Takes an associative array of data set from a SkinTemplate-based
+        * class, and a wrapper for MediaWiki's localization database, and
+        * outputs a formatted page.
+        *
+        * @access private
+        */
+       function execute() {
+               global $wgRequest;
+               $this->skin = $skin = $this->data['skin'];
+               $action = $wgRequest->getText( 'action' );
+
+               // Suppress warnings to prevent notices about missing indexes in $this->data
+               wfSuppressWarnings();
+
+?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="<?php $this->text('xhtmldefaultnamespace') ?>" <?php 
+       foreach($this->data['xhtmlnamespaces'] as $tag => $ns) {
+               ?>xmlns:<?php echo "{$tag}=\"{$ns}\" ";
+       } ?>xml:lang="<?php $this->text('lang') ?>" lang="<?php $this->text('lang') ?>" dir="<?php $this->text('dir') ?>">
+       <head>
+               <meta http-equiv="Content-Type" content="<?php $this->text('mimetype') ?>; charset=<?php $this->text('charset') ?>" />
+               <?php $this->html('headlinks') ?>
+               <title><?php $this->text('pagetitle') ?></title>
+               <?php $this->html('csslinks') ?>
+               <!--[if lt IE 7]><meta http-equiv="imagetoolbar" content="no" /><![endif]-->
+               
+               <?php print Skin::makeGlobalVariablesScript( $this->data ); ?>
+                
+               <script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath' ) ?>/common/wikibits.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"><!-- wikibits js --></script>
+               <!-- Head Scripts -->
+<?php $this->html('headscripts') ?>
+<?php  if($this->data['jsvarurl'  ]) { ?>
+               <script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('jsvarurl'  ) ?>"><!-- site js --></script>
+<?php  } ?>
+<?php  if($this->data['pagecss'   ]) { ?>
+               <style type="text/css"><?php $this->html('pagecss'   ) ?></style>
+<?php  }
+               if($this->data['usercss'   ]) { ?>
+               <style type="text/css"><?php $this->html('usercss'   ) ?></style>
+<?php  }
+               if($this->data['userjs'    ]) { ?>
+               <script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('userjs' ) ?>"></script>
+<?php  }
+               if($this->data['userjsprev']) { ?>
+               <script type="<?php $this->text('jsmimetype') ?>"><?php $this->html('userjsprev') ?></script>
+<?php  }
+               if($this->data['trackbackhtml']) print $this->data['trackbackhtml']; ?>
+       </head>
+<body<?php if($this->data['body_ondblclick']) { ?> ondblclick="<?php $this->text('body_ondblclick') ?>"<?php } ?>
+<?php if($this->data['body_onload'    ]) { ?> onload="<?php     $this->text('body_onload')     ?>"<?php } ?>
+ class="mediawiki <?php $this->text('dir') ?> <?php $this->text('pageclass') ?> <?php $this->text('skinnameclass') ?>">
+
+       <!-- heading -->
+       <div id="mw_header"><h1 id="firstHeading"><?php $this->data['displaytitle']!=""?$this->html('title'):$this->text('title') ?></h1></div>
+
+       <div id="mw_main">
+       <div id="mw_contentwrapper">
+       <!-- navigation portlet -->
+       <div id="p-cactions" class="portlet">
+               <h5><?php $this->msg('views') ?></h5>
+               <div class="pBody">
+                       <ul>
+       <?php           foreach($this->data['content_actions'] as $key => $tab) {
+                                       echo '
+                                <li id="' . Sanitizer::escapeId( "ca-$key" ) . '"';
+                                       if( $tab['class'] ) {
+                                               echo ' class="'.htmlspecialchars($tab['class']).'"';
+                                       }
+                                       echo'><a href="'.htmlspecialchars($tab['href']).'"';
+                                       # We don't want to give the watch tab an accesskey if the
+                                       # page is being edited, because that conflicts with the
+                                       # accesskey on the watch checkbox.  We also don't want to
+                                       # give the edit tab an accesskey, because that's fairly su-
+                                       # perfluous and conflicts with an accesskey (Ctrl-E) often
+                                       # used for editing in Safari.
+                                       if( in_array( $action, array( 'edit', 'submit' ) )
+                                       && in_array( $key, array( 'edit', 'watch', 'unwatch' ))) {
+                                               echo $skin->tooltip( "ca-$key" );
+                                       } else {
+                                               echo $skin->tooltipAndAccesskey( "ca-$key" );
+                                       }
+                                       echo '>'.htmlspecialchars($tab['text']).'</a></li>';
+                               } ?>
+                       </ul>
+               </div>
+       </div>
+
+       <!-- content -->
+       <div id="mw_content">
+       <!-- contentholder does nothing by default, but it allows users to style the text inside
+            the content area without affecting the meaning of 'em' in #mw_content, which is used
+            for the margins -->
+       <div id="mw_contentholder">
+               <div class='mw-topboxes'>
+                       <div id="mw-js-message" style="display:none;"></div>
+                       <div class="mw-topbox" id="siteSub"><?php $this->msg('tagline') ?></div>
+                       <?php if($this->data['newtalk'] ) {
+                               ?><div class="usermessage mw-topbox"><?php $this->html('newtalk')  ?></div>
+                       <?php } ?>
+                       <?php if($this->data['sitenotice']) {
+                               ?><div class="mw-topbox" id="siteNotice"><?php $this->html('sitenotice') ?></div>
+                       <?php } ?>
+               </div>
+
+               <div id="contentSub"><?php $this->html('subtitle') ?></div>
+
+               <?php if($this->data['undelete']) { ?><div id="contentSub2"><?php     $this->html('undelete') ?></div><?php } ?>
+               <?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 } ?>
+
+               <?php $this->html('bodytext') ?>
+               <div class='mw_clear'></div>
+               <?php if($this->data['catlinks']) { $this->html('catlinks'); } ?>
+               <?php $this->html ('dataAfterContent') ?>
+       </div><!-- mw_contentholder -->
+       </div><!-- mw_content -->
+       </div><!-- mw_contentwrapper -->
+
+       <div id="mw_portlets">
+
+       <!-- portlets -->
+       <?php 
+               $sidebar = $this->data['sidebar'];              
+               if ( !isset( $sidebar['SEARCH'] ) ) $sidebar['SEARCH'] = true;
+               if ( !isset( $sidebar['TOOLBOX'] ) ) $sidebar['TOOLBOX'] = true;
+               if ( !isset( $sidebar['LANGUAGES'] ) ) $sidebar['LANGUAGES'] = true;
+
+               foreach ($sidebar as $boxName => $cont) {
+                       if ( $boxName == 'SEARCH' ) {
+                               $this->searchBox();
+                       } elseif ( $boxName == 'TOOLBOX' ) {
+                               $this->toolbox();
+                       } elseif ( $boxName == 'LANGUAGES' ) {
+                               $this->languageBox();
+                       } else {
+                               $this->customBox( $boxName, $cont );
+                       }
+               }
+       ?>
+
+       </div><!-- mw_portlets -->
+
+
+       </div><!-- main -->
+
+       <div class="mw_clear"></div>
+
+       <!-- personal portlet -->
+       <div class="portlet" id="p-personal">
+               <h5><?php $this->msg('personaltools') ?></h5>
+               <div class="pBody">
+                       <ul>
+<?php                  foreach($this->data['personal_urls'] as $key => $item) { ?>
+                               <li id="<?php echo Sanitizer::escapeId( "pt-$key" ) ?>"<?php
+                                       if ($item['active']) { ?> class="active"<?php } ?>><a href="<?php
+                               echo htmlspecialchars($item['href']) ?>"<?php echo $skin->tooltipAndAccesskey('pt-'.$key) ?><?php
+                               if(!empty($item['class'])) { ?> class="<?php
+                               echo htmlspecialchars($item['class']) ?>"<?php } ?>><?php
+                               echo htmlspecialchars($item['text']) ?></a></li>
+<?php                  } ?>
+                       </ul>
+               </div>
+       </div>
+
+
+       <!-- footer --> 
+       <div id="footer">
+                       <ul id="f-list">
+<?php
+               $footerlinks = array(
+                       'lastmod', 'viewcount', 'numberofwatchingusers', 'credits', 'copyright',
+                       'privacy', 'about', 'disclaimer', 'tagline',
+               );
+               foreach( $footerlinks as $aLink ) {
+                       if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
+?>                             <li id="<?php echo$aLink?>"><?php $this->html($aLink) ?></li>
+<?php          }
+               }
+?>
+                       </ul>
+               <?php echo $this->html("poweredbyico"); ?>
+       </div>
+
+       <?php $this->html('bottomscripts'); /* JS call to runBodyOnloadHook */ ?>
+<?php $this->html('reporttime') ?>
+<?php if ( $this->data['debug'] ): ?>
+<!-- Debug output:
+<?php $this->text( 'debug' ); ?>
+-->
+<?php endif; ?>
+</body></html>
+<?php
+       wfRestoreWarnings();
+       } // end of execute() method
+
+       /*************************************************************************************************/
+       function searchBox() {
+?>
+       <!-- search -->
+       <div id="p-search" class="portlet">
+               <h5><label for="searchInput"><?php $this->msg('search') ?></label></h5>
+               <div id="searchBody" class="pBody">
+                       <form action="<?php $this->text('searchaction') ?>" id="searchform"><div>
+                               <input id="searchInput" name="search" type="text"<?php echo $this->skin->tooltipAndAccesskey('search');
+                                       if( isset( $this->data['search'] ) ) {
+                                               ?> value="<?php $this->text('search') ?>"<?php } ?> />
+                               <input type='submit' name="go" class="searchButton" id="searchGoButton" value="<?php $this->msg('searcharticle') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-go' ); ?> />&nbsp;
+                               <input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg('searchbutton') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-fulltext' ); ?> />
+                       </div></form>
+               </div><!-- pBody -->
+       </div><!-- portlet -->
+<?php
+       }
+
+       /*************************************************************************************************/
+       function toolbox() {
+?>
+       <!-- toolbox -->
+       <div class="portlet" id="p-tb">
+               <h5><?php $this->msg('toolbox') ?></h5>
+               <div class="pBody">
+                       <ul>
+<?php
+               if($this->data['notspecialpage']) { ?>
+                               <li id="t-whatlinkshere"><a href="<?php
+                               echo htmlspecialchars($this->data['nav_urls']['whatlinkshere']['href'])
+                               ?>"<?php echo $this->skin->tooltipAndAccesskey('t-whatlinkshere') ?>><?php $this->msg('whatlinkshere') ?></a></li>
+<?php
+                       if( $this->data['nav_urls']['recentchangeslinked'] ) { ?>
+                               <li id="t-recentchangeslinked"><a href="<?php
+                               echo htmlspecialchars($this->data['nav_urls']['recentchangeslinked']['href'])
+                               ?>"<?php echo $this->skin->tooltipAndAccesskey('t-recentchangeslinked') ?>><?php $this->msg('recentchangeslinked') ?></a></li>
+<?php          }
+               }
+               if(isset($this->data['nav_urls']['trackbacklink'])) { ?>
+                       <li id="t-trackbacklink"><a href="<?php
+                               echo htmlspecialchars($this->data['nav_urls']['trackbacklink']['href'])
+                               ?>"<?php echo $this->skin->tooltipAndAccesskey('t-trackbacklink') ?>><?php $this->msg('trackbacklink') ?></a></li>
+<?php  }
+               if($this->data['feeds']) { ?>
+                       <li id="feedlinks"><?php foreach($this->data['feeds'] as $key => $feed) {
+                                       ?><span id="<?php echo Sanitizer::escapeId( "feed-$key" ) ?>"><a href="<?php
+                                       echo htmlspecialchars($feed['href']) ?>"<?php echo $this->skin->tooltipAndAccesskey('feed-'.$key) ?>><?php echo htmlspecialchars($feed['text'])?></a>&nbsp;</span>
+                                       <?php } ?></li><?php
+               }
+
+               foreach( array('contributions', 'log', 'blockip', 'emailuser', 'upload', 'specialpages') as $special ) {
+
+                       if($this->data['nav_urls'][$special]) {
+                               ?><li id="t-<?php echo $special ?>"><a href="<?php echo htmlspecialchars($this->data['nav_urls'][$special]['href'])
+                               ?>"<?php echo $this->skin->tooltipAndAccesskey('t-'.$special) ?>><?php $this->msg($special) ?></a></li>
+<?php          }
+               }
+
+               if(!empty($this->data['nav_urls']['print']['href'])) { ?>
+                               <li id="t-print"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['print']['href'])
+                               ?>"<?php echo $this->skin->tooltipAndAccesskey('t-print') ?>><?php $this->msg('printableversion') ?></a></li><?php
+               }
+
+               if(!empty($this->data['nav_urls']['permalink']['href'])) { ?>
+                               <li id="t-permalink"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['permalink']['href'])
+                               ?>"<?php echo $this->skin->tooltipAndAccesskey('t-permalink') ?>><?php $this->msg('permalink') ?></a></li><?php
+               } elseif ($this->data['nav_urls']['permalink']['href'] === '') { ?>
+                               <li id="t-ispermalink"<?php echo $this->skin->tooltip('t-ispermalink') ?>><?php $this->msg('permalink') ?></li><?php
+               }
+
+               wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this ) );
+?>                     </ul>
+               </div><!-- pBody -->
+       </div><!-- portlet -->
+<?php
+       }
+
+       /*************************************************************************************************/
+       function languageBox() {
+?>
+       <!-- languages -->
+<?php
+               if( $this->data['language_urls'] ) { ?>
+       <div id="p-lang" class="portlet">
+               <h5><?php $this->msg('otherlanguages') ?></h5>
+               <div class="pBody">
+                       <ul>
+<?php          foreach($this->data['language_urls'] as $langlink) { ?>
+                               <li class="<?php echo htmlspecialchars($langlink['class'])?>"><?php
+                               ?><a href="<?php echo htmlspecialchars($langlink['href']) ?>"><?php echo $langlink['text'] ?></a></li>
+<?php          } ?>
+                       </ul>
+               </div><!-- pBody -->
+       </div><!-- portlet -->
+<?php
+               }
+       }
+
+       /*************************************************************************************************/
+       function customBox( $bar, $cont ) {
+?>
+               <div class='generated-sidebar portlet' id='<?php echo Sanitizer::escapeId( "p-$bar" ) ?>'<?php echo $this->skin->tooltip('p-'.$bar) ?>>
+               <h5><?php $out = wfMsg( $bar ); if (wfEmptyMsg($bar, $out)) echo $bar; else echo $out; ?></h5>
+               <div class='pBody'>
+<?php   if ( is_array( $cont ) ) { ?>
+                       <ul>
+<?php                  foreach($cont as $key => $val) { ?>
+                               <li id="<?php echo Sanitizer::escapeId($val['id']) ?>"<?php
+                                       if ( $val['active'] ) { ?> class="active" <?php }
+                               ?>><a href="<?php echo htmlspecialchars($val['href']) ?>"<?php echo $this->skin->tooltipAndAccesskey($val['id']) ?>><?php echo htmlspecialchars($val['text']) ?></a></li>
+<?php                  } ?>
+                       </ul>
+<?php   } else {
+                       # allow raw HTML block to be defined by extensions
+                       print $cont;
+               } 
+?>
+               </div><!-- pBody -->
+       </div><!-- portlet -->
+<?php
+       }
+
+} // end of class
+?>