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