AntonLV 9 лет назад
Родитель
Сommit
4ddb3060b4

+ 1 - 0
install/sql/system.sql

@@ -2618,6 +2618,7 @@ CREATE TABLE IF NOT EXISTS `sys_form_inputs` (
   `caption` varchar(255) NOT NULL,
   `info` varchar(255) NOT NULL,
   `required` tinyint(4) NOT NULL DEFAULT '0',
+  `unique` tinyint(4) NOT NULL DEFAULT '0',
   `collapsed` tinyint(4) NOT NULL DEFAULT '0',
   `html` tinyint(4) NOT NULL DEFAULT '0',
   `attrs` text NOT NULL,

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

@@ -692,6 +692,7 @@
 	<string name="_adm_form_dsc_field_html"><![CDATA[Select type of HTML editor]]></string>
 	<string name="_adm_form_dsc_field_info"><![CDATA[Enter field description (optional)]]></string>
 	<string name="_adm_form_dsc_field_required"><![CDATA[Check it if the field should have value]]></string>
+	<string name="_adm_form_dsc_field_unique"><![CDATA[Check it if the field should have unique value]]></string>
 	<string name="_adm_form_dsc_field_value_button"><![CDATA[Enter button title here]]></string>
 	<string name="_adm_form_dsc_field_value_checkbox"><![CDATA[Send this data if checkbox is checked and form is submitted]]></string>
 	<string name="_adm_form_dsc_field_value_reset"><![CDATA[Button title (this button type is used to reset the form to its default state)]]></string>
@@ -802,6 +803,7 @@
 	<string name="_adm_form_txt_field_type_text"><![CDATA[text]]></string>
 	<string name="_adm_form_txt_field_type_textarea"><![CDATA[textarea]]></string>
 	<string name="_adm_form_txt_field_type_value"><![CDATA[info]]></string>
+	<string name="_adm_form_txt_field_unique"><![CDATA[Unique]]></string>
 	<string name="_adm_form_txt_field_value_button"><![CDATA[Title]]></string>
 	<string name="_adm_form_txt_field_value_checkbox"><![CDATA[Value]]></string>
 	<string name="_adm_form_txt_field_value_custom_text"><![CDATA[Custom text]]></string>

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

@@ -690,6 +690,7 @@
 	<string name="_adm_form_dsc_field_html"><![CDATA[Выбрать тип HTML-редактора]]></string>
 	<string name="_adm_form_dsc_field_info"><![CDATA[Введите описание поля (необязательно)]]></string>
 	<string name="_adm_form_dsc_field_required"><![CDATA[Отметьте, если поле должно иметь значение]]></string>
+	<string name="_adm_form_dsc_field_unique"><![CDATA[Отметьте, если поле должно иметь уникальное значение]]></string>
 	<string name="_adm_form_dsc_field_value_button"><![CDATA[Введите заголовок для кнопки]]></string>
 	<string name="_adm_form_dsc_field_value_checkbox"><![CDATA[Послать эти данные, если фладок отмечен и форма отослана]]></string>
 	<string name="_adm_form_dsc_field_value_reset"><![CDATA[Заголовок для кнопки (этот тип кнопки используется для сброса формы в исходное состояние)]]></string>
@@ -770,7 +771,7 @@
 	<string name="_adm_form_txt_field_module"><![CDATA[Модуль]]></string>
 	<string name="_adm_form_txt_field_name"><![CDATA[Имя]]></string>
 	<string name="_adm_form_txt_field_object"><![CDATA[Форма]]></string>
-	<string name="_adm_form_txt_field_required"><![CDATA[Необходимый]]></string>
+	<string name="_adm_form_txt_field_required"><![CDATA[Необходимое]]></string>
 	<string name="_adm_form_txt_field_show_to_popup"><![CDATA[Показывать "{0}" поле формы для: ]]></string>
 	<string name="_adm_form_txt_field_type_block_header"><![CDATA[заголовок блока]]></string>
 	<string name="_adm_form_txt_field_type_button"><![CDATA[кнопка]]></string>
@@ -800,6 +801,7 @@
 	<string name="_adm_form_txt_field_type_text"><![CDATA[текст]]></string>
 	<string name="_adm_form_txt_field_type_textarea"><![CDATA[текстовое поле]]></string>
 	<string name="_adm_form_txt_field_type_value"><![CDATA[инфо]]></string>
+	<string name="_adm_form_txt_field_unique"><![CDATA[Уникальное]]></string>
 	<string name="_adm_form_txt_field_value_button"><![CDATA[Заголовок]]></string>
 	<string name="_adm_form_txt_field_value_checkbox"><![CDATA[Значение]]></string>
 	<string name="_adm_form_txt_field_value_custom_text"><![CDATA[Индивидуальный текст]]></string>

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

@@ -258,6 +258,10 @@ class BxBaseStudioFormsField extends BxDolStudioFormsField
                             unset($aForm['inputs']['checker_func']['tr_attrs']['style'], $aForm['inputs']['checker_error']['tr_attrs']['style']);
                         break;
 
+                    case 'unique':
+                        $aForm['inputs'][$sKey]['checked'] = (int)$this->aField[$sKey];
+                        break;
+
                     case 'checker_func':
                         $aForm['inputs'][$sKey]['value'] = strtolower($this->aField[$sKey]);
                         switch($aForm['inputs'][$sKey]['value']) {
@@ -884,6 +888,21 @@ class BxBaseStudioFormsFieldText extends BxBaseStudioFormsFieldBlockHeader
                 'db' => array (
                     'pass' => 'Int',
                 )
+            ),
+            'unique' => array(
+                'type' => 'switcher',
+                'name' => 'unique',
+                'caption' => _t('_adm_form_txt_field_unique'),
+                'info' => _t('_adm_form_dsc_field_unique'),
+                'value' => '1',
+                'required' => '0',
+                'attrs' => array(
+                    'id' => 'bx-form-field-unique',
+                    //'onchange' => $this->getJsObject() . ".onCheckRequired(this)"
+                ),
+                'db' => array (
+                    'pass' => 'Int',
+                )
             )
         );
 
