Dr0ptp4kt has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/66010


Change subject: Rewrite links in the Read in Another Language section.
......................................................................

Rewrite links in the Read in Another Language section.

* Current functionality is a hack.
* This patch rewrites based on whitelisted languages.

Change-Id: Iaa5b5288d968b48db36870d7add38e60570dcbd4
---
M includes/PageRenderingHooks.php
1 file changed, 24 insertions(+), 2 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ZeroRatedMobileAccess 
refs/changes/10/66010/1

diff --git a/includes/PageRenderingHooks.php b/includes/PageRenderingHooks.php
index b391239..abe0ffb 100644
--- a/includes/PageRenderingHooks.php
+++ b/includes/PageRenderingHooks.php
@@ -66,15 +66,24 @@
                $template->set( 'privacy', $privacyText );
                $template->set( 'terms-use', $termsText );
 
-               $redirectWarningQPS = '?renderZeroRatedRedirect=true&returnto=';
+               $redirectWarningQPS = 'renderZeroRatedRedirect=true&returnto=';
 
                if ( isset( $template->data['language_urls'] )
                        && 0 < count( $template->data['language_urls'] )
                ) {
                        $languageUrls = $template->data['language_urls'];
+                       $freeLangs = $config['whitelistedLangs'];
 
                        foreach ( $languageUrls as &$lang ) {
-                               $lang['href'] = $redirectWarningQPS . 
urlencode( $lang['href'] );
+                               if ( 
preg_match('#^//([-a-zA-Z_]+)\.(zero|m)\.#', $lang['href'], $match ) ) {
+                                       $lang['href'] = 
self::rewriteLanguageLink(
+                                               $wgRequest,
+                                               $lang['href'],
+                                               $redirectWarningQPS,
+                                               $match[1],
+                                               $freeLangs
+                                       );
+                               }
                        }
 
                        $template->set( 'language_urls', $languageUrls );
@@ -672,6 +681,19 @@
                return $link;
        }
 
+       private static function rewriteLanguageLink( \WebRequest $request, 
$link, $redirectQuery, $languageCode, $freeLangs ) {
+               $languageUrl = $link;
+               $isFree = ( 0 === count( $freeLangs ) || in_array( 
$languageCode, $freeLangs ) );
+               if ( !$isFree ) {
+                       if ( self::isZeroRequest() ) {
+                               $languageUrl = 
str_replace(self::$zerodotParent, self::$mdotParent, $languageUrl );
+                       }
+                       $languageUrl = $request->appendQuery(
+                               $redirectQuery
+                               . urlencode( $languageUrl ) );
+               }
+               return $languageUrl;
+       }
 
        public function getVersion() {
                // TODO? Delete this?

-- 
To view, visit https://gerrit.wikimedia.org/r/66010
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iaa5b5288d968b48db36870d7add38e60570dcbd4
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ZeroRatedMobileAccess
Gerrit-Branch: master
Gerrit-Owner: Dr0ptp4kt <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to