(bug 42030) Include original URL params in variant links
authorLiangent <liangent@gmail.com>
Sat, 17 Nov 2012 18:14:21 +0000 (18:14 +0000)
committerLiangent <liangent@gmail.com>
Sat, 17 Nov 2012 18:14:21 +0000 (02:14 +0800)
Change-Id: Iaedb56445b97ee09bd7fa08c9f23cd147757dee4

includes/SkinTemplate.php

index dcc37d7..4734f5b 100644 (file)
@@ -999,6 +999,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
@@ -1012,7 +1018,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
                                                );