https://www.mediawiki.org/wiki/Special:Code/MediaWiki/101910
Revision: 101910
Author: kaldari
Date: 2011-11-03 23:06:33 +0000 (Thu, 03 Nov 2011)
Log Message:
-----------
adding new currencies for sanity check, correcting 2 currency codes, follow-up
to r101563
Modified Paths:
--------------
trunk/extensions/DonationInterface/gateway_common/GatewayForm.php
trunk/extensions/DonationInterface/gateway_common/interface.i18n.php
Added Paths:
-----------
trunk/extensions/DonationInterface/gateway_common/currencyRates.inc
Modified: trunk/extensions/DonationInterface/gateway_common/GatewayForm.php
===================================================================
--- trunk/extensions/DonationInterface/gateway_common/GatewayForm.php
2011-11-03 23:04:36 UTC (rev 101909)
+++ trunk/extensions/DonationInterface/gateway_common/GatewayForm.php
2011-11-03 23:06:33 UTC (rev 101910)
@@ -443,68 +443,19 @@
* In reality, this probably ought to use some sort of webservice to
get real-time
* conversion rates.
*
- * @param $currency_code
- * @param $amount
- * @return unknown_type
+ * @param string $currency_code
+ * @param float $amount
+ * @return float
*/
- public function convert_to_usd( $currency_code, $amount ) {
- switch ( strtoupper( $currency_code ) ) {
- case 'USD':
- $usd_amount = $amount / 1;
- break;
- case 'GBP':
- $usd_amount = $amount / 1;
- break;
- case 'EUR':
- $usd_amount = $amount / 1;
- break;
- case 'AUD':
- $usd_amount = $amount / 2;
- break;
- case 'CAD':
- $usd_amount = $amount / 1;
- break;
- case 'CHF':
- $usd_amount = $amount / 1;
- break;
- case 'CZK':
- $usd_amount = $amount / 20;
- break;
- case 'DKK':
- $usd_amount = $amount / 5;
- break;
- case 'HKD':
- $usd_amount = $amount / 10;
- break;
- case 'HUF':
- $usd_amount = $amount / 200;
- break;
- case 'JPY':
- $usd_amount = $amount / 100;
- break;
- case 'NZD':
- $usd_amount = $amount / 2;
- break;
- case 'NOK':
- $usd_amount = $amount / 10;
- break;
- case 'PLN':
- $usd_amount = $amount / 5;
- break;
- case 'SGD':
- $usd_amount = $amount / 2;
- break;
- case 'SEK':
- $usd_amount = $amount / 10;
- break;
- case 'ILS':
- $usd_amount = $amount / 5;
- break;
- default:
- $usd_amount = $amount;
- break;
+ static function convert_to_usd( $currency_code, $amount ) {
+ require_once( dirname( __FILE__ ) . '/currencyRates.inc' );
+ $rates = getCurrencyRates();
+ $code = strtoupper( $currency_code );
+ if ( array_key_exists( $code, $rates ) ) {
+ $usd_amount = $amount / $rates[$code];
+ } else {
+ $usd_amount = $amount;
}
-
return $usd_amount;
}
Added: trunk/extensions/DonationInterface/gateway_common/currencyRates.inc
===================================================================
--- trunk/extensions/DonationInterface/gateway_common/currencyRates.inc
(rev 0)
+++ trunk/extensions/DonationInterface/gateway_common/currencyRates.inc
2011-11-03 23:06:33 UTC (rev 101910)
@@ -0,0 +1,95 @@
+<?php
+
+/**
+ * Supplies rough (not up-to-date) conversion rates for currencies
+ * Last updated November 3, 2011 (rounded down)
+ */
+function getCurrencyRates() {
+ $currencyRates = array(
+ 'AED' => '4',
+ 'ARS' => '4',
+ 'AUD' => '1',
+ 'BBD' => '2',
+ 'BDT' => '76',
+ 'BGN' => '1.4',
+ 'BHD' => '0.4',
+ 'BMD' => '1',
+ 'BND' => '1.3',
+ 'BOB' => '7',
+ 'BRL' => '1.7',
+ 'BSD' => '1',
+ 'BZD' => '2',
+ 'CAD' => '1',
+ 'CHF' => '0.9',
+ 'CLP' => '494',
+ 'CNY' => '6',
+ 'COP' => '1910',
+ 'CRC' => '512',
+ 'CZK' => '18',
+ 'DKK' => '5',
+ 'DOP' => '38',
+ 'DZD' => '73',
+ 'EEK' => '11',
+ 'EGP' => '6',
+ 'EUR' => '0.7',
+ 'GBP' => '0.6',
+ 'GTQ' => '7.8',
+ 'HKD' => '7.7',
+ 'HNL' => '19',
+ 'HRK' => '5',
+ 'HUF' => '219',
+ 'IDR' => '8960',
+ 'ILS' => '3.6',
+ 'INR' => '49',
+ 'JMD' => '85',
+ 'JOD' => '0.7',
+ 'JPY' => '78',
+ 'KES' => '97',
+ 'KRW' => '1127',
+ 'KYD' => '0.8',
+ 'KZT' => '147',
+ 'LBP' => '1500',
+ 'LKR' => '110',
+ 'LTL' => '2.5',
+ 'LVL' => '0.5',
+ 'MAD' => '8.1',
+ 'MKD' => '45',
+ 'MUR' => '29',
+ 'MVR' => '15',
+ 'MXN' => '13',
+ 'MYR' => '3',
+ 'NOK' => '5.5',
+ 'NZD' => '1.2',
+ 'OMR' => '0.3',
+ 'PAB' => '1',
+ 'PEN' => '2.7',
+ 'PHP' => '43',
+ 'PKR' => '86',
+ 'PLN' => '3',
+ 'PYG' => '4190',
+ 'QAR' => '3.6',
+ 'RON' => '3.1',
+ 'RUB' => '30',
+ 'SAR' => '3.7',
+ 'SEK' => '6.5',
+ 'SGD' => '1.2',
+ 'SVC' => '8.7',
+ 'THB' => '30',
+ 'TJS' => '4.7',
+ 'TND' => '1.4',
+ 'TRY' => '1.7',
+ 'TTD' => '6',
+ 'TWD' => '30',
+ 'UAH' => '8',
+ 'USD' => '1',
+ 'UYU' => '19',
+ 'UZS' => '1760',
+ 'VND' => '21000',
+ 'XAF' => '470',
+ 'XCD' => '2.7',
+ 'XOF' => '476',
+ 'ZAR' => '7.8',
+ );
+
+ return $currencyRates;
+}
Modified: trunk/extensions/DonationInterface/gateway_common/interface.i18n.php
===================================================================
--- trunk/extensions/DonationInterface/gateway_common/interface.i18n.php
2011-11-03 23:04:36 UTC (rev 101909)
+++ trunk/extensions/DonationInterface/gateway_common/interface.i18n.php
2011-11-03 23:06:33 UTC (rev 101910)
@@ -36,7 +36,7 @@
No processors are available.',
// Currency translations
- 'donate_interface-AEB' => 'AEB: UAE dirham',
+ 'donate_interface-AED' => 'AED: UAE dirham',
'donate_interface-ARS' => 'ARS: Argentinian peso',
'donate_interface-AUD' => 'AUD: Australian dollar',
'donate_interface-BBD' => 'BBD: Barbadian dollar',
@@ -112,7 +112,7 @@
'donate_interface-TWD' => 'TWD: New Taiwan dollar',
'donate_interface-UAH' => 'UAH: Ukrainian hryvnia',
'donate_interface-USD' => 'USD: U.S. dollar',
- 'donate_interface-UTU' => 'UTU: Uruguayan peso',
+ 'donate_interface-UYU' => 'UYU: Uruguayan peso',
'donate_interface-UZS' => 'UZS: Uzbekistani som',
'donate_interface-VND' => 'VND: Vietnamese dong',
'donate_interface-XAF' => 'XAF: Central African CFA franc',
@@ -319,7 +319,7 @@
'donate_interface-change' => 'Change',
'donate_interface-select-credit-card' => 'Select credit card',
- // For more USA states, see donate_interface.us-states.i18n.php.
+ // For more USA states, see us-states.i18n.php.
'donate_interface-state-dropdown-YY' => 'Select a state',
'donate_interface-state-dropdown-XX' => 'Outside the U.S.',
@@ -408,7 +408,7 @@
'donate_interface-comment-title' => "Next to check box; to choose
whether the donor's comment shall be publically viewable or not.",
'donate_interface-amount-error' => 'Error prompt if an invalid amount
is entered (e.g. if the amount has letters in it).',
'donate_interface-processing-error' => 'Error message.',
- 'donate_interface-AEB' => 'Used in drop-down field for currency.',
+ 'donate_interface-AED' => 'Used in drop-down field for currency.',
'donate_interface-ARS' => 'Used in drop-down field for currency.',
'donate_interface-AUD' => 'Used in drop-down field for currency.',
'donate_interface-BBD' => 'Used in drop-down field for currency.',
@@ -484,7 +484,7 @@
'donate_interface-TWD' => 'Used in drop-down field for currency.',
'donate_interface-UAH' => 'Used in drop-down field for currency.',
'donate_interface-USD' => 'Used in drop-down field for currency.',
- 'donate_interface-UTU' => 'Used in drop-down field for currency.',
+ 'donate_interface-UYU' => 'Used in drop-down field for currency.',
'donate_interface-UZS' => 'Used in drop-down field for currency.',
'donate_interface-VND' => 'Used in drop-down field for currency.',
'donate_interface-XAF' => 'Used in drop-down field for currency.',
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs