Merge "Correct documentation for EditFilter hook parameter"
[lhc/web/wiklou.git] / includes / SkinTemplate.php
index df94dcb..5a32d47 100644 (file)
@@ -423,7 +423,7 @@ class SkinTemplate extends Skin {
                                        if ( strval( $ilLangName ) === '' ) {
                                                $ilLangName = $l;
                                        } else {
-                                               $ilLangName = $this->getLanguage()->ucfirst( $ilLangName );
+                                               $ilLangName = $this->formatLanguageName( $ilLangName );
                                        }
                                        $language_urls[] = array(
                                                'href' => $nt->getFullURL(),
@@ -498,6 +498,18 @@ class SkinTemplate extends Skin {
                wfProfileOut( __METHOD__ );
        }
 
+       /**
+        * Format language name for use in sidebar interlanguage links list.
+        * By default it is capitalized.
+        *
+        * @param $name string Language name, e.g. "English" or "espaƱol"
+        * @return string
+        * @private
+        */
+       function formatLanguageName( $name ) {
+               return $this->getLanguage()->ucfirst( $name );
+       }
+
        /**
         * Output the string, or print error message if it's
         * an error object of the appropriate type.
@@ -529,6 +541,8 @@ class SkinTemplate extends Skin {
         * @return array
         */
        protected function buildPersonalUrls() {
+               global $wgSecureLogin;
+
                $title = $this->getTitle();
                $request = $this->getRequest();
                $pageurl = $title->getLocalURL();
@@ -551,6 +565,11 @@ class SkinTemplate extends Skin {
                                $a['returntoquery'] = $query;
                        }
                }
+
+               if ( $wgSecureLogin && $request->detectProtocol() === 'https' ) {
+                       $a['wpStickHTTPS'] = true;
+               }
+
                $returnto = wfArrayToCGI( $a );
                if( $this->loggedin ) {
                        $personal_urls['userpage'] = array(
@@ -1130,6 +1149,7 @@ class SkinTemplate extends Skin {
 
                $nav_urls['print'] = false;
                $nav_urls['permalink'] = false;
+               $nav_urls['info'] = false;
                $nav_urls['whatlinkshere'] = false;
                $nav_urls['recentchangeslinked'] = false;
                $nav_urls['contributions'] = false;
@@ -1153,10 +1173,15 @@ class SkinTemplate extends Skin {
                        if ( $revid ) {
                                $nav_urls['permalink'] = array(
                                        'text' => $this->msg( 'permalink' )->text(),
-                                       'href' => $out->getTitle()->getLocalURL( "oldid=$revid" )
+                                       'href' => $this->getTitle()->getLocalURL( "oldid=$revid" )
                                );
                        }
 
+                       $nav_urls['info'] = array(
+                               'text' => $this->msg( 'pageinfo-toolboxlink' )->text(),
+                               'href' => $out->getTitle()->getLocalURL( "action=info" )
+                       );
+
                        // Use the copy of revision ID in case this undocumented, shady hook tries to mess with internals
                        wfRunHooks( 'SkinTemplateBuildNavUrlsNav_urlsAfterPermalink',
                                array( &$this, &$nav_urls, &$revid, &$revid ) );
@@ -1225,7 +1250,7 @@ abstract class QuickTemplate {
        /**
         * Constructor
         */
-       public function QuickTemplate() {
+       function __construct() {
                $this->data = array();
                $this->translator = new MediaWiki_I18N();
        }
@@ -1417,6 +1442,11 @@ abstract class BaseTemplate extends QuickTemplate {
                                $toolbox['permalink']['id'] = 't-permalink';
                        }
                }
+               if ( isset( $this->data['nav_urls']['info'] ) && $this->data['nav_urls']['info'] ) {
+                       $toolbox['info'] = $this->data['nav_urls']['info'];
+                       $toolbox['info']['id'] = 't-info';
+               }
+
                wfRunHooks( 'BaseTemplateToolbox', array( &$this, &$toolbox ) );
                wfProfileOut( __METHOD__ );
                return $toolbox;
@@ -1720,7 +1750,7 @@ abstract class BaseTemplate extends QuickTemplate {
                        foreach ( array( 'id', 'class', 'active', 'tag' ) as $k ) {
                                unset( $link[$k] );
                        }
-                       if ( isset( $item['id'] ) ) {
+                       if ( isset( $item['id'] ) && !isset( $item['single-id'] ) ) {
                                // The id goes on the <li> not on the <a> for single links
                                // but makeSidebarLink still needs to know what id to use when
                                // generating tooltips and accesskeys.
@@ -1783,11 +1813,15 @@ abstract class BaseTemplate extends QuickTemplate {
                                );
                                unset( $buttonAttrs['src'] );
                                unset( $buttonAttrs['alt'] );
+                               unset( $buttonAttrs['width'] );
+                               unset( $buttonAttrs['height'] );
                                $imgAttrs = array(
                                        'src' => $attrs['src'],
                                        'alt' => isset( $attrs['alt'] )
                                                ? $attrs['alt']
                                                : $this->translator->translate( 'searchbutton' ),
+                                       'width' => isset( $attrs['width'] ) ? $attrs['width'] : null,
+                                       'height' => isset( $attrs['height'] ) ? $attrs['height'] : null,
                                );
                                return Html::rawElement( 'button', $buttonAttrs, Html::element( 'img', $imgAttrs ) );
                        default: