Просмотр исходного кода

Ticket #4066 - Forms builder: don't allow to change 'Check for' field in forms if 'Custom check' is selected by default.

AntonLV 4 лет назад
Родитель
Сommit
143547f7b6

+ 464 - 58
modules/boonex/developer/classes/BxDevFormsField.php

@@ -28,58 +28,128 @@ class BxDevFormsField extends BxTemplStudioFormsField
 class BxDevFormsFieldBlockHeader extends BxTemplStudioFormsFieldBlockHeader
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldBlockEnd extends BxTemplStudioFormsFieldBlockEnd
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldValue extends BxTemplStudioFormsFieldValue
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldText extends BxTemplStudioFormsFieldText
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldPassword extends BxTemplStudioFormsFieldPassword
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldTextarea extends BxTemplStudioFormsFieldTextarea
 {
     public function init()
-	{
-		parent::init();
+    {
+        parent::init();
 
         BxDevFunctions::changeFormField($this->aParams, $this->aForm['inputs'], $this->oDb);
 
@@ -87,97 +157,223 @@ class BxDevFormsFieldTextarea extends BxTemplStudioFormsFieldTextarea
             'unique' => $this->aFieldUnique
         ));
     }
+
+    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 BxDevFormsFieldNumber extends BxTemplStudioFormsFieldNumber
 {
     public function init()
-	{
-		parent::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()
-	{
-		parent::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 BxDevFormsFieldDateselect extends BxTemplStudioFormsFieldDateselect
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldDatetime extends BxTemplStudioFormsFieldDatetime
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldCheckbox extends BxTemplStudioFormsFieldCheckbox
 {
     public function init()
-	{
-		parent::init();
+    {
+        parent::init();
 
         BxDevFunctions::changeFormField($this->aParams, $this->aForm['inputs'], $this->oDb);
 
         $this->aForm['inputs']['value']['type'] = 'text';
     }
+
+    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 BxDevFormsFieldSwitcher extends BxTemplStudioFormsFieldSwitcher
 {
     public function init()
-	{
-		parent::init();
+    {
+        parent::init();
 
         BxDevFunctions::changeFormField($this->aParams, $this->aForm['inputs'], $this->oDb);
 
         $this->aForm['inputs']['value']['type'] = 'text';
     }
+
+    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 BxDevFormsFieldFile extends BxTemplStudioFormsFieldFile
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldFiles extends BxTemplStudioFormsFieldFiles
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldSlider extends BxTemplStudioFormsFieldSlider
 {
     public function init()
-	{
-		parent::init();
+    {
+        parent::init();
 
         BxDevFunctions::changeFormField($this->aParams, $this->aForm['inputs'], $this->oDb);
 
@@ -185,13 +381,27 @@ class BxDevFormsFieldSlider extends BxTemplStudioFormsFieldSlider
             'unique' => $this->aFieldUnique
         ));
     }
+
+    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 BxDevFormsFieldDoublerange extends BxTemplStudioFormsFieldDoublerange
 {
     public function init()
-	{
-		parent::init();
+    {
+        parent::init();
 
         BxDevFunctions::changeFormField($this->aParams, $this->aForm['inputs'], $this->oDb);
 
@@ -199,63 +409,147 @@ class BxDevFormsFieldDoublerange extends BxTemplStudioFormsFieldDoublerange
             'unique' => $this->aFieldUnique
         ));
     }
+
+    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 BxDevFormsFieldHidden extends BxTemplStudioFormsFieldHidden
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldButton extends BxTemplStudioFormsFieldButton
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldReset extends BxTemplStudioFormsFieldReset
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldSubmit extends BxTemplStudioFormsFieldSubmit
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldImage extends BxTemplStudioFormsFieldImage
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldSelect extends BxTemplStudioFormsFieldSelect
 {
     public function init()
-	{
-		parent::init();
+    {
+        parent::init();
 
         BxDevFunctions::changeFormField($this->aParams, $this->aForm['inputs'], $this->oDb);
 
@@ -263,13 +557,27 @@ class BxDevFormsFieldSelect extends BxTemplStudioFormsFieldSelect
             'unique' => $this->aFieldUnique
         ));
     }
+
+    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 BxDevFormsFieldSelectMultiple extends BxTemplStudioFormsFieldSelectMultiple
 {
     public function init()
-	{
-		parent::init();
+    {
+        parent::init();
 
         BxDevFunctions::changeFormField($this->aParams, $this->aForm['inputs'], $this->oDb);
 
@@ -277,13 +585,27 @@ class BxDevFormsFieldSelectMultiple extends BxTemplStudioFormsFieldSelectMultipl
             'unique' => $this->aFieldUnique
         ));
     }
+
+    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 BxDevFormsFieldCheckboxSet extends BxTemplStudioFormsFieldCheckboxSet
 {
     public function init()
-	{
-		parent::init();
+    {
+        parent::init();
 
         BxDevFunctions::changeFormField($this->aParams, $this->aForm['inputs'], $this->oDb);
 
@@ -291,13 +613,27 @@ class BxDevFormsFieldCheckboxSet extends BxTemplStudioFormsFieldCheckboxSet
             'unique' => $this->aFieldUnique
         ));
     }
+
+    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 BxDevFormsFieldRadioSet extends BxTemplStudioFormsFieldRadioSet
 {
     public function init()
-	{
-		parent::init();
+    {
+        parent::init();
 
         BxDevFunctions::changeFormField($this->aParams, $this->aForm['inputs'], $this->oDb);
 
@@ -305,45 +641,115 @@ class BxDevFormsFieldRadioSet extends BxTemplStudioFormsFieldRadioSet
             'unique' => $this->aFieldUnique
         ));
     }
+
+    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 BxDevFormsFieldCustom extends BxTemplStudioFormsFieldCustom
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldInputSet extends BxTemplStudioFormsFieldInputSet
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldCaptcha extends BxTemplStudioFormsFieldCaptcha
 {
     public function init()
-	{
-		parent::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 BxDevFormsFieldLocation extends BxTemplStudioFormsFieldLocation
 {
     public function init()
-	{
-		parent::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;
+    }
 }
 /** @} */

+ 26 - 0
modules/boonex/developer/classes/BxDevFunctions.php

@@ -15,6 +15,7 @@ class BxDevFunctions
 
     /*
      * Is needed to change fields in "Form's Field" creation form.
+     * When the form is inited.
      *
      * @see BxDevFormsField
      */
@@ -82,6 +83,31 @@ class BxDevFunctions
         $aInputs = BxDolStudioUtils::addInArray($aInputs, 'controls', $aFields, false);
     }
 
+    /*
+     * Is needed to change form's array in "Form's Field" add/edit form. 
+     * It's called just before the form is displayed with "getCode" method.
+     *
+     * @see BxDevFormsField
+     */
+    public static function changeForm($sAction, &$aForm, &$oForm)
+    {
+        switch($sAction) {
+            case 'add':
+                break;
+
+            case 'edit':
+                if(isset($aForm['inputs']['checker_func'])) {
+                    if(isset($aForm['inputs']['checker_func']['attrs']['disabled']))
+                        unset($aForm['inputs']['checker_func']['attrs']['disabled']);
+
+                    $sCfValue = $aForm['inputs']['checker_func']['value'];
+                    if(!empty($sCfValue) && !in_array($sCfValue, $oForm->getCheckFunctions()))
+                        $aForm['inputs']['checker_func']['info'] = _t('_adm_form_txt_field_checker_func_info_custom');
+                }
+                break;
+        }
+    }
+
     public static function serializeString($sValue)
     {
         if(empty($sValue))

+ 8 - 1
studio/template/scripts/BxBaseStudioFormsField.php

@@ -89,6 +89,11 @@ class BxBaseStudioFormsField extends BxDolStudioFormsField
         return BX_DOL_STUDIO_FORMS_FIELDS_JS_OBJECT;
     }
 
+    public function getCheckFunctions()
+    {
+        return $this->aCheckFunctions;
+    }
+
     public function getCode($sAction, $sObject)
     {
         $sFunction = 'getCode' . $this->getClassName($sAction);
@@ -327,11 +332,13 @@ class BxBaseStudioFormsField extends BxDolStudioFormsField
                         }
 
                         if(!empty($sCfValue) && !in_array($sCfValue, $this->aCheckFunctions)) {
-                            $aForm['inputs'][$sKey]['info'] = _t('_adm_form_txt_field_checker_func_info_custom');
                             $aForm['inputs'][$sKey]['values'][] = array(
                                 'key' => $sCfValue, 
                                 'value' => _t('_adm_form_txt_field_checker_custom')
                             );
+                            if(!isset($aForm['inputs'][$sKey]['attrs']))
+                                $aForm['inputs'][$sKey]['attrs'] = [];
+                            $aForm['inputs'][$sKey]['attrs']['disabled'] = 'disabled';
                         }
                         break;