bug 20745 Query error in Special:ListUsers
[lhc/web/wiklou.git] / skins / Vector.php
index 5007a5f..4af108f 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Vector - Branch of MonoBook which has many usability improvements and
  * somewhat cleaner code.
- * 
+ *
  * @todo document
  * @file
  * @ingroup Skins
@@ -18,7 +18,7 @@ if( !defined( 'MEDIAWIKI' ) )
 class SkinVector extends SkinTemplate {
 
        /* Functions */
-       var $skinname = $stylename = 'vector',
+       var $skinname = 'vector', $stylename = 'vector',
                $template = 'VectorTemplate';
 
        /**
@@ -27,9 +27,9 @@ class SkinVector extends SkinTemplate {
         */
        public function initPage( OutputPage $out ) {
                global $wgStylePath, $wgJsMimeType, $wgStyleVersion;
-               
+
                parent::initPage( $out );
-               
+
                // Append skin-specific styles
                $out->addStyle( 'vector/main-rtl.css', 'screen', '', 'rtl' );
                $out->addStyle( 'vector/main-ltr.css', 'screen', '', 'ltr' );
@@ -70,7 +70,7 @@ class SkinVector extends SkinTemplate {
                        'actions' => array(),
                        'variants' => array()
                );
-               
+
                // Detects parameters
                $action = $wgRequest->getVal( 'action', 'view' );
                $section = $wgRequest->getVal( 'section' );
@@ -87,14 +87,14 @@ class SkinVector extends SkinTemplate {
 
                        // Generates XML IDs from namespace names
                        $subjectId = $this->mTitle->getNamespaceKey( '' );
-                       
+
                        if ( $subjectId == 'main' ) {
                                $talkId = 'talk';
                        } else {
                                $talkId = "{$subjectId}_talk";
                        }
                        $currentId = $isTalk ? $talkId : $subjectId;
-                       
+
                        // Adds namespace links
                        $links['namespaces'][$subjectId] = $this->tabAction(
                                $subjectPage, 'vector-namespace-' . $subjectId, !$isTalk, '', true
@@ -104,7 +104,7 @@ class SkinVector extends SkinTemplate {
                                $talkPage, 'vector-namespace-talk', $isTalk, '', true
                        );
                        $links['namespaces'][$talkId]['context'] = 'talk';
-                       
+
                        // Adds view view link
                        if ( $this->mTitle->exists() ) {
                                $links['views']['view'] = $this->tabAction(
@@ -112,9 +112,9 @@ class SkinVector extends SkinTemplate {
                                                'vector-view-view', ( $action == 'view' ), '', true
                                );
                        }
-                       
+
                        wfProfileIn( __METHOD__ . '-edit' );
-                       
+
                        // Checks if user can...
                        if (
                                // edit the current page
@@ -148,7 +148,8 @@ class SkinVector extends SkinTemplate {
                                        // Checks if we should ever show a new section link
                                        if ( !$wgOut->forceHideNewSectionLink() ) {
                                                // Adds new section link
-                                               $links['actions']['addsection'] = array(
+                                               //$links['actions']['addsection']
+                                               $links['views']['addsection'] = array(
                                                        'class' => $section == 'new' ? 'selected' : false,
                                                        'text' => wfMsg( 'vector-action-addsection' ),
                                                        'href' => $this->mTitle->getLocalUrl(
@@ -270,7 +271,7 @@ class SkinVector extends SkinTemplate {
                                }
                        }
                        wfProfileOut( __METHOD__ . '-live' );
-                       
+
                        /**
                         * The following actions use messages which, if made particular to
                         * the Vector skin, would break the Ajax code which makes this
@@ -303,10 +304,10 @@ class SkinVector extends SkinTemplate {
                                        );
                                }
                        }
-                       
+
                        // This is instead of SkinTemplateTabs - which uses a flat array
                        wfRunHooks( 'SkinTemplateNavigation', array( &$this, &$links ) );
-               
+
                // If it's not content, it's got to be a special page
                } else {
                        $links['namespaces']['special'] = array(
@@ -351,29 +352,25 @@ class SkinVector extends SkinTemplate {
  * @ingroup Skins
  */
 class VectorTemplate extends QuickTemplate {
-       
+
        /* Members */
-       
+
        /**
         * @var Cached skin object
         */
        var $skin;
-       
+
        /* Functions */
-       
+
        /**
         * Outputs the entire contents of the XHTML page
         */
        public function execute() {
                global $wgRequest, $wgOut, $wgContLang;
-               
+
                $this->skin = $this->data['skin'];
                $action = $wgRequest->getText( 'action' );
-               
-               // Suppress warnings to prevent notices about missing indexes in
-               // $this->data (is this really the best way to handle this?)
-               wfSuppressWarnings();
-               
+
                // Build additional attributes for navigation urls
                $nav = $this->skin->buildNavigationUrls();
                foreach ( $nav as $section => $links ) {
@@ -416,16 +413,16 @@ class VectorTemplate extends QuickTemplate {
                $this->data['variant_urls'] = $nav['variants'];
                // Build additional attributes for personal_urls
                foreach ( $this->data['personal_urls'] as $key => $item) {
-                       $this->data['personal_urls'][$key]['attributes'] = 
+                       $this->data['personal_urls'][$key]['attributes'] =
                                ' id="' . Sanitizer::escapeId( "pt-$key" ) . '"';
-                       if ( $item['active'] ) {
+                       if ( isset( $item['active'] ) && $item['active'] ) {
                                $this->data['personal_urls'][$key]['attributes'] .=
                                        ' class="active"';
                        }
                        $this->data['personal_urls'][$key]['key'] =
                                $this->skin->tooltipAndAccesskey('pt-'.$key);
                }
-               
+
                // Generate additional footer links
                $footerlinks = array(
                        'info' => array(
@@ -501,7 +498,7 @@ class VectorTemplate extends QuickTemplate {
                                <!-- jumpto -->
                                <div id="jump-to-nav">
                                        <?php $this->msg( 'jumpto' ) ?><a href="#head"><?php $this->msg( 'jumptonavigation' ) ?></a>,
-                                       <a href="#search"><?php $this->msg( 'jumptosearch' ) ?></a>
+                                       <a href="#p-search"><?php $this->msg( 'jumptosearch' ) ?></a>
                                </div>
                                <!-- /jumpto -->
                                <?php endif; ?>
@@ -536,36 +533,36 @@ class VectorTemplate extends QuickTemplate {
                <!-- /header -->
                <!-- panel -->
                        <div id="panel" class="noprint">
+                               <!-- logo -->
+                                       <div id="p-logo"><a style="background-image: url(<?php $this->text( 'logopath' ) ?>);" href="<?php echo htmlspecialchars( $this->data['nav_urls']['mainpage']['href'] ) ?>" <?php echo $this->skin->tooltipAndAccesskey( 'p-logo' ) ?>></a></div>
+                               <!-- /logo -->
                                <?php $this->renderPortals( $this->data['sidebar'] ); ?>
                        </div>
                <!-- /panel -->
-               <!-- foot -->
-               <div id="foot">
+               <!-- footer -->
+               <div id="footer">
                        <?php foreach( $validFooterLinks as $category => $links ): ?>
                                <?php if ( count( $links ) > 0 ): ?>
-                               <ul id="foot-<?php echo $category ?>">
+                               <ul id="footer-<?php echo $category ?>">
                                        <?php foreach( $links as $link ): ?>
                                                <?php if( isset( $this->data[$link] ) && $this->data[$link] ): ?>
-                                               <li id="foot-<?php echo $category ?>-<?php echo $link ?>"><?php $this->html( $link ) ?></li>
+                                               <li id="footer-<?php echo $category ?>-<?php echo $link ?>"><?php $this->html( $link ) ?></li>
                                                <?php endif; ?>
                                        <?php endforeach; ?>
                                </ul>
                                <?php endif; ?>
                        <?php endforeach; ?>
-                       <ul id="foot-icons" class="noprint">
+                       <ul id="footer-icons" class="noprint">
                                <?php if ( $this->data['poweredbyico'] ): ?>
-                               <li id="foot-icon-poweredby"><?php $this->html( 'poweredbyico' ) ?></li>
+                               <li id="footer-icon-poweredby"><?php $this->html( 'poweredbyico' ) ?></li>
                                <?php endif; ?>
                                <?php if ( $this->data['copyrightico'] ): ?>
-                               <li id="foot-icon-copyright"><?php $this->html( 'copyrightico' ) ?></li>
+                               <li id="footer-icon-copyright"><?php $this->html( 'copyrightico' ) ?></li>
                                <?php endif; ?>
                        </ul>
                        <div style="clear:both"></div>
                </div>
-               <!-- /foot -->
-               <!-- logo -->
-                       <div id="p-logo"><a style="background-image: url(<?php $this->text( 'logopath' ) ?>);" href="<?php echo htmlspecialchars( $this->data['nav_urls']['mainpage']['href'] ) ?>" <?php echo $this->skin->tooltipAndAccesskey( 'p-logo' ) ?>></a></div>
-               <!-- /logo -->
+               <!-- /footer -->
                <!-- fixalpha -->
                <script type="<?php $this->text('jsmimetype') ?>"> if ( window.isMSIE55 ) fixalpha(); </script>
                <!-- /fixalpha -->
@@ -577,10 +574,8 @@ class VectorTemplate extends QuickTemplate {
        </body>
 </html>
 <?php
-               // We're done with abusing arrays now...
-               wfRestoreWarnings();
        }
-       
+
        /**
         * Render a series of portals
         */
@@ -675,14 +670,14 @@ class VectorTemplate extends QuickTemplate {
                        echo "\n<!-- /{$name} -->\n";
                }
        }
-       
+
        /**
         * Render one or more navigations elements by name, automatically reveresed
         * when UI is in RTL mode
         */
        private function renderNavigation( $elements ) {
                global $wgContLang, $wgVectorUseSimpleSearch, $wgStylePath;
-               
+
                // If only one element was given, wrap it in an array, allowing more
                // flexible arguments
                if ( !is_array( $elements ) ) {
@@ -696,9 +691,8 @@ class VectorTemplate extends QuickTemplate {
                        echo "\n<!-- {$name} -->\n";
                        switch ( $element ) {
                                case 'NAMESPACES':
-                                       if ( count( $this->data[ 'namespace_urls' ] ) > 0 ) {
 ?>
-<div id="namespaces" class="vectorTabs">
+<div id="p-namespaces" class="vectorTabs<?php if ( count( $this->data['namespace_urls'] ) == 0 ) echo ' emptyPortlet'; ?>">
        <h5><?php $this->msg('namespaces') ?></h5>
        <ul <?php $this->html('userlangattributes') ?>>
                <?php foreach ($this->data['namespace_urls'] as $key => $link ): ?>
@@ -707,28 +701,24 @@ class VectorTemplate extends QuickTemplate {
        </ul>
 </div>
 <?php
-                                       }
                                break;
                                case 'VARIANTS':
-                                       if ( count( $this->data[ 'variant_urls' ] ) > 0 ) {
 ?>
-<div id="variants" class="vectorMenu">
+<div id="p-variants" class="vectorMenu<?php if ( count( $this->data['variant_urls'] ) == 0 ) echo ' emptyPortlet'; ?>">
        <h5><span><?php $this->msg('variants') ?></span><a href="#"></a></h5>
        <div class="menu">
                <ul <?php $this->html('userlangattributes') ?>>
                        <?php foreach ($this->data['variant_urls'] as $key => $link ): ?>
-                               <li<?php echo $link['attributes'] ?>><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><?php echo str_replace( ' ', '&nbsp;', htmlspecialchars( $link['text'] ) ) ?></a></li>
+                               <li<?php echo $link['attributes'] ?>><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><?php echo htmlspecialchars( $link['text'] ) ?></a></li>
                        <?php endforeach; ?>
                </ul>
        </div>
 </div>
 <?php
-                                       }
                                break;
                                case 'VIEWS':
-                                       if ( count( $this->data[ 'view_urls' ] ) > 0 ) {
 ?>
-<div id="views" class="vectorTabs">
+<div id="p-views" class="vectorTabs<?php if ( count( $this->data['view_urls'] ) == 0 ) echo ' emptyPortlet'; ?>">
        <h5><?php $this->msg('views') ?></h5>
        <ul <?php $this->html('userlangattributes') ?>>
                <?php foreach ($this->data['view_urls'] as $key => $link ): ?>
@@ -737,28 +727,24 @@ class VectorTemplate extends QuickTemplate {
        </ul>
 </div>
 <?php
-                                       }
                                break;
                                case 'ACTIONS':
-                                       if ( count( $this->data[ 'action_urls' ] ) > 0 ) {
 ?>
-<div id="p-cactions" class="vectorMenu">
+<div id="p-cactions" class="vectorMenu<?php if ( count( $this->data['action_urls'] ) == 0 ) echo ' emptyPortlet'; ?>">
        <h5><span><?php $this->msg('actions') ?></span><a href="#"></a></h5>
        <div class="menu">
                <ul <?php $this->html('userlangattributes') ?>>
                        <?php foreach ($this->data['action_urls'] as $key => $link ): ?>
-                               <li<?php echo $link['attributes'] ?>><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><?php echo str_replace( ' ', '&nbsp;', htmlspecialchars( $link['text'] ) ) ?></a></li>
+                               <li<?php echo $link['attributes'] ?>><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><?php echo htmlspecialchars( $link['text'] ) ?></a></li>
                        <?php endforeach; ?>
                </ul>
        </div>
 </div>
 <?php
-                                       }
                                break;
                                case 'PERSONAL':
-                                       if ( count( $this->data['personal_urls'] ) > 0 ) {
 ?>
-<div id="p-personal">
+<div id="p-personal" class="<?php if ( count( $this->data['personal_urls'] ) == 0 ) echo ' emptyPortlet'; ?>">
        <h5><?php $this->msg('personaltools') ?></h5>
        <ul <?php $this->html('userlangattributes') ?>>
                <?php foreach($this->data['personal_urls'] as $key => $item): ?>
@@ -767,7 +753,6 @@ class VectorTemplate extends QuickTemplate {
        </ul>
 </div>
 <?php
-                                       }
                                break;
                                case 'SEARCH':
 ?>
@@ -778,7 +763,7 @@ class VectorTemplate extends QuickTemplate {
                <?php if ( $wgVectorUseSimpleSearch ): ?>
                <div id="simpleSearch">
                        <input id="searchInput" name="search" type="text" <?php echo $this->skin->tooltipAndAccesskey( 'search' ); ?> <?php if( isset( $this->data['search'] ) ): ?> value="<?php $this->text( 'search' ) ?>"<?php endif; ?> />
-                       <button id="searchButton" type='submit' name='fulltext' <?php echo $this->skin->tooltipAndAccesskey( 'search-fulltext' ); ?>>&nbsp;</button>
+                       <button id="searchButton" type='submit' name='button' <?php echo $this->skin->tooltipAndAccesskey( 'search-fulltext' ); ?>>&nbsp;</button>
                </div>
                <?php else: ?>
                <input id="searchInput" name="search" type="text" <?php echo $this->skin->tooltipAndAccesskey( 'search' ); ?> <?php if( isset( $this->data['search'] ) ): ?> value="<?php $this->text( 'search' ) ?>"<?php endif; ?> />
@@ -792,6 +777,6 @@ class VectorTemplate extends QuickTemplate {
                                break;
                        }
                        echo "\n<!-- /{$name} -->\n";
-               }       
+               }
        }
 }