Sfoglia il codice sorgente

Ticket #4919 - Price field type isn't supported in Builders.

AntonLV 1 anno fa
parent
commit
4e462b0c3c

+ 24 - 0
modules/boonex/developer/classes/BxDevFormsField.php

@@ -197,6 +197,30 @@ class BxDevFormsFieldNumber extends BxTemplStudioFormsFieldNumber
     }
 }
 
+class BxDevFormsFieldPrice extends BxTemplStudioFormsFieldPrice
+{
+    public function init()
+    {
+        parent::init();
+
+        BxDevFunctions::changeFormField($this->aParams, $this->aForm['inputs'], $this->oDb);
+    }
+
+    protected function getFormAdd($sAction, $sObject)
+    {
+        $aForm = parent::getFormAdd($sAction, $sObject);
+        BxDevFunctions::changeForm($sAction, $aForm, $this);
+        return $aForm;
+    }
+
+    protected function getFormEdit($sAction, $sObject)
+    {
+        $aForm = parent::getFormEdit($sAction, $sObject);
+        BxDevFunctions::changeForm($sAction, $aForm, $this);
+        return $aForm;
+    }
+}
+
 class BxDevFormsFieldDatepicker extends BxTemplStudioFormsFieldDatepicker
 {
     public function init()

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

@@ -986,6 +986,7 @@
 	<string name="_adm_form_txt_field_type_location"><![CDATA[location]]></string>
   <string name="_adm_form_txt_field_type_location_radius"><![CDATA[location radius]]></string>
   <string name="_adm_form_txt_field_type_number"><![CDATA[number]]></string>
+  <string name="_adm_form_txt_field_type_price"><![CDATA[price]]></string>
 	<string name="_adm_form_txt_field_type_password"><![CDATA[password]]></string>
 	<string name="_adm_form_txt_field_type_radio_set"><![CDATA[radio set]]></string>
 	<string name="_adm_form_txt_field_type_reset"><![CDATA[reset]]></string>

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

@@ -978,6 +978,7 @@
 	<string name="_adm_form_txt_field_type_location"><![CDATA[местонахождение]]></string>
         <string name="_adm_form_txt_field_type_location_radius"><![CDATA[радиус местонахождения]]></string>
 	<string name="_adm_form_txt_field_type_number"><![CDATA[число]]></string>
+        <string name="_adm_form_txt_field_type_price"><![CDATA[цена]]></string>
 	<string name="_adm_form_txt_field_type_password"><![CDATA[пароль]]></string>
 	<string name="_adm_form_txt_field_type_radio_set"><![CDATA[набор переключателей]]></string>
 	<string name="_adm_form_txt_field_type_reset"><![CDATA[сброс]]></string>

+ 1 - 0
studio/classes/BxDolStudioFormsField.php

@@ -38,6 +38,7 @@ class BxDolStudioFormsField extends BxDol
         	'datepicker' => array('add' => 1), 
         	'datetime' => array('add' => 1), 
         	'number' => array('add' => 1), 
+                'price' => array('add' => 1), 
             'time' => array('add' => 1), 
         	'checkbox' => array('add' => 1), 
         	'password' => array('add' => 1), 

+ 21 - 0
studio/template/scripts/BxBaseStudioFormsField.php

@@ -1688,6 +1688,27 @@ class BxBaseStudioFormsFieldNumber extends BxBaseStudioFormsFieldText
     }
 }
 
+class BxBaseStudioFormsFieldPrice extends BxBaseStudioFormsFieldText
+{
+    protected $sType = 'price';
+    protected $aCheckFunctions = ['avail', 'length', 'preg'];
+    protected $sDbPass = 'Float';
+
+    public function init() 
+    {
+        parent::init();
+
+        $this->aParams['table_field_type'] = 'float';
+
+        $this->aForm['inputs']['value']['db']['pass'] = 'Float';
+        $this->aForm['inputs']['value']['checker'] = [
+            'func' => 'preg',
+            'params' => array('/^\d*?$/'),
+            'error' => _t('_adm_form_err_field_value_number'),
+        ];
+    }
+}
+
 class BxBaseStudioFormsFieldNestedForm extends BxBaseStudioFormsField
 {
     protected $sType = 'nested_form';

+ 4 - 0
studio/template/scripts_templ/BxTemplStudioFormsField.php

@@ -41,6 +41,10 @@ class BxTemplStudioFormsFieldNumber extends BxBaseStudioFormsFieldNumber
 {
 }
 
+class BxTemplStudioFormsFieldPrice extends BxBaseStudioFormsFieldPrice
+{
+}
+
 class BxTemplStudioFormsFieldNestedForm extends BxBaseStudioFormsFieldNestedForm
 {
 }