AntonLV 5 ani în urmă
părinte
comite
da0c8483ef

+ 12 - 4
install/sql/system.sql

@@ -426,16 +426,15 @@ INSERT INTO `sys_options`(`category_id`, `name`, `caption`, `value`, `type`, `ex
 (@iCategoryId, 'sys_oauth_key', '_adm_stg_cpt_option_sys_oauth_key', '', 'digit', '', '', '', 20),
 (@iCategoryId, 'sys_oauth_secret', '_adm_stg_cpt_option_sys_oauth_secret', '', 'digit', '', '', '', 21),
 
-(@iCategoryId, 'currency_code', '_adm_stg_cpt_option_currency_code', 'USD', 'select', 'USD,EURO', 'Avail', '_adm_stg_err_option_currency_code', 30),
-(@iCategoryId, 'currency_sign', '_adm_stg_cpt_option_currency_sign', '$', 'digit', '', 'Avail', '_adm_stg_err_option_currency_sign', 31),
+(@iCategoryId, 'currency_code', '_adm_stg_cpt_option_currency_code', 'USD', 'select', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:33:"get_options_currency_code_default";s:5:"class";s:21:"TemplPaymentsServices";}', 'Avail', '_adm_stg_err_option_currency_code', 30),
+(@iCategoryId, 'currency_sign', '_adm_stg_cpt_option_currency_sign', '$', 'select', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:33:"get_options_currency_sign_default";s:5:"class";s:21:"TemplPaymentsServices";}', 'Avail', '_adm_stg_err_option_currency_sign', 31),
+(@iCategoryId, 'sys_default_payment', '_adm_stg_cpt_option_sys_default_payment', '', 'select', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:12:"get_payments";s:5:"class";s:21:"TemplPaymentsServices";}', '', '', 35),
 
 (@iCategoryId, 'client_image_resize_width', '_adm_stg_cpt_option_client_image_resize_width', '0', 'digit', '', '', '', 42),
 (@iCategoryId, 'client_image_resize_height', '_adm_stg_cpt_option_client_image_resize_height', '0', 'digit', '', '', '', 43),
 
 (@iCategoryId, 'useLikeOperator', '_adm_stg_cpt_option_use_like_operator', 'on', 'checkbox', '', '', '', 45),
 
-(@iCategoryId, 'sys_default_payment', '_adm_stg_cpt_option_sys_default_payment', '', 'select', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:12:"get_payments";s:5:"class";s:21:"TemplPaymentsServices";}', '', '', 60),
-
 (@iCategoryId, 'sys_embed_default', '_adm_stg_cpt_option_sys_embed_default', '', 'select', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:25:"get_options_embed_default";s:5:"class";s:13:"TemplServices";}', '', '', 79),
 (@iCategoryId, 'sys_embedly_api_key', '_adm_stg_cpt_option_sys_embedly_api_key', '', 'digit', '', '', '', 80),
 
@@ -3616,6 +3615,7 @@ INSERT INTO `sys_form_pre_lists`(`key`, `title`, `module`, `use_for_sets`, `exte
 ('Country', '_adm_form_txt_pre_lists_country', 'system', '0', '1'),
 ('Sex', '_adm_form_txt_pre_lists_sex', 'system', '1', '1'),
 ('Language', '_adm_form_txt_pre_lists_language', 'system', '0', '1'),
+('Currency', '_adm_form_txt_pre_lists_currency', 'system', '0', '1'),
 ('sys_report_types', '_sys_pre_lists_report_types', 'system', '0', '0'),
 ('sys_vote_reactions', '_sys_pre_lists_vote_reactions', 'system', '0', '0'),
 ('sys_relations', '_sys_pre_lists_relations', 'system', '0', '1'),
@@ -3943,6 +3943,14 @@ INSERT INTO `sys_form_pre_values`(`Key`, `Value`, `Order`, `LKey`, `LKey2`) VALU
 ('Language', '52', 52, '__Vietnamese', ''),
 ('Language', '53', 53, '__Visayan', '');
 
+INSERT INTO `sys_form_pre_values`(`Key`, `Value`, `Order`, `LKey`, `LKey2`, `Data`) VALUES
+('Currency', 'AUD', 1, '__AUD', '', 'a:1:{s:4:"sign";s:6:"A$";}'),
+('Currency', 'CAD', 2, '__CAD', '', 'a:1:{s:4:"sign";s:6:"C$";}'),
+('Currency', 'EUR', 3, '__EUR', '', 'a:1:{s:4:"sign";s:6:"€";}'),
+('Currency', 'GBP', 4, '__GBP', '', 'a:1:{s:4:"sign";s:6:"£";}'),
+('Currency', 'USD', 5, '__USD', '', 'a:1:{s:4:"sign";s:5:"$";}'),
+('Currency', 'YEN', 6, '__YEN', '', 'a:1:{s:4:"sign";s:6:"¥";}');
+
 INSERT INTO `sys_form_pre_values`(`Key`, `Value`, `Order`, `LKey`, `LKey2`) VALUES
 ('sys_report_types', 'spam', 1, '_sys_pre_lists_report_types_spam', ''),
 ('sys_report_types', 'scam', 2, '_sys_pre_lists_report_types_scam', ''),

+ 7 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -421,6 +421,12 @@
 	<string name="__Yemen"><![CDATA[Yemen]]></string>
 	<string name="__Zambia"><![CDATA[Zambia]]></string>
 	<string name="__Zimbabwe"><![CDATA[Zimbabwe]]></string>
+        <string name="__AUD"><![CDATA[AUD]]></string>
+        <string name="__CAD"><![CDATA[CAD]]></string>
+        <string name="__EUR"><![CDATA[EUR]]></string>
+        <string name="__GBP"><![CDATA[GBP]]></string>
+        <string name="__USD"><![CDATA[USD]]></string>
+        <string name="__YEN"><![CDATA[YEN]]></string>
 	<string name="_adm_act_err_failed_page_loading"><![CDATA[Cannot load the page]]></string>
 	<string name="_adm_action_cpt_checkout"><![CDATA[Checkout]]></string>
 	<string name="_adm_action_cpt_delete_all"><![CDATA[Delete All]]></string>
@@ -988,6 +994,7 @@
 	<string name="_adm_form_txt_pre_lists_gl_use_for_sets"><![CDATA[Use For Sets]]></string>
 	<string name="_adm_form_txt_pre_lists_gl_values"><![CDATA[Values]]></string>
 	<string name="_adm_form_txt_pre_lists_language"><![CDATA[Language]]></string>
+        <string name="_adm_form_txt_pre_lists_currency"><![CDATA[Currency]]></string>
 	<string name="_adm_form_txt_pre_lists_manage_values"><![CDATA[Manage values]]></string>
 	<string name="_adm_form_txt_pre_lists_n_values"><![CDATA[{0} items]]></string>
 	<string name="_adm_form_txt_pre_lists_no"><![CDATA[No]]></string>

+ 7 - 0
modules/boonex/russian/data/langs/system/ru.xml

@@ -421,6 +421,12 @@
 	<string name="__Yemen"><![CDATA[Йемен]]></string>
 	<string name="__Zambia"><![CDATA[Замбия]]></string>
 	<string name="__Zimbabwe"><![CDATA[Зимбабве]]></string>
+        <string name="__AUD"><![CDATA[AUD]]></string>
+        <string name="__CAD"><![CDATA[CAD]]></string>
+        <string name="__EUR"><![CDATA[EUR]]></string>
+        <string name="__GBP"><![CDATA[GBP]]></string>
+        <string name="__USD"><![CDATA[USD]]></string>
+        <string name="__YEN"><![CDATA[YEN]]></string>
 	<string name="_adm_act_err_failed_page_loading"><![CDATA[Невозможно загрузить страницу]]></string>
 	<string name="_adm_action_cpt_checkout"><![CDATA[Оплата]]></string>
 	<string name="_adm_action_cpt_delete_all"><![CDATA[Удалить всё]]></string>
@@ -974,6 +980,7 @@
 	<string name="_adm_form_txt_pre_lists_gl_use_for_sets"><![CDATA[Использовать для наборов]]></string>
 	<string name="_adm_form_txt_pre_lists_gl_values"><![CDATA[Значения]]></string>
 	<string name="_adm_form_txt_pre_lists_language"><![CDATA[Язык]]></string>
+        <string name="_adm_form_txt_pre_lists_currency"><![CDATA[Валюта]]></string>
 	<string name="_adm_form_txt_pre_lists_manage_values"><![CDATA[Управление значениями]]></string>
 	<string name="_adm_form_txt_pre_lists_n_values"><![CDATA[{0} элементов]]></string>
 	<string name="_adm_form_txt_pre_lists_no"><![CDATA[Нет]]></string>

+ 14 - 0
studio/classes/BxDolStudioSettings.php

@@ -350,6 +350,10 @@ class BxDolStudioSettings extends BxTemplStudioWidget
 
     protected function getProcessedValue($aOption, $mixedValue)
     {
+        $sMethod = 'processCustomValue' . bx_gen_method_name(trim(str_replace($this->sType, '', $aOption['name']), '_'));
+    	if(method_exists($this, $sMethod))
+    	    return $this->$sMethod($aOption, $mixedValue);
+
         if(is_array($mixedValue))
             $mixedValue = implode(',', $mixedValue);
 
@@ -387,6 +391,16 @@ class BxDolStudioSettings extends BxTemplStudioWidget
         $oCacheUtilities->clear('db');
         $oCacheUtilities->clear('css');
     }
+
+    protected function getCustomValueCurrencySign($aItem, $mixedValue)
+    {
+        return htmlspecialchars($mixedValue);
+    }
+
+    protected function processCustomValueCurrencySign($aItem, $mixedValue)
+    {
+        return htmlspecialchars_decode($mixedValue);
+    }
 }
 
 /** @} */

