Merge "CologneBlue rewrite: fix talkLink() to use generic nav links"
[lhc/web/wiklou.git] / skins / CologneBlue.php
index f7f08ec..32aa902 100644 (file)
@@ -43,7 +43,7 @@ class SkinCologneBlue extends SkinTemplate {
                $out->addModuleStyles( 'mediawiki.legacy.oldshared' );
                $out->addModuleStyles( 'skins.cologneblue' );
        }
-       
+
        /**
         * Override langlink formatting behavior not to uppercase the language names.
         * See otherLanguages() in CologneBlueTemplate.
@@ -55,6 +55,8 @@ class SkinCologneBlue extends SkinTemplate {
 
 class CologneBlueTemplate extends BaseTemplate {
        function execute() {
+               // Suppress warnings to prevent notices about missing indexes in $this->data
+               wfSuppressWarnings();
                $this->html( 'headelement' );
                echo $this->beforeContent();
                $this->html( 'bodytext' );
@@ -63,8 +65,8 @@ class CologneBlueTemplate extends BaseTemplate {
                $this->html( 'dataAfterContent' );
                $this->printTrail();
                echo "\n</body></html>";
+               wfRestoreWarnings();
        }
-       
 
        /**
         * Language/charset variant links for classic-style skins
@@ -83,7 +85,7 @@ class CologneBlueTemplate extends BaseTemplate {
 
                return $this->getSkin()->getLanguage()->pipeList( $s );
        }
-       
+
        // @fixed
        function otherLanguages() {
                global $wgHideInterlanguageLinks;
@@ -112,11 +114,11 @@ class CologneBlueTemplate extends BaseTemplate {
        function pageTitleLinks() {
                $s = array();
                $footlinks = $this->getFooterLinks();
-               
+
                foreach ( $footlinks['places'] as $item ) {
                        $s[] = $this->data[$item];
                }
-               
+
                return $this->getSkin()->getLanguage()->pipeList( $s );
        }
 
@@ -413,10 +415,10 @@ class CologneBlueTemplate extends BaseTemplate {
 
                return $navlink;
        }
-       
+
        /**
         * @return string
-        * 
+        *
         * @fixed
         */
        function beforeContent() {
@@ -430,7 +432,6 @@ class CologneBlueTemplate extends BaseTemplate {
                        </a>
                </p>
                <p id="sitesub"><?php echo wfMessage( 'sitesubtitle' )->escaped() ?></p>
-               
                <div id="toplinks">
                        <p id="syslinks"><?php echo $this->sysLinks() ?></p>
                        <p id="variantlinks"><?php echo $this->variantLinks() ?></p>
@@ -461,13 +462,13 @@ class CologneBlueTemplate extends BaseTemplate {
 <?php
                $s = ob_get_contents();
                ob_end_clean();
-               
+
                return $s;
        }
 
        /**
         * @return string
-        * 
+        *
         * @fixed
         */
        function afterContent() {
@@ -479,7 +480,7 @@ class CologneBlueTemplate extends BaseTemplate {
                // Page-related links
                echo $this->bottomLinks();
                echo "\n<br />";
-               
+
                // Footer and second searchbox
                echo $this->getSkin()->getLanguage()->pipeList( array(
                        $this->getSkin()->mainPageLink(),
@@ -487,7 +488,7 @@ class CologneBlueTemplate extends BaseTemplate {
                        $this->searchForm( 'footer' )
                ) );
                echo "\n<br />";
-               
+
                // Standard footer info
                $footlinks = $this->getFooterLinks();
                if ( $footlinks['info'] ) {
@@ -508,7 +509,7 @@ class CologneBlueTemplate extends BaseTemplate {
 
        /**
         * @return string
-        * 
+        *
         * @fixed
         */
        function sysLinks() {
@@ -538,13 +539,10 @@ class CologneBlueTemplate extends BaseTemplate {
                return $this->getSkin()->getLanguage()->pipeList( $s );
        }
 
-
-
-       
        /**
         * @param $heading string
         * @return string
-        * 
+        *
         * @fixed
         */
        function menuHead( $heading ) {
@@ -556,35 +554,35 @@ class CologneBlueTemplate extends BaseTemplate {
         * @access private
         *
         * @return string
-        * 
+        *
         * @fixed
         */
        function quickBar(){
                $s = "\n<div id='quickbar'>";
 
                $sep = "<br />\n";
-               
+
                $plain_bar = $this->data['sidebar'];
                $bar = array();
-               
+
                // Massage the sidebar
                // We want to place SEARCH at the beginning and a lot of stuff before TOOLBOX (or at the end, if it's missing)
                $additions_done = false;
                while ( !$additions_done ) {
                        $bar = array(); // Empty it out
-                       
+
                        // Always display search on top
                        $bar['SEARCH'] = true;
-                               
+
                        foreach ( $plain_bar as $heading => $links ) {
                                if ( $heading == 'TOOLBOX' ) {
                                        if( $links !== NULL ) {
                                                // If this is not a toolbox prosthetic we inserted outselves, fill it out
                                                $plain_bar['TOOLBOX'] = $this->getToolbox();
                                        }
-                                       
+
                                        // And insert the stuff
-                                       
+
                                        // "This page" and "Edit" menus
                                        // We need to do some massaging here... we reuse all of the items, except for $...['views']['view'],
                                        // as $...['namespaces']['main'] and $...['namespaces']['talk'] together serve the same purpose.
@@ -609,36 +607,36 @@ class CologneBlueTemplate extends BaseTemplate {
                                        );
                                        $bar['qbedit'] = $qbedit;
                                        $bar['qbpageoptions'] = $qbpageoptions;
-                                       
+
                                        // Personal tools ("My pages")
                                        $bar['qbmyoptions'] = $this->getPersonalTools();
                                        foreach ( array ( 'logout', 'createaccount', 'login', 'anonlogin' ) as $key ) {
-                                               $bar['qbmyoptions'][$key] = false;
+                                               $bar['qbmyoptions'][$key] = null;
                                        }
-                                       
+
                                        $additions_done = true;
                                }
-                               
+
                                // Re-insert current heading, unless it's SEARCH
                                if ( $heading != 'SEARCH' ) {
                                        $bar[$heading] = $plain_bar[$heading];
                                }
                        }
-                       
+
                        // If TOOLBOX is missing, $additions_done is still false
                        if ( !$additions_done ) {
                                $plain_bar['TOOLBOX'] = false;
                        }
                }
-               
+
                foreach ( $bar as $heading => $links ) {
                        if ( $heading == 'SEARCH' ) {
                                $s .= $this->menuHead( wfMessage( 'qbfind' )->text() );
                                $s .= $this->searchForm( 'sidebar' );
                        } elseif ( $heading == 'LANGUAGES' ) {
                                // discard these; we display languages below page content
-                       } else {
-                               if ( $links ) {
+                       } elseif ( $links ) {
+                               if ( is_array( $links ) ) {
                                        // Use the navigation heading from standard sidebar as the "browse" section
                                        if ( $heading == 'navigation' ) {
                                                $heading = 'qbbrowse';
@@ -646,11 +644,11 @@ class CologneBlueTemplate extends BaseTemplate {
                                        if ( $heading == 'TOOLBOX' ) {
                                                $heading = 'toolbox';
                                        }
-                                       
+
                                        $headingMsg = wfMessage( $heading );
                                        $any_link = false;
                                        $t = $this->menuHead( $headingMsg->exists() ? $headingMsg->text() : $heading );
-                                       
+
                                        foreach ( $links as $key => $link ) {
                                                // Can be empty due to rampant sidebar massaging we're doing above
                                                if ( $link ) {
@@ -658,10 +656,13 @@ class CologneBlueTemplate extends BaseTemplate {
                                                        $t .= $this->makeListItem( $key, $link, array( 'tag' => 'span' ) ) . $sep;
                                                }
                                        }
-                                       
+
                                        if ( $any_link ) {
                                                $s .= $t;
                                        }
+                               } else {
+                                       // $links can be a HTML string
+                                       $s .= $links;
                                }
                        }
                }
@@ -673,7 +674,7 @@ class CologneBlueTemplate extends BaseTemplate {
        /**
         * @param $label string
         * @return string
-        * 
+        *
         * @fixed
         */
        function searchForm( $which ) {
@@ -692,7 +693,7 @@ class CologneBlueTemplate extends BaseTemplate {
                        . "<input type='submit' class=\"searchButton\" name=\"go\" value=\"" . wfMessage( 'searcharticle' )->escaped() . "\" />";
 
                if( $wgUseTwoButtonsSearchForm ) {
-                       $s .= " <input type='submit' class=\"searchButton\" name=\"fulltext\" value=\"" . wfMessage( 'search' )->escaped() . "\" />\n";
+                       $s .= " <input type='submit' class=\"searchButton\" name=\"fulltext\" value=\"" . wfMessage( 'searchbutton' )->escaped() . "\" />\n";
                } else {
                        $s .= '<div><a href="' . $action . '" rel="search">' . wfMessage( 'powersearch-legend' )->escaped() . "</a></div>\n";
                }