AntonLV 9 лет назад
Родитель
Сommit
2889a24d60

+ 4 - 5
modules/base/payment/classes/BxBaseModPaymentConfig.php

@@ -23,15 +23,13 @@ class BxBaseModPaymentConfig extends BxBaseModGeneralConfig
     protected $_sAnimationEffect;
     protected $_iAnimationSpeed;
 
-    protected static $_aCurrencies = array(
-    	'AUD' => 'A$', 'CAD' => 'C$', 'EUR' => '€', 'GBP' => '£', 'USD' => '$', 'YEN' => '¥'
-    );
-
     function __construct($aModule)
     {
         parent::__construct($aModule);
 
         $this->CNF = array_merge($this->CNF, array(
+        	'OBJECT_FORM_PRELISTS_CURRENCIES' => '',
+
         	'KEY_SESSION_PENDING' => $this->_sName . '_pending_id',
         	'KEY_REQUEST_PENDING' => $this->_sName . '_pending_id',
         	
@@ -79,8 +77,9 @@ class BxBaseModPaymentConfig extends BxBaseModGeneralConfig
     	$sPrefix = $this->getPrefix('options');
         $this->_iSiteId = (int)$this->_oDb->getParam($sPrefix . 'site_admin');
 
+        $aCurrencies = BxDolForm::getDataItems($this->CNF['OBJECT_FORM_PRELISTS_CURRENCIES'], false, BX_DATA_VALUES_ADDITIONAL);
         $this->_sCurrencyCode = $this->_oDb->getParam($sPrefix . 'default_currency_code');
-        $this->_sCurrencySign = self::$_aCurrencies[$this->_sCurrencyCode];
+        $this->_sCurrencySign = $aCurrencies[$this->_sCurrencyCode];
     }
 
     public function getSiteId()

+ 3 - 1
modules/boonex/payment/classes/BxPaymentConfig.php

@@ -34,7 +34,9 @@ class BxPaymentConfig extends BxBaseModPaymentConfig
         	'KEY_ARRAY_PRICE_SINGLE' => 'price_single',
         	'KEY_ARRAY_PRICE_RECURRING' => 'price_recurring',
         	'KEY_ARRAY_TRIAL_RECURRING' => 'trial_recurring',
-        
+
+            'OBJECT_FORM_PRELISTS_CURRENCIES' => 'bx_payment_currencies',
+
 	        // some language keys
         	'T' => array(
         		'MSG_ITEM_ADDED' => '_bx_payment_msg_item_added',

+ 16 - 0
modules/boonex/payment/classes/BxPaymentModule.php

@@ -172,6 +172,22 @@ class BxPaymentModule extends BxBaseModPaymentModule
     	return !empty($aProviders) && !empty($aProviders[$sVendorProvider]) && is_array(($aProviders[$sVendorProvider])) ? $aProviders[$sVendorProvider] : false;
     }
 
+    public function serviceGetOptionsDefaultCurrencyCode()
+    {
+        $CNF = &$this->_oConfig->CNF;
+
+        $aCurrencies = BxDolForm::getDataItems($CNF['OBJECT_FORM_PRELISTS_CURRENCIES']);
+
+        $aResult = array();
+        foreach($aCurrencies as $sKey => $sValue)
+            $aResult[] = array(
+                'key' => $sKey,
+                'value' => $sValue
+            );
+
+        return $aResult;
+    }
+
     public function serviceGetOptionsSiteAdmin()
     {
         $aResult = array(

+ 3 - 0
modules/boonex/payment/install/langs/en.xml

@@ -160,6 +160,9 @@
 	<string name="_bx_payment_form_processed_input_cancel"><![CDATA[Cancel]]></string>
 	<string name="_bx_payment_form_processed_input_cancel_sys"><![CDATA[Cancel]]></string>
 
+    <!-- Predefined Values -->
+    <string name="_bx_payment_pre_lists_currencies"><![CDATA[Currencies]]></string>
+
 	<!-- ACL -->
 	<string name="_bx_payment_acl_action_purchase"><![CDATA[Purchase]]></string>
 	<string name="_bx_payment_acl_action_sell"><![CDATA[Sell]]></string>

+ 1 - 1
modules/boonex/payment/install/sql/enable.sql

@@ -12,7 +12,7 @@ VALUES (@iTypeId, @sName, '_bx_payment', 1);
 SET @iCategoryId = LAST_INSERT_ID();
 
 INSERT INTO `sys_options` (`name`, `value`, `category_id`, `caption`, `type`, `check`, `check_params`, `check_error`, `extra`, `order`) VALUES
-('bx_payment_default_currency_code', 'USD', @iCategoryId, '_bx_payment_option_default_currency_code', 'select', 'Avail', '', '_bx_payment_option_err_default_currency_code', 'AUD,CAD,EUR,GBP,USD,YEN', 0),
+('bx_payment_default_currency_code', 'USD', @iCategoryId, '_bx_payment_option_default_currency_code', 'select', 'Avail', '', '_bx_payment_option_err_default_currency_code', 'a:2:{s:6:"module";s:10:"bx_payment";s:6:"method";s:33:"get_options_default_currency_code";}', 0),
 ('bx_payment_site_admin', '', @iCategoryId, '_bx_payment_option_site_admin', 'select', '', '', '', 'a:2:{s:6:"module";s:10:"bx_payment";s:6:"method";s:22:"get_options_site_admin";}', 1);
 
 

+ 12 - 0
modules/boonex/payment/install/sql/install.sql

@@ -386,6 +386,18 @@ INSERT INTO `sys_form_display_inputs` (`display_name`, `input_name`, `visible_fo
 ('bx_payment_form_strp_card_add', 'do_cancel', 2147483647, 1, 6);
 
 
+-- PRE-VALUES
+INSERT INTO `sys_form_pre_lists`(`key`, `title`, `module`, `use_for_sets`) VALUES
+('bx_payment_currencies', '_bx_payment_pre_lists_currencies', 'bx_payment', '0');
+
+INSERT INTO `sys_form_pre_values`(`Key`, `Value`, `Order`, `LKey`, `LKey2`) VALUES
+('bx_payment_currencies', 'AUD', 1, 'AUD', 'A&#36;'),
+('bx_payment_currencies', 'CAD', 2, 'CAD', 'C&#36;'),
+('bx_payment_currencies', 'EUR', 3, 'EUR', '&#128;'),
+('bx_payment_currencies', 'GBP', 4, 'GBP', '&#163;'),
+('bx_payment_currencies', 'USD', 5, 'USD', '&#36;'),
+('bx_payment_currencies', 'YEN', 6, 'YEN', '&#165;');
+
 -- STUDIO PAGE & WIDGET
 INSERT INTO `sys_std_pages`(`index`, `name`, `header`, `caption`, `icon`) VALUES
 (3, @sName, '_bx_payment', '_bx_payment', 'bx_payment@modules/boonex/payment/|std-icon.svg');

+ 6 - 1
modules/boonex/payment/install/sql/uninstall.sql

@@ -19,12 +19,17 @@ DELETE FROM `sys_grid_actions` WHERE `object` LIKE 'bx_payment_grid%';
 
 
 -- FORMS
-DELETE FROM `sys_form_display_inputs` WHERE `display_name` IN  (SELECT `display_name` FROM `sys_form_displays` WHERE `module`=@sName);
+DELETE FROM `sys_form_display_inputs` WHERE `display_name` IN (SELECT `display_name` FROM `sys_form_displays` WHERE `module`=@sName);
 DELETE FROM `sys_form_inputs` WHERE `module`=@sName;
 DELETE FROM `sys_form_displays` WHERE `module`=@sName;
 DELETE FROM `sys_objects_form` WHERE `module`=@sName;
 
 
+-- PRE-VALUES
+DELETE FROM `sys_form_pre_lists` WHERE `module` = 'bx_payment';
+DELETE FROM `sys_form_pre_values` WHERE `Key` IN ('bx_payment_currencies');
+
+
 -- STUDIO PAGE & WIDGET
 DELETE FROM `tp`, `tw`, `tpw`
 USING `sys_std_pages` AS `tp`, `sys_std_widgets` AS `tw`, `sys_std_pages_widgets` AS `tpw`

+ 3 - 0
modules/boonex/russian/data/langs/bx_payment/ru.xml

@@ -160,6 +160,9 @@
 	<string name="_bx_payment_form_processed_input_cancel"><![CDATA[Отменить]]></string>
 	<string name="_bx_payment_form_processed_input_cancel_sys"><![CDATA[Отменить]]></string>
 
+    <!-- Predefined Values -->
+    <string name="_bx_payment_pre_lists_currencies"><![CDATA[Валюты]]></string>
+
 	<!-- ACL -->
 	<string name="_bx_payment_acl_action_purchase"><![CDATA[Покупать]]></string>
 	<string name="_bx_payment_acl_action_sell"><![CDATA[Продавать]]></string>