+ 37 - 0
template/scripts/BxBasePaymentsServices.php

@@ -12,9 +12,46 @@
  */
 class BxBasePaymentsServices extends BxDol
 {
+    protected $_sPrelistsCurrency;
+
     public function __construct()
     {
         parent::__construct();
+
+        $this->_sPrelistsCurrency = 'Currency';
+    }
+
+    public function serviceGetOptionsCurrencyCodeDefault()
+    {
+        $aCurrencies = BxDolForm::getDataItems($this->_sPrelistsCurrency);
+
+        $aResult = array();
+        foreach($aCurrencies as $sKey => $sValue)
+            $aResult[] = array(
+                'key' => $sKey,
+                'value' => $sValue
+            );
+
+        return $aResult;
+    }
+
+    public function serviceGetOptionsCurrencySignDefault()
+    {
+        $aCurrencies = BxDolForm::getDataItems($this->_sPrelistsCurrency, false, BX_DATA_VALUES_ALL);
+
+        $aResult = array();
+        foreach($aCurrencies as $aCurrency) {
+            $aData = array();
+            if(empty($aCurrency['Data']) || !($aData = unserialize($aCurrency['Data'])))
+                continue;
+
+            $aResult[] = array(
+                'key' => htmlspecialchars($aData['sign'], ENT_XHTML),
+                'value' => $aData['sign']
+            );
+        }
+
+        return $aResult;
     }
 
     public function serviceGetPayments()