HomeHelpTrac

Changeset 15870


Ignore:
Timestamp:
01/13/12 01:22:31 (5 months ago)
Author:
Anton Lesnikov
Message:
  1. Minor fixes and improvements.
  2. Studio -> Form Builder.
Location:
trunk
Files:
2 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/boonex/english/install/data/langs/en.xml

    r15864 r15870  
    22912291    <string name="_adm_form_txt_field_type"><![CDATA[Type]]></string> 
    22922292    <string name="_adm_form_txt_field_type_empty"><![CDATA[Select type]]></string> 
     2293    <string name="_adm_form_txt_field_type_block_header"><![CDATA[block header]]></string> 
    22932294    <string name="_adm_form_txt_field_type_text"><![CDATA[text]]></string> 
     2295    <string name="_adm_form_txt_field_type_datepicker"><![CDATA[date]]></string> 
     2296    <string name="_adm_form_txt_field_type_datetime"><![CDATA[date time]]></string> 
     2297    <string name="_adm_form_txt_field_type_number"><![CDATA[number]]></string> 
     2298    <string name="_adm_form_txt_field_type_checkbox"><![CDATA[checkbox]]></string> 
     2299    <string name="_adm_form_txt_field_type_file"><![CDATA[file]]></string> 
     2300    <string name="_adm_form_txt_field_type_image"><![CDATA[image]]></string> 
     2301    <string name="_adm_form_txt_field_type_password"><![CDATA[password]]></string> 
     2302    <string name="_adm_form_txt_field_type_slider"><![CDATA[slider]]></string> 
     2303    <string name="_adm_form_txt_field_type_doublerange"><![CDATA[double range slider]]></string> 
     2304    <string name="_adm_form_txt_field_type_hidden"><![CDATA[hidden]]></string> 
     2305    <string name="_adm_form_txt_field_type_switcher"><![CDATA[switcher]]></string> 
     2306    <string name="_adm_form_txt_field_type_button"><![CDATA[button]]></string> 
     2307    <string name="_adm_form_txt_field_type_reset"><![CDATA[reset]]></string> 
     2308    <string name="_adm_form_txt_field_type_submit"><![CDATA[submit]]></string> 
     2309    <string name="_adm_form_txt_field_type_textarea"><![CDATA[textarea]]></string> 
     2310    <string name="_adm_form_txt_field_type_select"><![CDATA[select]]></string> 
     2311    <string name="_adm_form_txt_field_type_select_multiple"><![CDATA[select (multiple)]]></string> 
     2312    <string name="_adm_form_txt_field_type_checkbox_set"><![CDATA[checkbox set]]></string> 
     2313    <string name="_adm_form_txt_field_type_radio_set"><![CDATA[radio set]]></string> 
     2314    <string name="_adm_form_txt_field_type_input_set"><![CDATA[input set]]></string> 
     2315    <string name="_adm_form_txt_field_type_custom"><![CDATA[custom]]></string> 
     2316    <string name="_adm_form_txt_field_type_value"><![CDATA[value]]></string> 
     2317    <string name="_adm_form_txt_field_type_captcha"><![CDATA[captcha]]></string> 
     2318    <string name=""><![CDATA[]]></string> 
     2319    <string name=""><![CDATA[]]></string> 
     2320    <string name=""><![CDATA[]]></string> 
     2321    <string name="_adm_form_txt_field_type_display"><![CDATA[Type]]></string> 
    22942322    <string name="_adm_form_txt_field_name"><![CDATA[Name]]></string> 
    22952323    <string name="_adm_form_dsc_field_name"><![CDATA[You need to enter field name]]></string> 
     
    23002328    <string name="_adm_form_txt_field_value"><![CDATA[Value]]></string> 
    23012329    <string name="_adm_form_dsc_field_value"><![CDATA[Enter default value (optional)]]></string> 
     2330    <string name="_adm_form_txt_field_values"><![CDATA[Values]]></string> 
     2331    <string name="_adm_form_dsc_field_values"><![CDATA[Enter values each one in new line]]></string> 
     2332    <string name="_adm_form_txt_field_checked"><![CDATA[Checked]]></string> 
     2333    <string name="_adm_form_dsc_field_checked"><![CDATA[Is checked by default]]></string> 
    23022334    <string name="_adm_form_txt_field_info"><![CDATA[Description]]></string> 
    23032335    <string name="_adm_form_dsc_field_info"><![CDATA[Enter field description (optional)]]></string> 
     2336    <string name="_adm_form_txt_field_html"><![CDATA[HTML Editor]]></string> 
     2337    <string name="_adm_form_dsc_field_html"><![CDATA[Select type of HTML editor]]></string> 
     2338    <string name="_adm_form_txt_field_html_none"><![CDATA[no editor]]></string> 
     2339    <string name="_adm_form_txt_field_html_micro"><![CDATA[micro]]></string> 
     2340    <string name="_adm_form_txt_field_html_default"><![CDATA[default]]></string> 
     2341    <string name="_adm_form_txt_field_html_mini"><![CDATA[mini]]></string> 
     2342    <string name="_adm_form_txt_field_attrs_min"><![CDATA[Min Value]]></string> 
     2343    <string name="_adm_form_dsc_field_attrs_min"><![CDATA[Enter numeric value]]></string> 
     2344    <string name="_adm_form_txt_field_attrs_max"><![CDATA[Max Value]]></string> 
     2345    <string name="_adm_form_dsc_field_attrs_max"><![CDATA[Enter numeric value]]></string> 
     2346    <string name="_adm_form_txt_field_attrs_step"><![CDATA[Step]]></string> 
     2347    <string name="_adm_form_dsc_field_attrs_step"><![CDATA[Enter numeric value]]></string> 
     2348    <string name="_adm_form_txt_field_attrs_src"><![CDATA[Image Source]]></string> 
     2349    <string name="_adm_form_dsc_field_attrs_src"><![CDATA[Enter correct image URL]]></string> 
    23042350    <string name="_adm_form_txt_field_required"><![CDATA[Mandatory]]></string> 
    23052351    <string name="_adm_form_dsc_field_required"><![CDATA[Check it if the field should have value]]></string> 
    2306  
    2307     <string name=""><![CDATA[]]></string> 
    2308     <string name=""><![CDATA[]]></string> 
    2309     <string name=""><![CDATA[]]></string> 
    2310     <string name=""><![CDATA[]]></string> 
    2311     <string name=""><![CDATA[]]></string> 
    2312     <string name=""><![CDATA[]]></string> 
    2313     <string name=""><![CDATA[]]></string> 
    2314     <string name=""><![CDATA[]]></string> 
    2315     <string name=""><![CDATA[]]></string> 
    2316     <string name=""><![CDATA[]]></string> 
    2317     <string name=""><![CDATA[]]></string> 
    2318     <string name=""><![CDATA[]]></string> 
    2319     <string name=""><![CDATA[]]></string> 
    2320     <string name=""><![CDATA[]]></string> 
    2321     <string name=""><![CDATA[]]></string> 
    2322     <string name=""><![CDATA[]]></string> 
    2323     <string name=""><![CDATA[]]></string> 
    2324     <string name=""><![CDATA[]]></string> 
    2325     <string name=""><![CDATA[]]></string> 
    2326     <string name=""><![CDATA[]]></string> 
    2327     <string name=""><![CDATA[]]></string> 
    2328     <string name=""><![CDATA[]]></string> 
    2329     <string name=""><![CDATA[]]></string> 
    2330     <string name=""><![CDATA[]]></string> 
    2331     <string name=""><![CDATA[]]></string> 
    2332     <string name=""><![CDATA[]]></string> 
     2352    <string name="_adm_form_txt_field_collapsed"><![CDATA[Collapsed]]></string> 
     2353    <string name="_adm_form_dsc_field_collapsed"><![CDATA[Display group of field collapsed by default]]></string> 
     2354    <string name="_adm_form_txt_field_checker_func"><![CDATA[Check Function]]></string> 
     2355    <string name="_adm_form_err_field_checker_func"><![CDATA[Check Function should be selected]]></string> 
     2356    <string name="_adm_form_txt_field_checker_empty"><![CDATA[Select function]]></string> 
     2357    <string name="_adm_form_txt_field_checker_avail"><![CDATA[Avail]]></string> 
     2358    <string name="_adm_form_txt_field_checker_length"><![CDATA[Length]]></string> 
     2359    <string name="_adm_form_txt_field_checker_date"><![CDATA[Date]]></string> 
     2360    <string name="_adm_form_txt_field_checker_date_time"><![CDATA[Date Time]]></string> 
     2361    <string name="_adm_form_txt_field_checker_preg"><![CDATA[Preg]]></string> 
     2362    <string name="_adm_form_txt_field_checker_email"><![CDATA[Email]]></string> 
     2363    <string name="_adm_form_txt_field_checker_captcha"><![CDATA[Captcha]]></string> 
     2364    <string name="_adm_form_txt_field_checker_no_spam"><![CDATA[No Spam]]></string> 
     2365    <string name="_adm_form_txt_field_checker_params_length_min"><![CDATA[Min Value]]></string> 
     2366    <string name="_adm_form_err_field_checker_params_length_min"><![CDATA[Enter Min Value, non-zero integer number]]></string> 
     2367    <string name="_adm_form_txt_field_checker_params_length_max"><![CDATA[Max Value]]></string> 
     2368    <string name="_adm_form_err_field_checker_params_length_max"><![CDATA[Enter Max Value, non-zero integer number]]></string> 
     2369    <string name="_adm_form_txt_field_checker_params_preg"><![CDATA[Expression]]></string> 
     2370    <string name="_adm_form_err_field_checker_params_preg"><![CDATA[Enter valid regular expression]]></string> 
    23332371    <string name=""><![CDATA[]]></string> 
    23342372    <string name=""><![CDATA[]]></string> 
  • trunk/studio/classes/BxDolStudioFormsField.php

    r15857 r15870  
    3232        return str_replace(' ', '', ucwords(str_replace('_', ' ', $sValue))); 
    3333    } 
     34 
     35    /* 
     36     * Adds $aValues in $aArray after $sKey key. 
     37     */ 
     38    protected function addInArray($aInput, $sKey, $aValues) { 
     39        reset($aInput); 
     40        $iInput = count($aInput); 
     41        for($i = 0; $i < $iInput; $i++, next($aInput)) 
     42            if(key($aInput) == $sKey) 
     43                break; 
     44 
     45        $aOutput = array_slice($aInput, 0, $i + 1); 
     46        $aOutput = array_merge($aOutput, $aValues); 
     47        $aOutput = array_merge($aOutput, array_slice($aInput, $i + 1)); 
     48 
     49        return $aOutput; 
     50    } 
    3451} 
    3552/** @} */ 
  • trunk/studio/js/forms_fields.js

    r15857 r15870  
    2727    glGrids[this.sObjNameGrid].action('add', {}, 'type=' + sType, false, false); 
    2828}; 
     29 
     30BxDolStudioFormsFields.prototype.onSelectChecker = function(oSelect) { 
     31    var sChecker = $(oSelect).val(); 
     32 
     33    $('#bx-form-element-checker_params_length_min, #bx-form-element-checker_params_length_max, #bx-form-element-checker_params_preg').hide().find('input').val(''); 
     34 
     35    switch(sChecker) { 
     36        case 'length': 
     37            $('#bx-form-element-checker_params_length_min, #bx-form-element-checker_params_length_max').show(); 
     38            break; 
     39        case 'preg': 
     40            $('#bx-form-element-checker_params_preg').show(); 
     41            break; 
     42    } 
     43}; 
     44 
     45BxDolStudioFormsFields.prototype.onCheckRequired = function(oCheckbox) { 
     46    var sId = 'bx-form-element-checker_func'; 
     47    if($(oCheckbox).attr('checked') != undefined) 
     48        $('#' + sId).show(); 
     49    else { 
     50        $('#' + sId).hide().find('select').val(''); 
     51        $('#bx-form-element-checker_params_length_min, #bx-form-element-checker_params_length_max, #bx-form-element-checker_params_preg').hide().find('input').val(''); 
     52    } 
     53}; 
    2954/** @} */ 
  • trunk/studio/templates/base/scripts/BxBaseStudioFormsField.php

    r15857 r15870  
    1717 
    1818class BxBaseStudioFormsField extends BxDolStudioFormsField { 
    19     function __construct($aField = array()) { 
    20         parent::__construct($aField); 
    21     } 
    22  
    23     function getJsObject() { 
    24         return BX_DOL_STUDIO_FORMS_FIELDS_JS_OBJECT; 
    25     } 
    26  
    27     function getCode($sAction, $sObject, $sDisplay) { 
    28         $sFunction = 'getCode' . $this->getClassName($sAction); 
    29         if(method_exists($this, $sFunction)) 
    30             return $this->$sFunction($sObject, $sDisplay); 
    31  
    32         return false; 
    33     } 
    34  
    35     protected function getCodeAdd($sObject, $sDisplay) { 
    36         $sAction = 'add'; 
    37  
    38         $aForm = $this->getForm(); 
    39         $aForm['form_attrs']['id'] = 'adm-form-field-add'; 
    40         $aForm['form_attrs']['action'] = BX_DOL_URL_ROOT . 'grid.php?o=' . $sObject . '&a=' . $sAction . '&display=' . $sDisplay; 
    41  
    42         $oForm = new BxTemplStudioFormView($aForm); 
    43         return BxTemplStudioFunctions::getInstance()->popupBox('adm-form-field-add-popup', _t('_adm_form_txt_field_add_popup'), BxDolStudioTemplate::getInstance()->parseHtmlByName('form_add_field.html', array( 
    44             'form_id' => $aForm['form_attrs']['id'], 
    45             'form' => $oForm->getCode(), 
    46             'object' => $sObject, 
    47             'action' => $sAction 
    48         ))); 
    49     } 
    50  
    51     protected function getForm() { 
    52         return array( 
     19    protected $aForm; 
     20 
     21    function __construct($aField = array()) { 
     22        parent::__construct($aField); 
     23 
     24        $this->aForm = array( 
    5325            'form_attrs' => array( 
    5426                'id' => '', 
     
    7446                    'values' => array( 
    7547                        array('key' => '', 'value' => _t('_adm_form_txt_field_type_empty')), 
    76                         array('key' => 'text', 'value' => _t('_adm_form_txt_field_type_text')) 
     48                        array('key' => 'block_header', 'value' => _t('_adm_form_txt_field_type_block_header')), 
     49                        array('key' => 'text', 'value' => _t('_adm_form_txt_field_type_text')), 
     50                        array('key' => 'datepicker', 'value' => _t('_adm_form_txt_field_type_datepicker')), 
     51                        array('key' => 'datetime', 'value' => _t('_adm_form_txt_field_type_datetime')), 
     52                        array('key' => 'number', 'value' => _t('_adm_form_txt_field_type_number')), 
     53                        array('key' => 'checkbox', 'value' => _t('_adm_form_txt_field_type_checkbox')), 
     54                        array('key' => 'file', 'value' => _t('_adm_form_txt_field_type_file')), 
     55                        array('key' => 'image', 'value' => _t('_adm_form_txt_field_type_image')), 
     56                        array('key' => 'password', 'value' => _t('_adm_form_txt_field_type_password')), 
     57                        array('key' => 'slider', 'value' => _t('_adm_form_txt_field_type_slider')), 
     58                        array('key' => 'doublerange', 'value' => _t('_adm_form_txt_field_type_doublerange')), 
     59                        array('key' => 'hidden', 'value' => _t('_adm_form_txt_field_type_hidden')), 
     60                        array('key' => 'switcher', 'value' => _t('_adm_form_txt_field_type_switcher')), 
     61                        array('key' => 'button', 'value' => _t('_adm_form_txt_field_type_button')), 
     62                        array('key' => 'reset', 'value' => _t('_adm_form_txt_field_type_reset')), 
     63                        array('key' => 'submit', 'value' => _t('_adm_form_txt_field_type_submit')), 
     64                        array('key' => 'textarea', 'value' => _t('_adm_form_txt_field_type_textarea')), 
     65                        array('key' => 'select', 'value' => _t('_adm_form_txt_field_type_select')), 
     66                        array('key' => 'select_multiple', 'value' => _t('_adm_form_txt_field_type_select_multiple')), 
     67                        array('key' => 'checkbox_set', 'value' => _t('_adm_form_txt_field_type_checkbox_set')), 
     68                        array('key' => 'radio_set', 'value' => _t('_adm_form_txt_field_type_radio_set')), 
     69                        array('key' => 'input_set', 'value' => _t('_adm_form_txt_field_type_input_set')), 
     70                        array('key' => 'custom', 'value' => _t('_adm_form_txt_field_type_custom')), 
     71                        array('key' => 'value', 'value' => _t('_adm_form_txt_field_type_value')), 
     72                        array('key' => 'captcha', 'value' => _t('_adm_form_txt_field_type_captcha')), 
    7773                    ), 
    7874                    'required' => '1', 
     
    10298        ); 
    10399    } 
    104 } 
    105  
    106 class BxBaseStudioFormsFieldText extends BxBaseStudioFormsField { 
    107     function __construct($aField = array()) { 
    108         parent::__construct($aField); 
    109     } 
    110  
    111     protected function getCodeAdd($sObject, $sDisplay) { 
    112         $sAction = 'add'; 
    113  
    114         $aForm = $this->getForm(); 
    115         $aForm['form_attrs']['id'] = 'adm-form-field-add-' . $sDisplay; 
    116         $aForm['form_attrs']['action'] = BX_DOL_URL_ROOT . 'grid.php?o=' . $sObject . '&a=' . $sAction . '&display=' . $sDisplay; 
    117  
    118         $aDisplay = array(); 
    119         $this->oDb->getDisplays(array('type' => 'by_name', 'value' => $sDisplay), $aDisplay, false); 
    120         if(!empty($aDisplay)) 
    121             $aForm['inputs']['object']['value'] = $aDisplay['object'];  
    122  
     100 
     101    function getJsObject() { 
     102        return BX_DOL_STUDIO_FORMS_FIELDS_JS_OBJECT; 
     103    } 
     104 
     105    function getCode($sAction, $sObject, $sDisplay) { 
     106        $sFunction = 'getCode' . $this->getClassName($sAction); 
     107        if(method_exists($this, $sFunction)) 
     108            return $this->$sFunction($sAction, $sObject, $sDisplay); 
     109 
     110        return false; 
     111    } 
     112 
     113    protected function getCodeAdd($sAction, $sObject, $sDisplay) { 
     114        $aForm = $this->getFormAdd($sAction, $sObject, $sDisplay); 
    123115        $oForm = new BxTemplStudioFormView($aForm); 
    124116        $oForm->initChecker(); 
    125117 
    126118        if($oForm->isSubmittedAndValid()) { 
    127             $sTitleValue = $oForm->getCleanValue('caption'); 
    128             $sTitleKey = '_sys_form_txt_caption_' . $this->getSystemName($sTitleValue); 
    129             BxDolForm::setSubmittedValue('caption', $sTitleKey, $aForm['form_attrs']['method']); 
     119            $sName = $oForm->getCleanValue('name'); 
     120            BxDolForm::setSubmittedValue('name', $this->getSystemName($sName), $aForm['form_attrs']['method']); 
     121 
     122            $sTitleKey = $sTitleValue = ''; 
     123            if(($bCaption = isset($aForm['inputs']['caption'])) === true) { 
     124                $sTitleValue = $oForm->getCleanValue('caption'); 
     125                $sTitleKey = '_sys_form_txt_caption_' . $this->getSystemName($sTitleValue); 
     126                BxDolForm::setSubmittedValue('caption', $sTitleKey, $aForm['form_attrs']['method']); 
     127            } 
     128 
     129            if(isset($aForm['inputs']['values'])) { 
     130                $sValues = $oForm->getCleanValue('values'); 
     131                BxDolForm::setSubmittedValue('values', serialize(explode("\n", $sValues)), $aForm['form_attrs']['method']); 
     132            } 
     133 
     134            //--- Checker related fields 
     135            $aCheckerParams = array(); 
     136            if(isset($aForm['inputs']['checker_params_length_min'], $aForm['inputs']['checker_params_length_max'])) { 
     137                $aCheckerParams['min'] = $oForm->getCleanValue('checker_params_length_min'); 
     138                $aCheckerParams['max'] = $oForm->getCleanValue('checker_params_length_max'); 
     139            } 
     140            else if(isset($aForm['inputs']['checker_params_preg'])) 
     141                $aCheckerParams['preg'] = $oForm->getCleanValue('checker_params_preg'); 
     142 
     143            unset($oForm->aInputs['checker_params_length_min'], $oForm->aInputs['checker_params_length_max'], $oForm->aInputs['checker_params_preg']); 
     144            BxDolForm::setSubmittedValue('checker_params', serialize($aCheckerParams), $aForm['form_attrs']['method']); 
     145 
     146            //--- Attrs related fields 
     147            $aAttrs = array(); 
     148            if(isset($aForm['inputs']['attrs_min'], $aForm['inputs']['attrs_max'], $aForm['inputs']['attrs_step'])) { 
     149                $aAttrs['min'] = $oForm->getCleanValue('attrs_min'); 
     150                $aAttrs['max'] = $oForm->getCleanValue('attrs_max'); 
     151                $aAttrs['step'] = $oForm->getCleanValue('attrs_step'); 
     152            } 
     153            else if(isset($aForm['inputs']['attrs_src'])) 
     154                $aAttrs['src'] = $oForm->getCleanValue('attrs_src'); 
     155 
     156            unset($oForm->aInputs['attrs_min'], $oForm->aInputs['attrs_max'], $oForm->aInputs['attrs_step'], $oForm->aInputs['attrs_src']); 
     157            BxDolForm::setSubmittedValue('attrs', serialize($aAttrs), $aForm['form_attrs']['method']); 
    130158 
    131159            if(($iId = $oForm->insert()) === false)  
    132160                return false; 
    133161 
    134             $oLanguages = BxDolStudioLanguagesUtils::getInstance()->addLanguageString($sTitleKey, $sTitleValue); 
     162            if($bCaption) 
     163                $oLanguages = BxDolStudioLanguagesUtils::getInstance()->addLanguageString($sTitleKey, $sTitleValue); 
     164 
    135165            return true; 
    136166        } 
     
    144174    } 
    145175 
    146     protected function getCodeEdit($sObject, $sDisplay) { 
    147         $sAction = 'edit'; 
    148  
    149         $aForm = $this->getForm(); 
    150         $aForm['form_attrs']['id'] = 'adm-form-field-edit-' . $sDisplay; 
    151         $aForm['form_attrs']['action'] = BX_DOL_URL_ROOT . 'grid.php?o=' . $sObject . '&a=' . $sAction . '&display=' . $sDisplay . '&di_id=' . (int)$this->aField['di_id']; 
    152  
    153         unset($aForm['inputs']['object'], $aForm['inputs']['module'], $aForm['inputs']['type'], $aForm['inputs']['name']); 
    154         foreach($aForm['inputs'] as $sKey => $aInput) 
    155             if(!in_array($sKey, array('controls'))) 
    156                 switch($sKey) { 
    157                     case 'required': 
    158                         $aForm['inputs'][$sKey]['checked'] = (int)$this->aField[$sKey]; 
    159                         break; 
    160                     default: 
    161                         $aForm['inputs'][$sKey]['value'] = $this->aField[$sKey]; 
    162                 } 
    163         $aForm['inputs']['caption']['value'] = _t($aForm['inputs']['caption']['value']); 
    164         $aForm['inputs']['controls'][0]['value'] = _t('_adm_form_btn_field_save'); 
    165  
     176    protected function getCodeEdit($sAction, $sObject, $sDisplay) { 
     177        $aForm = $this->getFormEdit($sAction, $sObject, $sDisplay); 
    166178        $oForm = new BxTemplStudioFormView($aForm); 
    167179        $oForm->initChecker(); 
    168180 
    169181        if($oForm->isSubmittedAndValid()) { 
    170             $sTitleValue = $oForm->getCleanValue('caption'); 
    171             BxDolForm::setSubmittedValue('caption', $this->aField['caption'], $aForm['form_attrs']['method']); 
     182            $sTitleValue = ''; 
     183            if(($bCaption = isset($aForm['inputs']['caption'])) === true) { 
     184                $sTitleValue = $oForm->getCleanValue('caption'); 
     185                BxDolForm::setSubmittedValue('caption', $this->aField['caption'], $aForm['form_attrs']['method']); 
     186            } 
     187 
     188            if(isset($aForm['inputs']['values'])) { 
     189                $sValues = $oForm->getCleanValue('values'); 
     190                BxDolForm::setSubmittedValue('values', serialize(explode("\n", $sValues)), $aForm['form_attrs']['method']); 
     191            } 
     192 
     193            //--- Checker related fields 
     194            $aCheckerParams = array(); 
     195            if(isset($aForm['inputs']['checker_params_length_min'], $aForm['inputs']['checker_params_length_max'])) { 
     196                $aCheckerParams['min'] = $oForm->getCleanValue('checker_params_length_min'); 
     197                $aCheckerParams['max'] = $oForm->getCleanValue('checker_params_length_max'); 
     198            } 
     199            else if(isset($aForm['inputs']['checker_params_preg'])) 
     200                $aCheckerParams['preg'] = $oForm->getCleanValue('checker_params_preg'); 
     201 
     202            unset($oForm->aInputs['checker_params_length_min'], $oForm->aInputs['checker_params_length_max'], $oForm->aInputs['checker_params_preg']); 
     203            BxDolForm::setSubmittedValue('checker_params', serialize($aCheckerParams), $aForm['form_attrs']['method']); 
     204 
     205            //--- Attrs related fields 
     206            $aAttrs = array(); 
     207            if(isset($aForm['inputs']['attrs_min'], $aForm['inputs']['attrs_max'], $aForm['inputs']['attrs_step'])) { 
     208                $aAttrs['min'] = $oForm->getCleanValue('attrs_min'); 
     209                $aAttrs['max'] = $oForm->getCleanValue('attrs_max'); 
     210                $aAttrs['step'] = $oForm->getCleanValue('attrs_step'); 
     211            } 
     212            else if(isset($aForm['inputs']['attrs_src'])) 
     213                $aAttrs['src'] = $oForm->getCleanValue('attrs_src'); 
     214 
     215            unset($oForm->aInputs['attrs_min'], $oForm->aInputs['attrs_max'], $oForm->aInputs['attrs_step'], $oForm->aInputs['attrs_src']); 
     216            BxDolForm::setSubmittedValue('attrs', serialize($aAttrs), $aForm['form_attrs']['method']); 
    172217 
    173218            if($oForm->update((int)$this->aField['id']) === false)  
    174219                return false; 
    175220 
    176             $oLanguages = BxDolStudioLanguagesUtils::getInstance()->updateLanguageString($this->aField['caption'], $sTitleValue); 
     221            if($bCaption) 
     222                $oLanguages = BxDolStudioLanguagesUtils::getInstance()->updateLanguageString($this->aField['caption'], $sTitleValue); 
     223 
    177224            return true; 
    178225        } 
     
    186233    } 
    187234 
    188     protected function getForm() { 
     235    protected function getFormAdd($sAction, $sObject, $sDisplay) { 
     236        $aForm = $this->aForm; 
     237        $aForm['form_attrs']['id'] = 'adm-form-field-add-' . $sDisplay; 
     238        $aForm['form_attrs']['action'] = BX_DOL_URL_ROOT . 'grid.php?o=' . $sObject . '&a=' . $sAction . '&display=' . $sDisplay; 
     239 
     240        if(isset($aForm['inputs']['object'])) { 
     241            $aDisplay = array(); 
     242            $this->oDb->getDisplays(array('type' => 'by_name', 'value' => $sDisplay), $aDisplay, false); 
     243            if(!empty($aDisplay)) 
     244                $aForm['inputs']['object']['value'] = $aDisplay['object'];  
     245        } 
     246 
     247        return $aForm; 
     248    } 
     249 
     250    protected function getFormEdit($sAction, $sObject, $sDisplay) { 
     251        $aForm = $this->aForm; 
     252        $aForm['form_attrs']['id'] = 'adm-form-field-edit-' . $sDisplay; 
     253        $aForm['form_attrs']['action'] = BX_DOL_URL_ROOT . 'grid.php?o=' . $sObject . '&a=' . $sAction . '&display=' . $sDisplay . '&di_id=' . (int)$this->aField['di_id']; 
     254 
     255        unset($aForm['inputs']['object'], $aForm['inputs']['module'], $aForm['inputs']['type'], $aForm['inputs']['name']); 
     256        foreach($aForm['inputs'] as $sKey => $aInput) 
     257            if(!in_array($sKey, array('controls'))) 
     258                switch($sKey) { 
     259                    case 'type_display': 
     260                        break; 
     261                    case 'values': 
     262                        if(!empty($this->aField[$sKey])) 
     263                            $aForm['inputs'][$sKey]['value'] = $this->getFieldValues($this->aField); 
     264                        break; 
     265                    case 'checked': 
     266                        $aForm['inputs'][$sKey]['checked'] = (int)$this->aField[$sKey]; 
     267                        break; 
     268                    case 'collapsed': 
     269                        $aForm['inputs'][$sKey]['checked'] = (int)$this->aField[$sKey]; 
     270                        break; 
     271                    case 'required': 
     272                        $aForm['inputs'][$sKey]['checked'] = (int)$this->aField[$sKey]; 
     273                        if($aForm['inputs'][$sKey]['checked'] == 1 && isset($aForm['inputs']['checker_func'])) 
     274                            unset($aForm['inputs']['checker_func']['tr_attrs']['style']); 
     275                        break; 
     276                    case 'checker_func': 
     277                        $aForm['inputs'][$sKey]['value'] = $this->aField[$sKey]; 
     278                        switch($aForm['inputs'][$sKey]['value']) { 
     279                            case 'length': 
     280                                unset($aForm['inputs']['checker_params_length_min']['tr_attrs']['style'], $aForm['inputs']['checker_params_length_max']['tr_attrs']['style']); 
     281                                break; 
     282                            case 'preg': 
     283                                unset($aForm['inputs']['checker_params_preg']['tr_attrs']['style']); 
     284                                break; 
     285                        } 
     286                        break; 
     287                    case 'checker_params_length_min': 
     288                        $aParams = unserialize($this->aField['checker_params']); 
     289                        $aForm['inputs'][$sKey]['value'] = isset($aParams['min']) ? (int)$aParams['min'] : 0; 
     290                        break; 
     291                    case 'checker_params_length_max': 
     292                        $aParams = unserialize($this->aField['checker_params']); 
     293                        $aForm['inputs'][$sKey]['value'] = isset($aParams['max']) ? (int)$aParams['max'] : 0; 
     294                        break; 
     295                    case 'checker_params_preg': 
     296                        $aParams = unserialize($this->aField['checker_params']); 
     297                        $aForm['inputs'][$sKey]['value'] = isset($aParams['preg']) ? $aParams['preg'] : ''; 
     298                        break; 
     299                    case 'attrs_min': 
     300                        $aParams = unserialize($this->aField['attrs']); 
     301                        $aForm['inputs'][$sKey]['value'] = isset($aParams['min']) ? (int)$aParams['min'] : 0; 
     302                        break; 
     303                    case 'attrs_max': 
     304                        $aParams = unserialize($this->aField['attrs']); 
     305                        $aForm['inputs'][$sKey]['value'] = isset($aParams['max']) ? (int)$aParams['max'] : 100; 
     306                        break; 
     307                    case 'attrs_step': 
     308                        $aParams = unserialize($this->aField['attrs']); 
     309                        $aForm['inputs'][$sKey]['value'] = isset($aParams['step']) ? (int)$aParams['step'] : 1; 
     310                        break; 
     311                    case 'attrs_src': 
     312                        $aParams = unserialize($this->aField['attrs']); 
     313                        $aForm['inputs'][$sKey]['value'] = isset($aParams['src']) ? $aParams['src'] : ''; 
     314                        break; 
     315                    default: 
     316                        $aForm['inputs'][$sKey]['value'] = $this->aField[$sKey]; 
     317                } 
     318 
     319        if(isset($aForm['inputs']['caption'])) 
     320            $aForm['inputs']['caption']['value'] = _t($aForm['inputs']['caption']['value']); 
     321 
     322        $aForm['inputs']['controls'][0]['value'] = _t('_adm_form_btn_field_save'); 
     323 
     324        return $aForm; 
     325    } 
     326    protected function getFieldValues($aField) { 
     327        $mixedResult = null; 
     328 
     329        switch($aField['type']) { 
     330            case 'select': 
     331            case 'select_multiple': 
     332            case 'checkbox_set': 
     333            case 'radio_set': 
     334                $mixedResult = implode("\n", unserialize($this->aField['values'])); 
     335                break; 
     336            case 'input_set':  
     337                $mixedResult = $this->aField['values']; 
     338                break; 
     339        } 
     340 
     341        return $mixedResult; 
     342    } 
     343    protected function getCheckerFields() { 
    189344        return array( 
     345            'checker_func' => array( 
     346                'type' => 'select', 
     347                'name' => 'checker_func', 
     348                'caption' => _t('_adm_form_txt_field_checker_func'), 
     349                'info' => '', 
     350                'value' => '', 
     351                'values' => array( 
     352                    array('key' => '', 'value' => _t('_adm_form_txt_field_checker_empty')), 
     353                    array('key' => 'avail', 'value' => _t('_adm_form_txt_field_checker_avail')), 
     354                    array('key' => 'length', 'value' => _t('_adm_form_txt_field_checker_length')), 
     355                    array('key' => 'date', 'value' => _t('_adm_form_txt_field_checker_date')), 
     356                    array('key' => 'date_time', 'value' => _t('_adm_form_txt_field_checker_date_time')), 
     357                    array('key' => 'preg', 'value' => _t('_adm_form_txt_field_checker_preg')), 
     358                    array('key' => 'email', 'value' => _t('_adm_form_txt_field_checker_email')), 
     359                    array('key' => 'captcha', 'value' => _t('_adm_form_txt_field_checker_captcha')), 
     360                    array('key' => 'no_spam', 'value' => _t('_adm_form_txt_field_checker_no_spam')) 
     361                ), 
     362                'required' => '0', 
     363                'attrs' => array( 
     364                    'id' => 'bx-form-field-type', 
     365                    'onchange' => $this->getJsObject() . ".onSelectChecker(this)" 
     366                ), 
     367                'tr_attrs' => array( 
     368                    'style' => 'display:none' 
     369                ), 
     370                'db' => array ( 
     371                    'pass' => 'Xss', 
     372                ), 
     373                'checker' => array ( 
     374                    'func' => '', 
     375                    'params' => array(), 
     376                    'error' => '_adm_form_err_field_checker_func', 
     377                ), 
     378            ), 
     379            'checker_params' => array( 
     380                'type' => 'hidden', 
     381                'name' => 'checker_params', 
     382                'value' => '', 
     383                'db' => array ( 
     384                    'pass' => 'Xss', 
     385                ), 
     386            ), 
     387            'checker_params_length_min' => array( 
     388                'type' => 'text', 
     389                'name' => 'checker_params_length_min', 
     390                'caption' => _t('_adm_form_txt_field_checker_params_length_min'), 
     391                'info' => '', 
     392                'value' => '', 
     393                'required' => '0', 
     394                'tr_attrs' => array( 
     395                    'style' => 'display:none' 
     396                ), 
     397                'db' => array ( 
     398                    'pass' => 'Int', 
     399                ) 
     400            ), 
     401            'checker_params_length_max' => array( 
     402                'type' => 'text', 
     403                'name' => 'checker_params_length_max', 
     404                'caption' => _t('_adm_form_txt_field_checker_params_length_max'), 
     405                'info' => '', 
     406                'value' => '', 
     407                'required' => '0', 
     408                'tr_attrs' => array( 
     409                    'style' => 'display:none' 
     410                ), 
     411                'db' => array ( 
     412                    'pass' => 'Int', 
     413                ) 
     414            ), 
     415            'checker_params_preg' => array( 
     416                'type' => 'text', 
     417                'name' => 'checker_params_preg', 
     418                'caption' => _t('_adm_form_txt_field_checker_params_preg'), 
     419                'info' => '', 
     420                'value' => '', 
     421                'required' => '0', 
     422                'tr_attrs' => array( 
     423                    'style' => 'display:none' 
     424                ), 
     425                'db' => array ( 
     426                    'pass' => 'Xss', 
     427                ) 
     428            ), 
     429         
     430        ); 
     431    } 
     432} 
     433 
     434class BxBaseStudioFormsFieldBlockHeader extends BxBaseStudioFormsField { 
     435    function __construct($aField = array()) { 
     436        parent::__construct($aField); 
     437 
     438        $this->aForm = array( 
    190439            'form_attrs' => array( 
    191440                'id' => '', 
     
    222471                    'type' => 'hidden', 
    223472                    'name' => 'type', 
    224                     'value' => 'text', 
     473                    'value' => 'block_header', 
    225474                    'db' => array ( 
    226475                        'pass' => 'Xss', 
    227476                    ), 
     477                ), 
     478                'type_display' => array( 
     479                    'type' => 'value', 
     480                    'name' => 'type_display', 
     481                    'caption' => _t('_adm_form_txt_field_type_display'), 
     482                    'value' => 'block_header', 
    228483                ), 
    229484                'name' => array( 
     
    249504                    'info' => _t('_adm_form_dsc_field_caption'), 
    250505                    'value' => '', 
    251                     'required' => '1', 
    252                     'db' => array ( 
    253                         'pass' => 'Xss', 
    254                     ), 
    255                     'checker' => array ( 
    256                         'func' => 'length', 
    257                         'params' => array(3,100), 
    258                         'error' => _t('_adm_form_err_field_caption'), 
    259                     ), 
    260                 ), 
    261                 'value' => array( 
    262                     'type' => 'text', 
    263                     'name' => 'value', 
    264                     'caption' => _t('_adm_form_txt_field_value'), 
    265                     'info' => _t('_adm_form_dsc_field_value'), 
    266                     'value' => '', 
    267                     'required' => '0', 
     506                    'required' => '', 
    268507                    'db' => array ( 
    269508                        'pass' => 'Xss', 
    270509                    ) 
    271510                ), 
    272                 'info' => array( 
    273                     'type' => 'textarea', 
    274                     'name' => 'info', 
    275                     'caption' => _t('_adm_form_txt_field_info'), 
    276                     'info' => _t('_adm_form_dsc_field_info'), 
    277                     'value' => '', 
    278                     'required' => '0', 
    279                     'db' => array ( 
    280                         'pass' => 'Xss', 
    281                     ) 
    282                 ), 
    283                 'required' => array( 
     511                'collapsed' => array( 
    284512                    'type' => 'checkbox', 
    285                     'name' => 'required', 
    286                     'caption' => _t('_adm_form_txt_field_required'), 
    287                     'info' => _t('_adm_form_dsc_field_required'), 
     513                    'name' => 'collapsed', 
     514                    'caption' => _t('_adm_form_txt_field_collapsed'), 
     515                    'info' => _t('_adm_form_dsc_field_collapsed'), 
    288516                    'value' => '1', 
    289517                    'required' => '0', 
     
    314542    } 
    315543} 
     544 
     545class BxBaseStudioFormsFieldValue extends BxBaseStudioFormsFieldBlockHeader { 
     546    function __construct($aField = array()) { 
     547        parent::__construct($aField); 
     548 
     549        $this->aForm['inputs']['type']['value'] = 'value'; 
     550        $this->aForm['inputs']['type_display']['value'] = 'value'; 
     551 
     552        $aFields = array( 
     553            'value' => array( 
     554                'type' => 'text', 
     555                'name' => 'value', 
     556                'caption' => _t('_adm_form_txt_field_value'), 
     557                'info' => _t('_adm_form_dsc_field_value'), 
     558                'value' => '', 
     559                'required' => '0', 
     560                'db' => array ( 
     561                    'pass' => 'Xss', 
     562                ) 
     563            ), 
     564        ); 
     565        $this->aForm['inputs'] = $this->addInArray($this->aForm['inputs'], 'caption', $aFields); 
     566 
     567        unset( 
     568            $this->aForm['inputs']['collapsed'] 
     569        ); 
     570    } 
     571} 
     572 
     573class BxBaseStudioFormsFieldText extends BxBaseStudioFormsFieldBlockHeader { 
     574    function __construct($aField = array()) { 
     575        parent::__construct($aField); 
     576 
     577        $this->aForm['inputs']['type']['value'] = 'text'; 
     578        $this->aForm['inputs']['type_display']['value'] = 'text'; 
     579 
     580        $aFields = array( 
     581            'value' => array( 
     582                'type' => 'text', 
     583                'name' => 'value', 
     584                'caption' => _t('_adm_form_txt_field_value'), 
     585                'info' => _t('_adm_form_dsc_field_value'), 
     586                'value' => '', 
     587                'required' => '0', 
     588                'db' => array ( 
     589                    'pass' => 'Xss', 
     590                ) 
     591            ), 
     592            'info' => array( 
     593                'type' => 'textarea', 
     594                'name' => 'info', 
     595                'caption' => _t('_adm_form_txt_field_info'), 
     596                'info' => _t('_adm_form_dsc_field_info'), 
     597                'value' => '', 
     598                'required' => '0', 
     599                'db' => array ( 
     600                    'pass' => 'Xss', 
     601                ) 
     602            ), 
     603            'required' => array( 
     604                'type' => 'checkbox', 
     605                'name' => 'required', 
     606                'caption' => _t('_adm_form_txt_field_required'), 
     607                'info' => _t('_adm_form_dsc_field_required'), 
     608                'value' => '1', 
     609                'required' => '0', 
     610                'attrs' => array( 
     611                    'id' => 'bx-form-field-required', 
     612                    'onchange' => $this->getJsObject() . ".onCheckRequired(this)" 
     613                ), 
     614                'db' => array ( 
     615                    'pass' => 'Int', 
     616                ) 
     617            ) 
     618        ); 
     619         
     620        $aFields = array_merge($aFields, $this->getCheckerFields()); 
     621 
     622        $this->aForm['inputs'] = $this->addInArray($this->aForm['inputs'], 'caption', $aFields); 
     623 
     624        unset( 
     625            $this->aForm['inputs']['collapsed'] 
     626        ); 
     627    } 
     628} 
     629 
     630class BxBaseStudioFormsFieldPassword extends BxBaseStudioFormsFieldText { 
     631    function __construct($aField = array()) { 
     632        parent::__construct($aField); 
     633 
     634        $this->aForm['inputs']['type']['value'] = 'password'; 
     635        $this->aForm['inputs']['type_display']['value'] = 'password'; 
     636    } 
     637} 
     638 
     639class BxBaseStudioFormsFieldTextarea extends BxBaseStudioFormsFieldText { 
     640    function __construct($aField = array()) { 
     641        parent::__construct($aField); 
     642 
     643        $this->aForm['inputs']['type']['value'] = 'textarea'; 
     644        $this->aForm['inputs']['type_display']['value'] = 'textarea'; 
     645 
     646        $aFields = array( 
     647            'html' => array( 
     648                'type' => 'select', 
     649                'name' => 'html', 
     650                'caption' => _t('_adm_form_txt_field_html'), 
     651                'info' => _t('_adm_form_dsc_field_html'), 
     652                'value' => '0', 
     653                'values' => array( 
     654                    array('key' => '0', 'value' => _t('_adm_form_txt_field_html_none')), 
     655                    array('key' => '1', 'value' => _t('_adm_form_txt_field_html_micro')), 
     656                    array('key' => '3', 'value' => _t('_adm_form_txt_field_html_mini')), 
     657                    array('key' => '2', 'value' => _t('_adm_form_txt_field_html_default')) 
     658                ), 
     659                'required' => '0', 
     660                'db' => array ( 
     661                    'pass' => 'Xss', 
     662                ) 
     663            ), 
     664        ); 
     665 
     666        $this->aForm['inputs'] = $this->addInArray($this->aForm['inputs'], 'info', $aFields); 
     667    } 
     668} 
     669 
     670class BxBaseStudioFormsFieldNumber extends BxBaseStudioFormsFieldText { 
     671    function __construct($aField = array()) { 
     672        parent::__construct($aField); 
     673 
     674        $this->aForm['inputs']['type']['value'] = 'number'; 
     675        $this->aForm['inputs']['type_display']['value'] = 'number'; 
     676    } 
     677} 
     678 
     679class BxBaseStudioFormsFieldDatepicker extends BxBaseStudioFormsFieldText { 
     680    function __construct($aField = array()) { 
     681        parent::__construct($aField); 
     682 
     683        $this->aForm['inputs']['type']['value'] = 'date'; 
     684        $this->aForm['inputs']['type_display']['value'] = 'date'; 
     685    } 
     686} 
     687 
     688class BxBaseStudioFormsFieldDatetime extends BxBaseStudioFormsFieldDatepicker { 
     689    function __construct($aField = array()) { 
     690        parent::__construct($aField); 
     691 
     692        $this->aForm['inputs']['type']['value'] = 'datetime'; 
     693        $this->aForm['inputs']['type_display']['value'] = 'datetime'; 
     694    } 
     695} 
     696 
     697class BxBaseStudioFormsFieldCheckbox extends BxBaseStudioFormsFieldText { 
     698    function __construct($aField = array()) { 
     699        parent::__construct($aField); 
     700 
     701        $this->aForm['inputs']['type']['value'] = 'checkbox'; 
     702        $this->aForm['inputs']['type_display']['value'] = 'checkbox'; 
     703 
     704        $aFields = array( 
     705            'checked' => array( 
     706                'type' => 'checkbox', 
     707                'name' => 'checked', 
     708                'caption' => _t('_adm_form_txt_field_checked'), 
     709                'info' => _t('_adm_form_dsc_field_checked'), 
     710                'value' => '1', 
     711                'required' => '0', 
     712                'db' => array ( 
     713                    'pass' => 'Int', 
     714                ) 
     715            ) 
     716        ); 
     717        $this->aForm['inputs'] = $this->addInArray($this->aForm['inputs'], 'value', $aFields); 
     718    } 
     719} 
     720 
     721class BxBaseStudioFormsFieldSwitcher extends BxBaseStudioFormsFieldCheckbox { 
     722    function __construct($aField = array()) { 
     723        parent::__construct($aField); 
     724 
     725        $this->aForm['inputs']['type']['value'] = 'switcher'; 
     726        $this->aForm['inputs']['type_display']['value'] = 'switcher'; 
     727    } 
     728} 
     729 
     730class BxBaseStudioFormsFieldFile extends BxBaseStudioFormsFieldText { 
     731    function __construct($aField = array()) { 
     732        parent::__construct($aField); 
     733 
     734        $this->aForm['inputs']['type']['value'] = 'file'; 
     735        $this->aForm['inputs']['type_display']['value'] = 'file'; 
     736         
     737        unset( 
     738            $this->aForm['inputs']['value'] 
     739        ); 
     740    } 
     741} 
     742 
     743class BxBaseStudioFormsFieldSlider extends BxBaseStudioFormsFieldText { 
     744    function __construct($aField = array()) { 
     745        parent::__construct($aField); 
     746 
     747        $this->aForm['inputs']['type']['value'] = 'slider'; 
     748        $this->aForm['inputs']['type_display']['value'] = 'slider'; 
     749 
     750        $aFields = array( 
     751            'attrs' => array( 
     752                'type' => 'hidden', 
     753                'name' => 'attrs', 
     754                'value' => '', 
     755                'db' => array ( 
     756                    'pass' => 'Xss', 
     757                ), 
     758            ), 
     759            'attrs_min' => array( 
     760                'type' => 'text', 
     761                'name' => 'attrs_min', 
     762                'caption' => _t('_adm_form_txt_field_attrs_min'), 
     763                'info' => _t('_adm_form_dsc_field_attrs_min'), 
     764                'value' => '', 
     765                'required' => '0', 
     766                'db' => array ( 
     767                    'pass' => 'Int', 
     768                ) 
     769            ), 
     770            'attrs_max' => array( 
     771                'type' => 'text', 
     772                'name' => 'attrs_max', 
     773                'caption' => _t('_adm_form_txt_field_attrs_max'), 
     774                'info' => _t('_adm_form_dsc_field_attrs_max'), 
     775                'value' => '', 
     776                'required' => '0', 
     777                'db' => array ( 
     778                    'pass' => 'Int', 
     779                ) 
     780            ), 
     781            'attrs_step' => array( 
     782                'type' => 'text', 
     783                'name' => 'attrs_step', 
     784                'caption' => _t('_adm_form_txt_field_attrs_step'), 
     785                'info' => _t('_adm_form_dsc_field_attrs_step'), 
     786                'value' => '', 
     787                'required' => '0', 
     788                'db' => array ( 
     789                    'pass' => 'Int', 
     790                ) 
     791            ), 
     792        ); 
     793        $this->aForm['inputs'] = $this->addInArray($this->aForm['inputs'], 'value', $aFields); 
     794    } 
     795} 
     796 
     797class BxBaseStudioFormsFieldDoublerange extends BxBaseStudioFormsFieldSlider { 
     798    function __construct($aField = array()) { 
     799        parent::__construct($aField); 
     800 
     801        $this->aForm['inputs']['type']['value'] = 'doublerange'; 
     802        $this->aForm['inputs']['type_display']['value'] = 'doublerange'; 
     803    } 
     804} 
     805 
     806class BxBaseStudioFormsFieldHidden extends BxBaseStudioFormsFieldText { 
     807    function __construct($aField = array()) { 
     808        parent::__construct($aField); 
     809 
     810        $this->aForm['inputs']['type']['value'] = 'hidden'; 
     811        $this->aForm['inputs']['type_display']['value'] = 'hidden'; 
     812 
     813        unset( 
     814            $this->aForm['inputs']['caption'],  
     815            $this->aForm['inputs']['info'] 
     816        ); 
     817    } 
     818} 
     819 
     820class BxBaseStudioFormsFieldButton extends BxBaseStudioFormsFieldText { 
     821    function __construct($aField = array()) { 
     822        parent::__construct($aField); 
     823 
     824        $this->aForm['inputs']['type']['value'] = 'button'; 
     825        $this->aForm['inputs']['type_display']['value'] = 'button'; 
     826 
     827        unset( 
     828            $this->aForm['inputs']['caption'],  
     829            $this->aForm['inputs']['info'], 
     830            $this->aForm['inputs']['required'], 
     831            $this->aForm['inputs']['checker_func'],  
     832            $this->aForm['inputs']['checker_params'], 
     833            $this->aForm['inputs']['checker_params_length_min'], 
     834            $this->aForm['inputs']['checker_params_length_max'],  
     835            $this->aForm['inputs']['checker_params_preg'] 
     836        ); 
     837    } 
     838} 
     839 
     840class BxBaseStudioFormsFieldReset extends BxBaseStudioFormsFieldButton { 
     841    function __construct($aField = array()) { 
     842        parent::__construct($aField); 
     843 
     844        $this->aForm['inputs']['type']['value'] = 'reset'; 
     845        $this->aForm['inputs']['type_display']['value'] = 'reset'; 
     846    } 
     847} 
     848 
     849class BxBaseStudioFormsFieldSubmit extends BxBaseStudioFormsFieldButton { 
     850    function __construct($aField = array()) { 
     851        parent::__construct($aField); 
     852 
     853        $this->aForm['inputs']['type']['value'] = 'submit'; 
     854        $this->aForm['inputs']['type_display']['value'] = 'submit'; 
     855    } 
     856} 
     857 
     858class BxBaseStudioFormsFieldImage extends BxBaseStudioFormsFieldButton { 
     859    function __construct($aField = array()) { 
     860        parent::__construct($aField); 
     861 
     862        $this->aForm['inputs']['type']['value'] = 'image'; 
     863        $this->aForm['inputs']['type_display']['value'] = 'image'; 
     864 
     865        $aFields = array( 
     866            'attrs' => array( 
     867                'type' => 'hidden', 
     868                'name' => 'attrs', 
     869                'value' => '', 
     870                'db' => array ( 
     871                    'pass' => 'Xss', 
     872                ), 
     873            ), 
     874            'attrs_src' => array( 
     875                'type' => 'text', 
     876                'name' => 'attrs_src', 
     877                'caption' => _t('_adm_form_txt_field_attrs_src'), 
     878                'info' => _t('_adm_form_dsc_field_attrs_src'), 
     879                'value' => '', 
     880                'required' => '0', 
     881                'db' => array ( 
     882                    'pass' => 'Xss', 
     883                ) 
     884            ), 
     885        ); 
     886        $this->aForm['inputs'] = $this->addInArray($this->aForm['inputs'], 'value', $aFields); 
     887 
     888        unset( 
     889            $this->aForm['inputs']['value'] 
     890        ); 
     891    } 
     892} 
     893 
     894class BxBaseStudioFormsFieldSelect extends BxBaseStudioFormsFieldText { 
     895    function __construct($aField = array()) { 
     896        parent::__construct($aField); 
     897 
     898        $this->aForm['inputs']['type']['value'] = 'select'; 
     899        $this->aForm['inputs']['type_display']['value'] = 'select'; 
     900 
     901        $aFields = array( 
     902            'values' => array( 
     903                'type' => 'textarea', 
     904                'name' => 'values', 
     905                'caption' => _t('_adm_form_txt_field_values'), 
     906                'info' => _t('_adm_form_dsc_field_values'), 
     907                'value' => '', 
     908                'required' => '0', 
     909                'db' => array ( 
     910                    'pass' => 'Xss', 
     911                ) 
     912            ) 
     913        ); 
     914        $this->aForm['inputs'] = $this->addInArray($this->aForm['inputs'], 'value', $aFields); 
     915    } 
     916} 
     917 
     918class BxBaseStudioFormsFieldRadioSet extends BxBaseStudioFormsFieldSelect { 
     919    function __construct($aField = array()) { 
     920        parent::__construct($aField); 
     921 
     922        $this->aForm['inputs']['type']['value'] = 'radio_set'; 
     923        $this->aForm['inputs']['type_display']['value'] = 'radio_set'; 
     924    } 
     925} 
     926 
     927class BxBaseStudioFormsFieldSelectMultiple extends BxBaseStudioFormsFieldSelect { 
     928    function __construct($aField = array()) { 
     929        parent::__construct($aField); 
     930 
     931        $this->aForm['inputs']['type']['value'] = 'select_multiple'; 
     932        $this->aForm['inputs']['type_display']['value'] = 'select_multiple'; 
     933    } 
     934} 
     935 
     936class BxBaseStudioFormsFieldCheckboxSet extends BxBaseStudioFormsFieldSelect { 
     937    function __construct($aField = array()) { 
     938        parent::__construct($aField); 
     939 
     940        $this->aForm['inputs']['type']['value'] = 'checkbox_set'; 
     941        $this->aForm['inputs']['type_display']['value'] = 'checkbox_set'; 
     942    } 
     943} 
     944 
     945class BxBaseStudioFormsFieldCustom extends BxBaseStudioFormsFieldText { 
     946    function __construct($aField = array()) { 
     947        parent::__construct($aField); 
     948 
     949        $this->aForm['inputs']['type']['value'] = 'custom'; 
     950        $this->aForm['inputs']['type_display']['value'] = 'custom'; 
     951 
     952        unset( 
     953            $this->aForm['inputs']['required'], 
     954            $this->aForm['inputs']['checker_func'],  
     955            $this->aForm['inputs']['checker_params'], 
     956            $this->aForm['inputs']['checker_params_length_min'], 
     957            $this->aForm['inputs']['checker_params_length_max'],  
     958            $this->aForm['inputs']['checker_params_preg'] 
     959        ); 
     960    } 
     961} 
     962 
     963class BxBaseStudioFormsFieldInputSet extends BxBaseStudioFormsFieldCustom { 
     964    function __construct($aField = array()) { 
     965        parent::__construct($aField); 
     966 
     967        $this->aForm['inputs']['type']['value'] = 'input_set'; 
     968        $this->aForm['inputs']['type_display']['value'] = 'input_set'; 
     969 
     970        $aFields = array( 
     971            'values' => array( 
     972                'type' => 'value', 
     973                'name' => 'values', 
     974                'caption' => _t('_adm_form_txt_field_values'), 
     975                'value' => '' 
     976            ) 
     977        ); 
     978        $this->aForm['inputs'] = $this->addInArray($this->aForm['inputs'], 'value', $aFields); 
     979 
     980        unset( 
     981            $this->aForm['inputs']['value'] 
     982        ); 
     983    } 
     984} 
     985 
     986class BxBaseStudioFormsFieldCaptcha extends BxBaseStudioFormsFieldText { 
     987    function __construct($aField = array()) { 
     988        parent::__construct($aField); 
     989 
     990        $this->aForm['inputs']['type']['value'] = 'captcha'; 
     991        $this->aForm['inputs']['type_display']['value'] = 'captcha'; 
     992 
     993        unset( 
     994            $this->aForm['inputs']['value'] 
     995        ); 
     996    } 
     997} 
    316998/** @} */ 
  • trunk/studio/templates/base/scripts/BxBaseStudioFormsFields.php

    r15857 r15870  
    2727 
    2828        bx_import('BxTemplStudioFormsField'); 
    29         $sClass = 'BxTemplStudioFormsField' . $sType; 
     29        $sClass = 'BxTemplStudioFormsField' . $this->getClassName($sType); 
    3030        $oClass = new $sClass(); 
    3131 
     
    7777            $this->_echoResultJson($aResult, true); 
    7878        } 
    79  
    8079    } 
    8180 
     
    112111        $this->_echoResultJson($iAffected ? array('grid' => $this->getCode(false), 'blink' => $aIdsAffected) : array('msg' => _t('_adm_from_err_fields_delete'))); 
    113112    } 
     113 
    114114    function getJsObject() { 
    115115        return BX_DOL_STUDIO_FORMS_FIELDS_JS_OBJECT; 
  • trunk/studio/templates/base/scripts/BxBaseStudioFormsForms.php

    r15857 r15870  
    8080                    ), 
    8181                ), 
    82                 'action' => array( 
    83                     'type' => 'text', 
    84                     'name' => 'action', 
    85                     'caption' => _t('_adm_form_txt_forms_action'), 
    86                     'info' => _t('_adm_form_dsc_forms_action'), 
    87                     'value' => $aFormData['action'], 
    88                     'required' => '1', 
    89                     'db' => array ( 
    90                         'pass' => 'Xss', 
    91                     ), 
    92                     'checker' => array ( 
    93                         'func' => 'length', 
    94                         'params' => array(5,100), 
    95                         'error' => _t('_adm_form_err_forms_action'), 
    96                     ), 
    97                 ), 
    98                 'table' => array( 
    99                     'type' => 'text', 
    100                     'name' => 'table', 
    101                     'caption' => _t('_adm_form_txt_forms_table'), 
    102                     'info' => _t('_adm_form_dsc_forms_table'), 
    103                     'value' => $aFormData['table'], 
    104                     'required' => '0', 
    105                     'db' => array ( 
    106                         'pass' => 'Xss', 
    107                     ), 
    108                     'checker' => array ( 
    109                         'func' => '', 
    110                         'params' => array(), 
    111                         'error' => '', 
    112                     ), 
    113                 ), 
    114                 'key' => array( 
    115                     'type' => 'text', 
    116                     'name' => 'key', 
    117                     'caption' => _t('_adm_form_txt_forms_key'), 
    118                     'info' => _t('_adm_form_dsc_forms_key'), 
    119                     'value' => $aFormData['key'], 
    120                     'required' => '0', 
    121                     'db' => array ( 
    122                         'pass' => 'Xss', 
    123                     ), 
    124                     'checker' => array ( 
    125                         'func' => '', 
    126                         'params' => array(), 
    127                         'error' => '', 
    128                     ), 
    129                 ), 
    130                 'uri' => array( 
    131                     'type' => 'text', 
    132                     'name' => 'uri', 
    133                     'caption' => _t('_adm_form_txt_forms_uri'), 
    134                     'info' => _t('_adm_form_dsc_forms_uri'), 
    135                     'value' => $aFormData['uri'], 
    136                     'required' => '0', 
    137                     'db' => array ( 
    138                         'pass' => 'Xss', 
    139                     ), 
    140                     'checker' => array ( 
    141                         'func' => '', 
    142                         'params' => array(), 
    143                         'error' => '', 
    144                     ), 
    145                 ), 
    146                 'uri_title' => array( 
    147                     'type' => 'text', 
    148                     'name' => 'uri_title', 
    149                     'caption' => _t('_adm_form_txt_forms_uri_title'), 
    150                     'info' => _t('_adm_form_dsc_forms_uri_title'), 
    151                     'value' => $aFormData['uri_title'], 
    152                     'required' => '0', 
    153                     'db' => array ( 
    154                         'pass' => 'Xss', 
    155                     ), 
    156                     'checker' => array ( 
    157                         'func' => '', 
    158                         'params' => array(), 
    159                         'error' => '', 
    160                     ), 
    161                 ), 
    162                 'submit_name' => array( 
    163                     'type' => 'text', 
    164                     'name' => 'submit_name', 
    165                     'caption' => _t('_adm_form_txt_forms_uri_submit_name'), 
    166                     'info' => _t('_adm_form_dsc_forms_uri_submit_name'), 
    167                     'value' => $aFormData['submit_name'], 
    168                     'required' => '0', 
    169                     'db' => array ( 
    170                         'pass' => 'Xss', 
    171                     ), 
    172                     'checker' => array ( 
    173                         'func' => '', 
    174                         'params' => array(), 
    175                         'error' => '', 
    176                     ), 
    177                 ), 
    17882                'controls' => array( 
    17983                    'name' => 'controls',  
  • trunk/studio/templates/tmpl_uni/scripts/BxTemplStudioFormsField.php

    r15857 r15870  
    1818} 
    1919 
     20class BxTemplStudioFormsFieldBlockHeader extends BxBaseStudioFormsFieldBlockHeader {  
     21    function __construct($aField = array()) { 
     22        parent::__construct($aField); 
     23    } 
     24} 
     25 
     26class BxTemplStudioFormsFieldValue extends BxBaseStudioFormsFieldValue {  
     27    function __construct($aField = array()) { 
     28        parent::__construct($aField); 
     29    } 
     30} 
     31 
    2032class BxTemplStudioFormsFieldText extends BxBaseStudioFormsFieldText {  
    2133    function __construct($aField = array()) { 
     
    2335    } 
    2436} 
     37 
     38class BxTemplStudioFormsFieldPassword extends BxBaseStudioFormsFieldPassword {  
     39    function __construct($aField = array()) { 
     40        parent::__construct($aField); 
     41    } 
     42} 
     43 
     44class BxTemplStudioFormsFieldTextarea extends BxBaseStudioFormsFieldTextarea {  
     45    function __construct($aField = array()) { 
     46        parent::__construct($aField); 
     47    } 
     48} 
     49 
     50class BxTemplStudioFormsFieldNumber extends BxBaseStudioFormsFieldNumber {  
     51    function __construct($aField = array()) { 
     52        parent::__construct($aField); 
     53    } 
     54} 
     55 
     56class BxTemplStudioFormsFieldDatepicker extends BxBaseStudioFormsFieldDatepicker {  
     57    function __construct($aField = array()) { 
     58        parent::__construct($aField); 
     59    } 
     60} 
     61 
     62class BxTemplStudioFormsFieldDatetime extends BxBaseStudioFormsFieldDatetime {  
     63    function __construct($aField = array()) { 
     64        parent::__construct($aField); 
     65    } 
     66} 
     67 
     68class BxTemplStudioFormsFieldCheckbox extends BxBaseStudioFormsFieldCheckbox {  
     69    function __construct($aField = array()) { 
     70        parent::__construct($aField); 
     71    } 
     72} 
     73 
     74class BxTemplStudioFormsFieldSwitcher extends BxBaseStudioFormsFieldSwitcher {  
     75    function __construct($aField = array()) { 
     76        parent::__construct($aField); 
     77    } 
     78} 
     79 
     80class BxTemplStudioFormsFieldFile extends BxBaseStudioFormsFieldFile {  
     81    function __construct($aField = array()) { 
     82        parent::__construct($aField); 
     83    } 
     84} 
     85 
     86class BxTemplStudioFormsFieldSlider extends BxBaseStudioFormsFieldSlider {  
     87    function __construct($aField = array()) { 
     88        parent::__construct($aField); 
     89    } 
     90} 
     91 
     92class BxTemplStudioFormsFieldDoublerange extends BxBaseStudioFormsFieldDoublerange {  
     93    function __construct($aField = array()) { 
     94        parent::__construct($aField); 
     95    } 
     96} 
     97 
     98class BxTemplStudioFormsFieldHidden extends BxBaseStudioFormsFieldHidden {  
     99    function __construct($aField = array()) { 
     100        parent::__construct($aField); 
     101    } 
     102} 
     103 
     104class BxTemplStudioFormsFieldButton extends BxBaseStudioFormsFieldButton {  
     105    function __construct($aField = array()) { 
     106        parent::__construct($aField); 
     107    } 
     108} 
     109 
     110class BxTemplStudioFormsFieldReset extends BxBaseStudioFormsFieldReset {  
     111    function __construct($aField = array()) { 
     112        parent::__construct($aField); 
     113    } 
     114} 
     115 
     116class BxTemplStudioFormsFieldSubmit extends BxBaseStudioFormsFieldSubmit {  
     117    function __construct($aField = array()) { 
     118        parent::__construct($aField); 
     119    } 
     120} 
     121 
     122class BxTemplStudioFormsFieldImage extends BxBaseStudioFormsFieldImage {  
     123    function __construct($aField = array()) { 
     124        parent::__construct($aField); 
     125    } 
     126} 
     127 
     128class BxTemplStudioFormsFieldSelect extends BxBaseStudioFormsFieldSelect {  
     129    function __construct($aField = array()) { 
     130        parent::__construct($aField); 
     131    } 
     132} 
     133 
     134class BxTemplStudioFormsFieldSelectMultiple extends BxBaseStudioFormsFieldSelectMultiple {  
     135    function __construct($aField = array()) { 
     136        parent::__construct($aField); 
     137    } 
     138} 
     139 
     140class BxTemplStudioFormsFieldCheckboxSet extends BxBaseStudioFormsFieldCheckboxSet {  
     141    function __construct($aField = array()) { 
     142        parent::__construct($aField); 
     143    } 
     144} 
     145 
     146class BxTemplStudioFormsFieldRadioSet extends BxBaseStudioFormsFieldRadioSet {  
     147    function __construct($aField = array()) { 
     148        parent::__construct($aField); 
     149    } 
     150} 
     151 
     152class BxTemplStudioFormsFieldCustom extends BxBaseStudioFormsFieldCustom {  
     153    function __construct($aField = array()) { 
     154        parent::__construct($aField); 
     155    } 
     156} 
     157 
     158class BxTemplStudioFormsFieldInputSet extends BxBaseStudioFormsFieldInputSet {  
     159    function __construct($aField = array()) { 
     160        parent::__construct($aField); 
     161    } 
     162} 
     163 
     164class BxTemplStudioFormsFieldCaptcha extends BxBaseStudioFormsFieldCaptcha {  
     165    function __construct($aField = array()) { 
     166        parent::__construct($aField); 
     167    } 
     168} 
    25169/** @} */ 
Note: See TracChangeset for help on using the changeset viewer.