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