Yurik has uploaded a new change for review.

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


Change subject: * Refactoring, namespaces, cleanup
......................................................................

* Refactoring, namespaces, cleanup

This is the first patch in a series to refactor Zero Mobile extension.
* All classes moved to inclueds/ dir
* All classes moved to \Extensions\ZeroRatedMobileAccess namespace
* Removed unused ZeroRatedMobileTemplate
* ZeroRatedMobileAccess.body.php spltted up into two php files:
   class ExtZeroRatedMobileAccess => PageRenderingHooks.php
   class ZeroRatedMobileAccess => ZeroSpecialPage.php

Change-Id: Ic043db9d54cc39b975bcd9caaf08cb218ee5acec
---
M ZeroRatedMobileAccess.php
D ZeroRatedMobileAccessTemplate.php
R includes/PageRenderingHooks.php
A includes/ZeroSpecialPage.php
4 files changed, 55 insertions(+), 331 deletions(-)


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

diff --git a/ZeroRatedMobileAccess.php b/ZeroRatedMobileAccess.php
index 11b478e..f1aea19 100644
--- a/ZeroRatedMobileAccess.php
+++ b/ZeroRatedMobileAccess.php
@@ -19,7 +19,7 @@
 $wgExtensionCredits['other'][] = array(
        'path'  =>  __FILE__,
        'name'  =>  'ZeroRatedMobileAccess',
-       'version'  =>  '1.0.0',
+       'version'  =>  '1.1.0',
        'author' => array( 'Patrick Reilly' ),
        'descriptionmsg'  =>  'zero-rated-mobile-access-desc',
        'url'  =>  
'https://www.mediawiki.org/wiki/Extension:ZeroRatedMobileAccess',
@@ -31,18 +31,20 @@
 // autoload extension classes
 
 $autoloadClasses = array (
-       'ZeroRatedMobileAccessTemplate' => 'ZeroRatedMobileAccessTemplate',
-       'ExtZeroRatedMobileAccess' => 'ZeroRatedMobileAccess.body',
-       'ZeroRatedMobileAccess' => 'ZeroRatedMobileAccess.body',
+       'PageRenderingHooks' => 'PageRenderingHooks',
+       'ZeroSpecialPage' => 'ZeroSpecialPage',
 );
 
+$ns = 'Extensions\ZeroRatedMobileAccess\\';
+$cwd = $cwd . 'includes' . DIRECTORY_SEPARATOR;
 foreach ( $autoloadClasses as $className => $classFilename ) {
-       $wgAutoloadClasses[$className] = $cwd . $classFilename . '.php';
+       $wgAutoloadClasses[$ns . $className] = $cwd . $classFilename . '.php';
 }
 
 $wgEnableZeroRatedMobileAccessTesting = false;
+$wgZeroRatedMobileAccessConfigIndexUri = false;
 
-$wgHooks['BeforePageDisplayMobile'][] = 
'ExtZeroRatedMobileAccess::onBeforePageDisplay';
-$wgHooks['GetMobileUrl'][] = 'ExtZeroRatedMobileAccess::getMobileUrl';
-$wgSpecialPages['ZeroRatedMobileAccess'] = 'ZeroRatedMobileAccess';
+$wgHooks['BeforePageDisplayMobile'][] = $ns . 
'PageRenderingHooks::onBeforePageDisplay';
+$wgHooks['GetMobileUrl'][] = $ns . 'PageRenderingHooks::getMobileUrl';
+$wgSpecialPages['ZeroRatedMobileAccess'] = $ns . 'ZeroSpecialPage';
 $wgSpecialPageGroups['ZeroRatedMobileAccess'] = 'other';
diff --git a/ZeroRatedMobileAccessTemplate.php 
b/ZeroRatedMobileAccessTemplate.php
deleted file mode 100644
index 05044df..0000000
--- a/ZeroRatedMobileAccessTemplate.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-abstract class ZeroRatedMobileAccessTemplate {
-       public $data;
-
-       /**
-        * Constructor
-        */
-       public function __construct() {
-               $this->data = array();
-       }
-
-       /**
-        * Sets the value $value to $name
-        * @param $name
-        * @param $value
-        */
-       public function set( $name, $value ) {
-               $this->data[$name] = $value;
-       }
-
-       /**
-        * Sets the value $value to $name
-        * @param $options array
-        */
-       public function setByArray( $options ) {
-               foreach ( $options as $name => $value ) {
-                       $this->set( $name, $value );
-               }
-       }
-
-       /**
-        * Gets the value of $name
-        * @param $name
-        * @return string
-        */
-       public function get( $name ) {
-               return $this->data[$name];
-       }
-
-       /**
-        * Main function, used by classes that subclass 
ZeroRatedMobileAccessTemplate
-        * to show the actual HTML output
-        */
-       abstract public function getHTML();
-}
diff --git a/ZeroRatedMobileAccess.body.php b/includes/PageRenderingHooks.php
similarity index 79%
rename from ZeroRatedMobileAccess.body.php
rename to includes/PageRenderingHooks.php
index 7c575e8..ac87dab 100644
--- a/ZeroRatedMobileAccess.body.php
+++ b/includes/PageRenderingHooks.php
@@ -1,30 +1,25 @@
 <?php
 
+namespace Extensions\ZeroRatedMobileAccess;
+use DOMDocument;
+use DOMElement;
+use DOMXPath;
+use DateTimeZone;
+use DateTime;
+use Http;
+use Html;
+use FormatJson;
+use Language;
+use OutputPage;
+use Title;
+
 /**
  * Main class for ZeroRatedMobileAccess extension.
  *
  * @file
  * @ingroup Extensions
  */
-class ZeroRatedMobileAccess extends UnlistedSpecialPage {
-       /**
-        * Constructor — set up the ZeroRatedMobileAccess page
-        */
-       public function __construct() {
-               parent::__construct( 'ZeroRatedMobileAccess' );
-       }
-
-       /**
-        * Show the special page
-        *
-        * @param $par Mixed: parameter passed to the special page or null
-        */
-       public function execute( $par ) {
-               $this->setHeaders();
-       }
-}
-
-class ExtZeroRatedMobileAccess {
+class PageRenderingHooks {
        public static $renderZeroRatedLandingPage;
        public static $renderZeroRatedBanner;
        private static $formatMobileUrl = '//%s.zero.wikipedia.org/';
@@ -49,7 +44,7 @@
         * @return bool
         */
        public static function onBeforePageDisplay( &$out, &$options ) {
-               $ext = new ExtZeroRatedMobileAccess();
+               $ext = new PageRenderingHooks();
                return $ext->beforePageDisplayHTML( $out, $options );
        }
 
@@ -308,7 +303,7 @@
                                                $languageUrl = sprintf( 
self::$formatMobileUrl, $languageCode );
                                                $languageLink = Html::element( 
'a',
                                                        array(  'id' => 'lang_' 
. $languageCode,
-                                                                       'href' 
=> $languageUrl ),
+                                                                       'href' 
=> $languageUrl ),
                                                        wfMessage( 
'zero-rated-mobile-access-home-page-selection',
                                                                ucfirst( 
$languageName ) )->inLanguage( $languageCode )
                                                );
@@ -405,7 +400,7 @@
        }
 
        /**
-       * Returns the Html of a page with the various links appended with 
zeropartner parameter
+       * Returns the Html of a page with the various links appended with zero 
partner parameter
        *
        * @param String $html: Html of current page
        * @return String
@@ -878,261 +873,6 @@
                $expiry = self::todaysStart() + 24 * 3600 - wfTimestamp() + 10;
                wfProfileOut( __METHOD__ );
                return min( $expiry, 900 );
-       }
-
-       /**
-       * Get full country name from code
-       *
-       * @param string $code: alpha-2 code ISO 3166 country code
-       * @return String
-       */
-       private static function getFullCountryNameFromCode( $code ) {
-               wfProfileIn( __METHOD__ );
-               $countries = array(
-                       'AF' => 'AFGHANISTAN',
-                       'AL' => 'ALBANIA',
-                       'DZ' => 'ALGERIA',
-                       'AS' => 'AMERICAN SAMOA',
-                       'AD' => 'ANDORRA',
-                       'AO' => 'ANGOLA',
-                       'AI' => 'ANGUILLA',
-                       'AQ' => 'ANTARCTICA',
-                       'AG' => 'ANTIGUA AND BARBUDA',
-                       'AR' => 'ARGENTINA',
-                       'AM' => 'ARMENIA',
-                       'AW' => 'ARUBA',
-                       'AU' => 'AUSTRALIA',
-                       'AT' => 'AUSTRIA',
-                       'AZ' => 'AZERBAIJAN',
-                       'BS' => 'BAHAMAS',
-                       'BH' => 'BAHRAIN',
-                       'BD' => 'BANGLADESH',
-                       'BB' => 'BARBADOS',
-                       'BY' => 'BELARUS',
-                       'BE' => 'BELGIUM',
-                       'BZ' => 'BELIZE',
-                       'BJ' => 'BENIN',
-                       'BM' => 'BERMUDA',
-                       'BT' => 'BHUTAN',
-                       'BO' => 'BOLIVIA',
-                       'BA' => 'BOSNIA AND HERZEGOVINA',
-                       'BW' => 'BOTSWANA',
-                       'BV' => 'BOUVET ISLAND',
-                       'BR' => 'BRAZIL',
-                       'IO' => 'BRITISH INDIAN OCEAN TERRITORY',
-                       'BN' => 'BRUNEI DARUSSALAM',
-                       'BG' => 'BULGARIA',
-                       'BF' => 'BURKINA FASO',
-                       'BI' => 'BURUNDI',
-                       'KH' => 'CAMBODIA',
-                       'CM' => 'CAMEROON',
-                       'CA' => 'CANADA',
-                       'CV' => 'CAPE VERDE',
-                       'KY' => 'CAYMAN ISLANDS',
-                       'CF' => 'CENTRAL AFRICAN REPUBLIC',
-                       'TD' => 'CHAD',
-                       'CL' => 'CHILE',
-                       'CN' => 'CHINA',
-                       'CX' => 'CHRISTMAS ISLAND',
-                       'CC' => 'COCOS (KEELING) ISLANDS',
-                       'CO' => 'COLOMBIA',
-                       'KM' => 'COMOROS',
-                       'CG' => 'CONGO',
-                       'CD' => 'CONGO, THE DEMOCRATIC REPUBLIC OF THE',
-                       'CK' => 'COOK ISLANDS',
-                       'CR' => 'COSTA RICA',
-                       'CI' => 'COTE D IVOIRE',
-                       'HR' => 'CROATIA',
-                       'CU' => 'CUBA',
-                       'CY' => 'CYPRUS',
-                       'CZ' => 'CZECH REPUBLIC',
-                       'DK' => 'DENMARK',
-                       'DJ' => 'DJIBOUTI',
-                       'DM' => 'DOMINICA',
-                       'DO' => 'DOMINICAN REPUBLIC',
-                       'TP' => 'EAST TIMOR',
-                       'EC' => 'ECUADOR',
-                       'EG' => 'EGYPT',
-                       'SV' => 'EL SALVADOR',
-                       'GQ' => 'EQUATORIAL GUINEA',
-                       'ER' => 'ERITREA',
-                       'EE' => 'ESTONIA',
-                       'ET' => 'ETHIOPIA',
-                       'FK' => 'FALKLAND ISLANDS (MALVINAS)',
-                       'FO' => 'FAROE ISLANDS',
-                       'FJ' => 'FIJI',
-                       'FI' => 'FINLAND',
-                       'FR' => 'FRANCE',
-                       'GF' => 'FRENCH GUIANA',
-                       'PF' => 'FRENCH POLYNESIA',
-                       'TF' => 'FRENCH SOUTHERN TERRITORIES',
-                       'GA' => 'GABON',
-                       'GM' => 'GAMBIA',
-                       'GE' => 'GEORGIA',
-                       'DE' => 'GERMANY',
-                       'GH' => 'GHANA',
-                       'GI' => 'GIBRALTAR',
-                       'GR' => 'GREECE',
-                       'GL' => 'GREENLAND',
-                       'GD' => 'GRENADA',
-                       'GP' => 'GUADELOUPE',
-                       'GU' => 'GUAM',
-                       'GT' => 'GUATEMALA',
-                       'GN' => 'GUINEA',
-                       'GW' => 'GUINEA-BISSAU',
-                       'GY' => 'GUYANA',
-                       'HT' => 'HAITI',
-                       'HM' => 'HEARD ISLAND AND MCDONALD ISLANDS',
-                       'VA' => 'HOLY SEE (VATICAN CITY STATE)',
-                       'HN' => 'HONDURAS',
-                       'HK' => 'HONG KONG',
-                       'HU' => 'HUNGARY',
-                       'IS' => 'ICELAND',
-                       'IN' => 'INDIA',
-                       'ID' => 'INDONESIA',
-                       'IR' => 'IRAN, ISLAMIC REPUBLIC OF',
-                       'IQ' => 'IRAQ',
-                       'IE' => 'IRELAND',
-                       'IL' => 'ISRAEL',
-                       'IT' => 'ITALY',
-                       'JM' => 'JAMAICA',
-                       'JP' => 'JAPAN',
-                       'JO' => 'JORDAN',
-                       'KZ' => 'KAZAKSTAN',
-                       'KE' => 'KENYA',
-                       'KI' => 'KIRIBATI',
-                       'KP' => 'KOREA DEMOCRATIC PEOPLES REPUBLIC OF',
-                       'KR' => 'KOREA REPUBLIC OF',
-                       'KW' => 'KUWAIT',
-                       'KG' => 'KYRGYZSTAN',
-                       'LA' => 'LAO PEOPLES DEMOCRATIC REPUBLIC',
-                       'LV' => 'LATVIA',
-                       'LB' => 'LEBANON',
-                       'LS' => 'LESOTHO',
-                       'LR' => 'LIBERIA',
-                       'LY' => 'LIBYAN ARAB JAMAHIRIYA',
-                       'LI' => 'LIECHTENSTEIN',
-                       'LT' => 'LITHUANIA',
-                       'LU' => 'LUXEMBOURG',
-                       'MO' => 'MACAU',
-                       'MK' => 'MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF',
-                       'MG' => 'MADAGASCAR',
-                       'MW' => 'MALAWI',
-                       'MY' => 'MALAYSIA',
-                       'MV' => 'MALDIVES',
-                       'ML' => 'MALI',
-                       'MT' => 'MALTA',
-                       'MH' => 'MARSHALL ISLANDS',
-                       'MQ' => 'MARTINIQUE',
-                       'MR' => 'MAURITANIA',
-                       'MU' => 'MAURITIUS',
-                       'YT' => 'MAYOTTE',
-                       'MX' => 'MEXICO',
-                       'FM' => 'MICRONESIA, FEDERATED STATES OF',
-                       'MD' => 'MOLDOVA, REPUBLIC OF',
-                       'MC' => 'MONACO',
-                       'MN' => 'MONGOLIA',
-                       'MS' => 'MONTSERRAT',
-                       'ME' => 'MONTENEGRO',
-                       'MA' => 'MOROCCO',
-                       'MZ' => 'MOZAMBIQUE',
-                       'MM' => 'MYANMAR',
-                       'NA' => 'NAMIBIA',
-                       'NR' => 'NAURU',
-                       'NP' => 'NEPAL',
-                       'NL' => 'NETHERLANDS',
-                       'AN' => 'NETHERLANDS ANTILLES',
-                       'NC' => 'NEW CALEDONIA',
-                       'NZ' => 'NEW ZEALAND',
-                       'NI' => 'NICARAGUA',
-                       'NE' => 'NIGER',
-                       'NG' => 'NIGERIA',
-                       'NU' => 'NIUE',
-                       'NF' => 'NORFOLK ISLAND',
-                       'MP' => 'NORTHERN MARIANA ISLANDS',
-                       'NO' => 'NORWAY',
-                       'OM' => 'OMAN',
-                       'PK' => 'PAKISTAN',
-                       'PW' => 'PALAU',
-                       'PS' => 'PALESTINIAN TERRITORY, OCCUPIED',
-                       'PA' => 'PANAMA',
-                       'PG' => 'PAPUA NEW GUINEA',
-                       'PY' => 'PARAGUAY',
-                       'PE' => 'PERU',
-                       'PH' => 'PHILIPPINES',
-                       'PN' => 'PITCAIRN',
-                       'PL' => 'POLAND',
-                       'PT' => 'PORTUGAL',
-                       'PR' => 'PUERTO RICO',
-                       'QA' => 'QATAR',
-                       'RE' => 'REUNION',
-                       'RO' => 'ROMANIA',
-                       'RU' => 'RUSSIAN FEDERATION',
-                       'RW' => 'RWANDA',
-                       'SH' => 'SAINT HELENA',
-                       'KN' => 'SAINT KITTS AND NEVIS',
-                       'LC' => 'SAINT LUCIA',
-                       'PM' => 'SAINT PIERRE AND MIQUELON',
-                       'VC' => 'SAINT VINCENT AND THE GRENADINES',
-                       'WS' => 'SAMOA',
-                       'SM' => 'SAN MARINO',
-                       'ST' => 'SAO TOME AND PRINCIPE',
-                       'SA' => 'SAUDI ARABIA',
-                       'SN' => 'SENEGAL',
-                       'SC' => 'SEYCHELLES',
-                       'SL' => 'SIERRA LEONE',
-                       'SG' => 'SINGAPORE',
-                       'SK' => 'SLOVAKIA',
-                       'SI' => 'SLOVENIA',
-                       'SB' => 'SOLOMON ISLANDS',
-                       'SO' => 'SOMALIA',
-                       'ZA' => 'SOUTH AFRICA',
-                       'GS' => 'SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS',
-                       'ES' => 'SPAIN',
-                       'LK' => 'SRI LANKA',
-                       'SD' => 'SUDAN',
-                       'SR' => 'SURINAME',
-                       'SJ' => 'SVALBARD AND JAN MAYEN',
-                       'SZ' => 'SWAZILAND',
-                       'SE' => 'SWEDEN',
-                       'CH' => 'SWITZERLAND',
-                       'SY' => 'SYRIAN ARAB REPUBLIC',
-                       'TW' => 'TAIWAN, PROVINCE OF CHINA',
-                       'TJ' => 'TAJIKISTAN',
-                       'TZ' => 'TANZANIA, UNITED REPUBLIC OF',
-                       'TH' => 'THAILAND',
-                       'TG' => 'TOGO',
-                       'TK' => 'TOKELAU',
-                       'TO' => 'TONGA',
-                       'TT' => 'TRINIDAD AND TOBAGO',
-                       'TN' => 'TUNISIA',
-                       'TR' => 'TURKEY',
-                       'TM' => 'TURKMENISTAN',
-                       'TC' => 'TURKS AND CAICOS ISLANDS',
-                       'TV' => 'TUVALU',
-                       'UG' => 'UGANDA',
-                       'UA' => 'UKRAINE',
-                       'AE' => 'UNITED ARAB EMIRATES',
-                       'GB' => 'UNITED KINGDOM',
-                       'US' => 'UNITED STATES',
-                       'UM' => 'UNITED STATES MINOR OUTLYING ISLANDS',
-                       'UY' => 'URUGUAY',
-                       'UZ' => 'UZBEKISTAN',
-                       'VU' => 'VANUATU',
-                       'VE' => 'VENEZUELA',
-                       'VN' => 'VIET NAM',
-                       'VG' => 'VIRGIN ISLANDS, BRITISH',
-                       'VI' => 'VIRGIN ISLANDS, U.S.',
-                       'WF' => 'WALLIS AND FUTUNA',
-                       'EH' => 'WESTERN SAHARA',
-                       'YE' => 'YEMEN',
-                       'YU' => 'YUGOSLAVIA',
-                       'ZM' => 'ZAMBIA',
-                       'ZW' => 'ZIMBABWE',
-                       );
-               wfProfileOut( __METHOD__ );
-               $code = ( strlen( $code ) === 2 ) ? strtoupper( $code ) : null;
-               return ( $code && isset( $countries[$code] ) ) ? 
$countries[$code] : null;
        }
 
        public function getVersion() {
diff --git a/includes/ZeroSpecialPage.php b/includes/ZeroSpecialPage.php
new file mode 100644
index 0000000..a41f658
--- /dev/null
+++ b/includes/ZeroSpecialPage.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace Extensions\ZeroRatedMobileAccess;
+use UnlistedSpecialPage;
+
+/**
+ * Default startup page for ZeroRatedMobileAccess extension that shows the 
list of available languages.
+ *
+ * @file
+ * @ingroup Extensions
+ */
+class ZeroSpecialPage extends UnlistedSpecialPage {
+       /**
+        * Constructor — set up the SpecialPage:ZeroRatedMobileAccess page
+        */
+       public function __construct() {
+               parent::__construct( 'ZeroRatedMobileAccess' );
+       }
+
+       /**
+        * Show the special page
+        *
+        * @param $par Mixed: parameter passed to the special page or null
+        */
+       public function execute( $par ) {
+               $this->setHeaders();
+       }
+}

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic043db9d54cc39b975bcd9caaf08cb218ee5acec
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ZeroRatedMobileAccess
Gerrit-Branch: per-partner-config
Gerrit-Owner: Yurik <yu...@wikimedia.org>

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

Reply via email to