@@ -1249,6 +1268,7 @@ class BxBaseStudioFormsFieldHidden extends BxBaseStudioFormsFieldText
             $this->aForm['inputs']['caption'],
             $this->aForm['inputs']['info'],
             $this->aForm['inputs']['required'],
+            $this->aForm['inputs']['unique'],
             $this->aForm['inputs']['checker_func'],
             $this->aForm['inputs']['checker_params'],
             $this->aForm['inputs']['checker_params_length_min'],
@@ -1279,6 +1299,7 @@ class BxBaseStudioFormsFieldButton extends BxBaseStudioFormsFieldText
             $this->aForm['inputs']['caption'],
             $this->aForm['inputs']['info'],
             $this->aForm['inputs']['required'],
+            $this->aForm['inputs']['unique'],
             $this->aForm['inputs']['checker_func'],
             $this->aForm['inputs']['checker_params'],
             $this->aForm['inputs']['checker_params_length_min'],
@@ -1451,6 +1472,7 @@ class BxBaseStudioFormsFieldCustom extends BxBaseStudioFormsFieldText
 
         unset(
             $this->aForm['inputs']['required'],
+            $this->aForm['inputs']['unique'],
             $this->aForm['inputs']['checker_func'],
             $this->aForm['inputs']['checker_params'],
             $this->aForm['inputs']['checker_params_length_min'],
@@ -1514,6 +1536,7 @@ class BxBaseStudioFormsFieldCaptcha extends BxBaseStudioFormsFieldText
 
         unset(
             $this->aForm['inputs']['value'],
+            $this->aForm['inputs']['unique'],
             $this->aForm['inputs']['checker_func']['tr_attrs']['style'],
             $this->aForm['inputs']['checker_error']['tr_attrs']['style']
         );
@@ -1534,6 +1557,7 @@ class BxBaseStudioFormsFieldLocation extends BxBaseStudioFormsFieldText
 
         unset(
             $this->aForm['inputs']['required'],
+            $this->aForm['inputs']['unique'],
             $this->aForm['inputs']['checker_func'],
             $this->aForm['inputs']['checker_params'],
             $this->aForm['inputs']['checker_params_length_min'],