CologneBlue rewrite: rework otherLanguages(), CSS: serif font
authorMatmaRex <matma.rex@gmail.com>
Tue, 2 Oct 2012 19:47:07 +0000 (21:47 +0200)
committerMatmaRex <matma.rex@gmail.com>
Fri, 5 Oct 2012 16:15:52 +0000 (18:15 +0200)
We have to override SkinTemplate->formatLanguageName() in SkinCologneBlue
not to capitalize the language names, as they are not actually used in the
sidebar and look better this way.

This change revealed that CologneBlue does not set the base font for the
page, causing text marked as being in a different language (e.g., language
links) to be displayed in a different fond in some browsers. Adding
"font-family: serif" to body fixed the issue.

Change-Id: I8b56ccb6f9a2ba47613f135754b5a133a6870412

skins/CologneBlue.php
skins/cologneblue/screen.css

index a22bab6..473ee2b 100644 (file)
@@ -43,7 +43,14 @@ 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.
+        */
+       function formatLanguageName( $name ) {
+               return $name;
+       }
 }
 
 class CologneBlueTemplate extends BaseTemplate {
@@ -77,46 +84,28 @@ class CologneBlueTemplate extends BaseTemplate {
                return $this->getSkin()->getLanguage()->pipeList( $s );
        }
        
+       // @fixed
        function otherLanguages() {
                global $wgHideInterlanguageLinks;
-
                if ( $wgHideInterlanguageLinks ) {
-                       return '';
+                       return "";
                }
 
-               $a = $this->getSkin()->getOutput()->getLanguageLinks();
-
-               if ( 0 == count( $a ) ) {
-                       return '';
+               // We override SkinTemplate->formatLanguageName() in SkinCologneBlue
+               // not to capitalize the language names.
+               $language_urls = $this->data['language_urls'];
+               if ( empty( $language_urls ) ) {
+                       return "";
                }
 
-               $s = wfMessage( 'otherlanguages' )->text() . wfMessage( 'colon-separator' )->text();
-               $first = true;
-
-               if ( $this->getSkin()->getLanguage()->isRTL() ) {
-                       $s .= '<span dir="ltr">';
-               }
-
-               foreach ( $a as $l ) {
-                       if ( !$first ) {
-                               $s .= wfMessage( 'pipe-separator' )->escaped();
-                       }
-
-                       $first = false;
-
-                       $nt = Title::newFromText( $l );
-                       $text = Language::fetchLanguageName( $nt->getInterwiki() );
-
-                       $s .= Html::element( 'a',
-                               array( 'href' => $nt->getFullURL(), 'title' => $nt->getText(), 'class' => "external" ),
-                               $text == '' ? $l : $text );
-               }
-
-               if ( $this->getSkin()->getLanguage()->isRTL() ) {
-                       $s .= '</span>';
+               $s = array();
+               foreach ( $language_urls as $key => $data ) {
+                       $s[] = $this->makeListItem( $key, $data, array( 'tag' => 'span' ) );
                }
 
-               return $s;
+               return wfMessage( 'otherlanguages' )->text()
+                       . wfMessage( 'colon-separator' )->text()
+                       . $this->getSkin()->getLanguage()->pipeList( $s );
        }
 
        // @fixed
index a6f9f8c..aac786d 100644 (file)
@@ -2,6 +2,7 @@ body {
        margin: 0;
        padding: 0;
        color: black;
+       font-family: serif;
 }
 
 #specialform {