jenkins-bot has submitted this change and it was merged.

Change subject: Adding interstitials for MobileFrontend 'Read in other 
language' section and footer.
......................................................................


Adding interstitials for MobileFrontend 'Read in other language' section and 
footer.

Change-Id: If0940ebf1b23ee7ccde9c7bf3a3fdf2f375c2732
---
M ZeroRatedMobileAccess.php
M includes/PageRenderingHooks.php
2 files changed, 62 insertions(+), 1 deletion(-)

Approvals:
  Dr0ptp4kt: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/ZeroRatedMobileAccess.php b/ZeroRatedMobileAccess.php
index 89dcce9..984afbe 100644
--- a/ZeroRatedMobileAccess.php
+++ b/ZeroRatedMobileAccess.php
@@ -86,6 +86,7 @@
 $wgHooks['ResourceLoaderTestModules'][] = $ns . 
'PageRenderingHooks::onResourceLoaderTestModules';
 $wgHooks['BeforePageDisplayMobile'][] = $ns . 
'PageRenderingHooks::onBeforePageDisplay';
 $wgHooks['GetMobileUrl'][] = $ns . 'PageRenderingHooks::onGetMobileUrl';
+$wgHooks['MinervaPreRender'][] = $ns . 
'PageRenderingHooks::onMinervaPreRender';
 
 // Registers hook and content handlers for JSON Zero config pages iff
 // running on the MediaWiki instance housing the zero configs (i.e. meta).
diff --git a/includes/PageRenderingHooks.php b/includes/PageRenderingHooks.php
index 059983e..1ca9efd 100644
--- a/includes/PageRenderingHooks.php
+++ b/includes/PageRenderingHooks.php
@@ -11,6 +11,7 @@
 use RawMessage;
 use ResourceLoader;
 use Title;
+use SkinTemplate;
 
 /**
  * Main class for ZeroRatedMobileAccess extension.
@@ -37,6 +38,47 @@
                return true;
        }
 
+
+       public static function onMinervaPreRender( \BaseTemplate $template ) {
+               global $wgRequest;
+
+               $config = self::getConfig();
+
+               if ( $config !== null ) {
+                       $skin = new SkinTemplate();
+                       $redirectWarning = 
'&renderZeroRatedRedirect=true&returnto=';
+                       $pattern = '/href=[\'"](.*?)[\'"]/';
+
+                       $licenseText = wfMessage( 
'mobile-frontend-footer-license' )->parse();
+                       $privacyText = $skin->footerLink( 
'mobile-frontend-privacy-link-text', 'privacypage' );
+                       $termsText = wfMessage( 
'mobile-frontend-terms-use-text' )->parse();
+
+                       $licenseText = self::addWarning( $wgRequest, $pattern, 
$licenseText, $redirectWarning ) ;
+                       $privacyText = self::addWarning( $wgRequest, $pattern, 
$privacyText, $redirectWarning );
+                       $termsText = self::addWarning( $wgRequest, $pattern, 
$termsText, $redirectWarning );
+
+                       $template->set( 'mobile-license', $licenseText );
+                       $template->set( 'privacy', $privacyText );
+                       $template->set( 'terms-use', $termsText );
+
+                       $redirectWarningQPS = 
'?renderZeroRatedRedirect=true&returnto=';
+
+                       if (isset( $template->data['language_urls'] )
+                               && 0 < count( $template->data['language_urls'] )
+                       ) {
+                               $languageUrls = 
$template->data['language_urls'];
+
+                               foreach ($languageUrls as &$lang ) {
+                                       $lang['href'] = $redirectWarningQPS . 
urlencode( $lang['href'] );
+                               }
+
+                               $template->set( 'language_urls', $languageUrls 
);
+                       }
+               }
+
+               return true;
+
+       }
 
        /**
         * BeforePageDisplayMobile hook handler
@@ -109,7 +151,6 @@
                }
 
                if ( $showBanner && $config !== null ) {
-                       $options = array();
                        $options['toggle_view_desktop'] = 
'&renderZeroRatedBanner=true&renderwarning=yes&returnto=';
                        $options['supported_languages'] = $config['showLangs'];
                }
@@ -591,6 +632,25 @@
                return self::isZeroRequest();
        }
 
+       /**
+        * Adds parameters to URLs. Helper for onMinervaPreRender( 
\BaseTemplate &$template )
+        * @param \WebRequest $request The request object that will contain the 
request path.
+        * @param $pattern The regular expression string capturing the URI.
+        * @param $link The full link, usually parsed wikitext.
+        * @param $redirectQuery The name-value query param string to add to 
the URI.
+        * @return mixed The link with URIs rewritten.
+        */
+       private static function addWarning( \WebRequest $request, $pattern, 
$link, $redirectQuery ) {
+               if ( preg_match( $pattern, $link, $match ) ) {
+                       $link = str_replace(
+                               $match[1],
+                               $request->appendQuery( $redirectQuery ) . 
urlencode($match[1]),
+                               $link
+                       );
+                       return $link;
+               }
+       }
+
 
        public function getVersion() {
                // TODO? Delete this?

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

Gerrit-MessageType: merged
Gerrit-Change-Id: If0940ebf1b23ee7ccde9c7bf3a3fdf2f375c2732
Gerrit-PatchSet: 9
Gerrit-Project: mediawiki/extensions/ZeroRatedMobileAccess
Gerrit-Branch: master
Gerrit-Owner: Dr0ptp4kt <ab...@wikimedia.org>
Gerrit-Reviewer: Dr0ptp4kt <ab...@wikimedia.org>
Gerrit-Reviewer: Jdlrobson <jrob...@wikimedia.org>
Gerrit-Reviewer: Yurik <yu...@wikimedia.org>
Gerrit-Reviewer: awjrichards <aricha...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to