]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - skins/Modern/SkinModern.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / skins / Modern / SkinModern.php
diff --git a/skins/Modern/SkinModern.php b/skins/Modern/SkinModern.php
new file mode 100644 (file)
index 0000000..423df66
--- /dev/null
@@ -0,0 +1,202 @@
+<?php
+/**
+ * Modern skin, derived from monobook template.
+ *
+ * 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
+ *
+ * @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 {
+       public $skinname = 'modern';
+       public $template = 'ModernTemplate';
+
+       /**
+        * @param OutputPage $out
+        */
+       function setupSkinUserCss( OutputPage $out ) {
+               parent::setupSkinUserCss( $out );
+               $out->addModuleStyles( 'skins.modern' );
+       }
+}
+
+/**
+ * @todo document
+ * @ingroup Skins
+ */
+class ModernTemplate extends MonoBookTemplate {
+
+       /**
+        * 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.
+        */
+       function execute() {
+               $this->html( 'headelement' );
+               ?>
+
+               <!-- heading -->
+               <div id="mw_header">
+                       <?php echo $this->getIndicators(); ?>
+                       <h1 id="firstHeading" lang="<?php
+                       $this->data['pageLanguage'] = $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
+                       $this->text( 'pageLanguage' );
+                       ?>"><?php $this->html( 'title' ) ?></h1>
+               </div>
+
+               <div id="mw_main">
+                       <div id="mw_contentwrapper">
+                               <!-- navigation portlet -->
+                               <?php $this->cactions(); ?>
+
+                               <!-- content -->
+                               <div id="mw_content" role="main">
+                                       <!-- 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" class="mw-body">
+                                               <div class='mw-topboxes'>
+                                                       <div id="mw-js-message"
+                                                               style="display:none;"<?php $this->html( 'userlangattributes' ) ?>></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( 'userlangattributes' )
+                                               ?>><?php
+                                                       $this->html( 'subtitle' )
+                                                       ?></div>
+
+                                               <?php
+                                               if ( $this->data['undelete'] ) {
+                                                       ?>
+                                                       <div id="contentSub2"><?php $this->html( 'undelete' ) ?></div><?php
+                                               }
+                                               ?>
+                                               <div id="jump-to-nav"><?php $this->msg( 'jumpto' ) ?>
+                                                       <a href="#mw_portlets"><?php
+                                                               $this->msg( 'jumptonavigation' ) ?></a><?php $this->msg( 'comma-separator' )
+                                                       ?>
+                                                       <a href="#searchInput"><?php $this->msg( 'jumptosearch' ) ?></a>
+                                               </div>
+
+                                               <?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"<?php $this->html( "userlangattributes" ) ?>>
+                               <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
+
+                               <!-- portlets -->
+                               <?php $this->renderPortals( $this->data['sidebar'] ); ?>
+
+                       </div><!-- mw_portlets -->
+
+
+               </div><!-- main -->
+
+               <div class="mw_clear"></div>
+
+               <!-- personal portlet -->
+               <div class="portlet" id="p-personal" role="navigation">
+                       <h3><?php $this->msg( 'personaltools' ) ?></h3>
+
+                       <div class="pBody">
+                               <ul>
+                                       <?php
+                                       foreach ( $this->getPersonalTools() as $key => $item ) {
+                                               ?>
+                                               <?php echo $this->makeListItem( $key, $item ); ?>
+
+                                       <?php
+                                       }
+                                       ?>
+                               </ul>
+                       </div>
+               </div>
+
+
+               <!-- footer -->
+               <div id="footer" role="contentinfo"<?php $this->html( 'userlangattributes' ) ?>>
+                       <ul id="f-list">
+                               <?php
+                               foreach ( $this->getFooterLinks( "flat" ) as $aLink ) {
+                                       if ( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
+                                               ?>
+                                               <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?></li>
+                                       <?php
+                                       }
+                               }
+                               ?>
+                       </ul>
+                       <?php
+                       foreach ( $this->getFooterIcons( "nocopyright" ) as $blockName => $footerIcons ) {
+                               ?>
+                               <div id="mw_<?php echo htmlspecialchars( $blockName ); ?>">
+                                       <?php
+                                       foreach ( $footerIcons as $icon ) {
+                                               ?>
+                                               <?php echo $this->getSkin()->makeFooterIcon( $icon, 'withoutImage' ); ?>
+
+                                       <?php
+                                       } ?>
+                               </div>
+                       <?php
+                       }
+                       ?>
+               </div>
+
+               <?php $this->printTrail(); ?>
+
+       </body>
+</html>
+               <?php
+       }
+}