X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FSkinTemplate.php;h=a673a652c9a010f937c4c5d2455b98ca8848bb2c;hb=a5028bfe5f638e53ab002114435e8e480ef4bbc9;hp=ddd0780dcd68ff0cd1193f7326701322f04fada2;hpb=9315e39133ef940d76cfcb3ccd6514400cbb473b;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SkinTemplate.php b/includes/SkinTemplate.php index ddd0780dcd..a673a652c9 100644 --- a/includes/SkinTemplate.php +++ b/includes/SkinTemplate.php @@ -169,7 +169,7 @@ class SkinTemplate extends Skin { unset( $query['returnto'] ); unset( $query['returntoquery'] ); } - $this->thisquery = wfArrayToCGI( $query ); + $this->thisquery = wfArrayToCgi( $query ); $this->loggedin = $user->isLoggedIn(); $this->username = $user->getName(); @@ -413,25 +413,28 @@ class SkinTemplate extends Skin { $language_urls = array(); if ( !$wgHideInterlanguageLinks ) { - foreach( $out->getLanguageLinks() as $l ) { - $tmp = explode( ':', $l, 2 ); - $class = 'interwiki-' . $tmp[0]; - unset( $tmp ); - $nt = Title::newFromText( $l ); - if ( $nt ) { - $ilLangName = Language::fetchLanguageName( $nt->getInterwiki() ); + foreach( $out->getLanguageLinks() as $languageLinkText ) { + $languageLinkParts = explode( ':', $languageLinkText, 2 ); + $class = 'interwiki-' . $languageLinkParts[0]; + unset( $languageLinkParts ); + $languageLinkTitle = Title::newFromText( $languageLinkText ); + if ( $languageLinkTitle ) { + $ilInterwikiCode = $languageLinkTitle->getInterwiki(); + $ilLangName = Language::fetchLanguageName( $ilInterwikiCode ); + if ( strval( $ilLangName ) === '' ) { - $ilLangName = $l; + $ilLangName = $languageLinkText; } else { $ilLangName = $this->formatLanguageName( $ilLangName ); } + $language_urls[] = array( - 'href' => $nt->getFullURL(), + 'href' => $languageLinkTitle->getFullURL(), 'text' => $ilLangName, - 'title' => $nt->getText(), + 'title' => $languageLinkTitle->getText(), 'class' => $class, - 'lang' => $nt->getInterwiki(), - 'hreflang' => $nt->getInterwiki(), + 'lang' => $ilInterwikiCode, + 'hreflang' => $ilInterwikiCode ); } } @@ -574,7 +577,7 @@ class SkinTemplate extends Skin { $a['wpStickHTTPS'] = true; } - $returnto = wfArrayToCGI( $a ); + $returnto = wfArrayToCgi( $a ); if( $this->loggedin ) { $personal_urls['userpage'] = array( 'text' => $this->username, @@ -690,12 +693,14 @@ class SkinTemplate extends Skin { } /** - * TODO document - * @param $title Title - * @param $message String message key - * @param $selected Bool - * @param $query String - * @param $checkEdit Bool + * Builds an array with tab definition + * + * @param Title $title page where the tab links to + * @param string|array $message message key or an array of message keys (will fall back) + * @param boolean $selected display the tab as selected + * @param string $query query string attached to tab URL + * @param boolean $checkEdit check if $title exists and mark with .new if one doesn't + * * @return array */ function tabAction( $title, $message, $selected, $query = '', $checkEdit = false ) { @@ -705,7 +710,11 @@ class SkinTemplate extends Skin { } if( $checkEdit && !$title->isKnown() ) { $classes[] = 'new'; - $query = 'action=edit&redlink=1'; + if ( $query !== '' ) { + $query = 'action=edit&redlink=1&' . $query; + } else { + $query = 'action=edit&redlink=1'; + } } // wfMessageFallback will nicely accept $message as an array of fallbacks @@ -957,7 +966,7 @@ class SkinTemplate extends Skin { } } - if ( $title->getNamespace() !== NS_MEDIAWIKI && $title->quickUserCan( 'protect', $user ) ) { + if ( $title->getNamespace() !== NS_MEDIAWIKI && $title->quickUserCan( 'protect', $user ) && $title->getRestrictionTypes() ) { $mode = $title->isProtected() ? 'unprotect' : 'protect'; $content_navigation['actions'][$mode] = array( 'class' => ( $onPage && $action == $mode ) ? 'selected' : false, @@ -1002,6 +1011,12 @@ class SkinTemplate extends Skin { // Gets preferred variant (note that user preference is // only possible for wiki content language variant) $preferred = $pageLang->getPreferredVariant(); + if ( Action::getActionName( $this ) === 'view' ) { + $params = $request->getQueryValues(); + unset( $params['title'] ); + } else { + $params = array(); + } // Loops over each variant foreach( $variants as $code ) { // Gets variant name from language code @@ -1015,7 +1030,7 @@ class SkinTemplate extends Skin { $content_navigation['variants'][] = array( 'class' => ( $code == $preferred ) ? 'selected' : false, 'text' => $varname, - 'href' => $title->getLocalURL( array( 'variant' => $code ) ), + 'href' => $title->getLocalURL( array( 'variant' => $code ) + $params ), 'lang' => $code, 'hreflang' => $code ); @@ -1207,6 +1222,7 @@ class SkinTemplate extends Skin { $rootUser = $user->getName(); $nav_urls['contributions'] = array( + 'text' => $this->msg( 'contributions', $rootUser )->text(), 'href' => self::makeSpecialUrlSubpage( 'Contributions', $rootUser ) );