HomeHelpTrac

Changeset 15902


Ignore:
Timestamp:
01/20/12 03:24:28 (4 months ago)
Author:
Anton Lesnikov
Message:
  1. Minor fixes and improvements.
  2. Forms Builder check list.
  3. visible_for_levels in NAvigation Builder.
Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/install/sql/v70.sql

    r15901 r15902  
    46814681('sys_studio_nav_items', 'link', '_adm_nav_txt_items_link', '23%', '23', '', 5), 
    46824682('sys_studio_nav_items', 'module', '_adm_nav_txt_items_module', '12%', '12', '', 6), 
    4683 ('sys_studio_nav_items', 'hidden_for_levels', '_adm_nav_txt_items_hidden', '10%', '10', '', 7), 
     4683('sys_studio_nav_items', 'visible_for_levels', '_adm_nav_txt_items_visible', '10%', '10', '', 7), 
    46844684('sys_studio_nav_items', 'actions', '', '17%', '', '', 8), 
    46854685('sys_studio_nav_import', 'icon', '_adm_nav_txt_items_icon', '10%', '', '', 1), 
     
    47514751('sys_studio_nav_items', 'single', 'edit', '', 'document--pencil.png', 0, 1), 
    47524752('sys_studio_nav_items', 'single', 'delete', '', 'cross.png', 1, 2), 
    4753 ('sys_studio_nav_items', 'single', 'hide_from', '_adm_nav_btn_items_hidden', '', 0, 3), 
     4753('sys_studio_nav_items', 'single', 'show_to', '_adm_nav_btn_items_visible', '', 0, 3), 
    47544754('sys_studio_nav_import', 'single', 'import', '', 'tables__plus.png', 0, 1), 
    47554755('sys_studio_nav_import', 'bulk', 'done', '_adm_nav_btn_items_done', '', 0, 1), 
  • trunk/modules/boonex/english/install/data/langs/en.xml

    r15896 r15902  
    21952195    <string name="_adm_nav_txt_items_link"><![CDATA[URL]]></string> 
    21962196    <string name="_adm_nav_txt_items_module"><![CDATA[Module]]></string> 
    2197     <string name="_adm_nav_txt_items_hidden"><![CDATA[Hide From]]></string> 
    2198     <string name="_adm_nav_btn_items_hidden"><![CDATA[Hide From]]></string> 
     2197    <string name="_adm_nav_txt_items_visible"><![CDATA[Visibile For]]></string> 
     2198    <string name="_adm_nav_btn_items_visible"><![CDATA[Visibile For]]></string> 
    21992199    <string name="_adm_nav_txt_items_n_user_levels"><![CDATA[{0} User Levels]]></string> 
    22002200    <string name="_adm_nav_txt_items_create_popup"><![CDATA[Add New Item]]></string> 
     
    22262226    <string name="_adm_nav_btn_items_done"><![CDATA[Done]]></string> 
    22272227    <string name="_adm_nav_err_items_import"><![CDATA[Cannot import item(s)]]></string> 
    2228     <string name="_adm_nav_txt_items_hide_from_popup"><![CDATA[Hide From]]></string> 
    2229     <string name="_adm_nav_err_items_hide_from"><![CDATA[Cannot update item]]></string> 
     2228    <string name="_adm_nav_txt_items_show_to_popup"><![CDATA[Show To]]></string> 
     2229    <string name="_adm_nav_err_items_show_to"><![CDATA[Cannot update item]]></string> 
    22302230    <string name="_adm_lmi_cpt_forms"><![CDATA[Forms]]></string> 
    22312231    <string name="_adm_lmi_cpt_displays"><![CDATA[Displays]]></string> 
     
    23692369    <string name="_adm_form_txt_field_checker_params_preg"><![CDATA[Expression]]></string> 
    23702370    <string name="_adm_form_err_field_checker_params_preg"><![CDATA[Enter valid regular expression]]></string> 
     2371    <string name="_adm_form_txt_field_checker_error"><![CDATA[Error message]]></string> 
     2372    <string name="_adm_form_err_field_checker_error"><![CDATA[You need to enter error message]]></string> 
    23712373    <string name="_adm_form_txt_pre_lists_no"><![CDATA[No]]></string> 
    23722374    <string name="_adm_form_txt_pre_lists_yes"><![CDATA[Yes]]></string> 
     
    24272429    <string name="_adm_form_btn_pre_values_save"><![CDATA[Save]]></string> 
    24282430    <string name="_adm_form_btn_pre_values_cancel"><![CDATA[Cancel]]></string> 
    2429     <string name=""><![CDATA[]]></string> 
    2430     <string name=""><![CDATA[]]></string> 
     2431     
    24312432    <string name=""><![CDATA[]]></string> 
    24322433    <string name=""><![CDATA[]]></string> 
  • trunk/studio/classes/BxDolStudioFormsQuery.php

    r15896 r15902  
    7474                $aMethod['name'] = 'getRow'; 
    7575                $sWhereClause = $this->prepare(" AND `td`.`id`=? ", $aParams['value']); 
     76                $sLimitClause = "LIMIT 1"; 
    7677                break; 
    7778            case 'by_name': 
    7879                $aMethod['name'] = 'getRow'; 
    7980                $sWhereClause = $this->prepare(" AND `td`.`display_name`=? ", $aParams['value']); 
     81                $sLimitClause = "LIMIT 1"; 
    8082                break; 
    8183            case 'by_object': 
     
    132134                $sWhereClause = $this->prepare(" AND `tdi`.`id`=? ", $aParams['value']); 
    133135                break; 
    134             case 'by_id_full': 
     136            case 'by_id_object': 
    135137                $aMethod['name'] = 'getRow'; 
    136138                $sSelectClause = "`ti`.*, `tdi`.`id` AS `di_id`, `tdi`.`display_name` AS `display_name`"; 
    137                 $sWhereClause = $this->prepare(" AND `tdi`.`id`=? ", $aParams['value']); 
     139                $sWhereClause = $this->prepare(" AND `tdi`.`id`=? AND `ti`.`object`=? ", $aParams['id'], $aParams['object']); 
    138140                break; 
    139141            case 'by_display_name': 
  • trunk/studio/classes/BxDolStudioGrid.php

    r15857 r15902  
    2626        $this->sParamsDivider = BX_DOL_STUDIO_GRID_PARAMS_DIVIDER; 
    2727    } 
     28 
     29    protected function _isVisibleGrid ($a) { 
     30        return isAdmin(); 
     31    } 
     32 
    2833    protected function getSystemName($sValue) { 
    2934        return str_replace(' ', '_', strtolower($sValue)); 
    3035    } 
    31     function getClassName($sValue) { 
     36 
     37    protected function getClassName($sValue) { 
    3238        return str_replace(' ', '', ucwords(str_replace('_', ' ', $sValue))); 
    3339    } 
  • trunk/studio/classes/BxDolStudioNavigationQuery.php

    r15820 r15902  
    161161                `tmi`.`target` AS `target`, 
    162162                `tmi`.`icon` AS `icon`, 
    163                 `tmi`.`hidden_for_levels` AS `hidden_for_levels`, 
     163                `tmi`.`visible_for_levels` AS `visible_for_levels`, 
    164164                `tmi`.`active` AS `active`, 
    165165                `tmi`.`order` AS `order`" . $sSelectClause . " 
  • trunk/studio/js/forms_fields.js

    r15870 r15902  
    4646    var sId = 'bx-form-element-checker_func'; 
    4747    if($(oCheckbox).attr('checked') != undefined) 
    48         $('#' + sId).show(); 
     48        $('#' + sId + ',#bx-form-element-checker_error').show(); 
    4949    else { 
    5050        $('#' + 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(''); 
     51        $('#bx-form-element-checker_params_length_min, #bx-form-element-checker_params_length_max, #bx-form-element-checker_params_preg, #bx-form-element-checker_error').hide().find('input').val(''); 
    5252    } 
    5353}; 
  • trunk/studio/templates/base/scripts/BxBaseStudioFormsField.php

    r15896 r15902  
    5252                        array('key' => 'number', 'value' => _t('_adm_form_txt_field_type_number')), 
    5353                        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')), 
    5654                        array('key' => 'password', 'value' => _t('_adm_form_txt_field_type_password')), 
    5755                        array('key' => 'slider', 'value' => _t('_adm_form_txt_field_type_slider')), 
     
    6765                        array('key' => 'checkbox_set', 'value' => _t('_adm_form_txt_field_type_checkbox_set')), 
    6866                        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')), 
    7167                        array('key' => 'value', 'value' => _t('_adm_form_txt_field_type_value')), 
    72                         array('key' => 'captcha', 'value' => _t('_adm_form_txt_field_type_captcha')), 
     68                        array('key' => 'captcha', 'value' => _t('_adm_form_txt_field_type_captcha')) 
    7369                    ), 
    7470                    'required' => '1', 
     
    114110        $aForm = $this->getFormAdd($sAction, $sObject, $sDisplay); 
    115111        $oForm = new BxTemplStudioFormView($aForm); 
     112 
     113        if($oForm->isSubmitted() && isset($oForm->aInputs['required'])) 
     114            $this->updateCheckerFields($oForm); 
     115 
    116116        $oForm->initChecker(); 
    117  
    118117        if($oForm->isSubmittedAndValid()) { 
    119118            $sName = $oForm->getCleanValue('name'); 
    120             BxDolForm::setSubmittedValue('name', $this->getSystemName($sName), $aForm['form_attrs']['method']); 
    121  
     119            BxDolForm::setSubmittedValue('name', $this->getSystemName($sName), $oForm->aFormAttrs['method']); 
     120 
     121            $bCaption = false; 
    122122            $sTitleKey = $sTitleValue = ''; 
    123             if(($bCaption = isset($aForm['inputs']['caption'])) === true) { 
     123            if(($bCaption = isset($oForm->aInputs['caption'])) === true) { 
    124124                $sTitleValue = $oForm->getCleanValue('caption'); 
    125125                $sTitleKey = '_sys_form_txt_caption_' . $this->getSystemName($sTitleValue); 
    126                 BxDolForm::setSubmittedValue('caption', $sTitleKey, $aForm['form_attrs']['method']); 
     126                BxDolForm::setSubmittedValue('caption', $sTitleKey, $oForm->aFormAttrs['method']); 
    127127            } 
    128128 
    129             if(isset($aForm['inputs']['values'])) { 
     129            if(isset($oForm->aInputs['values'])) { 
    130130                $sValues = $oForm->getCleanValue('values'); 
    131131                if(is_string($sValues) && strpos($sValues, BX_DOL_STUDIO_FIELD_PRE_LIST_PREFIX) === false) 
    132                     BxDolForm::setSubmittedValue('values', serialize(explode("\n", $sValues)), $aForm['form_attrs']['method']); 
     132                    BxDolForm::setSubmittedValue('values', serialize(explode("\n", $sValues)), $oForm->aFormAttrs['method']); 
    133133            } 
    134134 
    135135            //--- Checker related fields 
    136136            $aCheckerParams = array(); 
    137             if(isset($aForm['inputs']['checker_params_length_min'], $aForm['inputs']['checker_params_length_max'])) { 
     137            if(isset($oForm->aInputs['checker_params_length_min'], $oForm->aInputs['checker_params_length_max'])) { 
    138138                $aCheckerParams['min'] = $oForm->getCleanValue('checker_params_length_min'); 
    139139                $aCheckerParams['max'] = $oForm->getCleanValue('checker_params_length_max'); 
    140140            } 
    141             else if(isset($aForm['inputs']['checker_params_preg'])) 
     141            if(isset($oForm->aInputs['checker_params_preg'])) 
    142142                $aCheckerParams['preg'] = $oForm->getCleanValue('checker_params_preg'); 
    143143 
    144144            unset($oForm->aInputs['checker_params_length_min'], $oForm->aInputs['checker_params_length_max'], $oForm->aInputs['checker_params_preg']); 
    145             BxDolForm::setSubmittedValue('checker_params', serialize($aCheckerParams), $aForm['form_attrs']['method']); 
    146  
     145            BxDolForm::setSubmittedValue('checker_params', serialize($aCheckerParams), $oForm->aFormAttrs['method']); 
     146 
     147            $bCheckError = false; 
     148            $sCheckerErrorValue = ""; 
     149            if(($bCheckError = isset($oForm->aInputs['checker_error'])) === true) { 
     150                $sInputObject = $oForm->getCleanValue('object'); 
     151                $sInputName = $oForm->getCleanValue('name'); 
     152                $sCheckerErrorKey = '_adm_form_txt_field_checker_error_' . $this->getSystemName($sInputObject . ' ' . $sInputName); 
     153                $sCheckerErrorValue = $oForm->getCleanValue('checker_error'); 
     154 
     155                BxDolForm::setSubmittedValue('checker_error', $sCheckerErrorKey, $oForm->aFormAttrs['method']); 
     156            } 
     157             
    147158            //--- Attrs related fields 
    148159            $aAttrs = array(); 
    149             if(isset($aForm['inputs']['attrs_min'], $aForm['inputs']['attrs_max'], $aForm['inputs']['attrs_step'])) { 
     160            if(isset($oForm->aInputs['attrs_min'], $oForm->aInputs['attrs_max'], $oForm->aInputs['attrs_step'])) { 
    150161                $aAttrs['min'] = $oForm->getCleanValue('attrs_min'); 
    151162                $aAttrs['max'] = $oForm->getCleanValue('attrs_max'); 
    152163                $aAttrs['step'] = $oForm->getCleanValue('attrs_step'); 
    153164            } 
    154             else if(isset($aForm['inputs']['attrs_src'])) 
     165            else if(isset($oForm->aInputs['attrs_src'])) 
    155166                $aAttrs['src'] = $oForm->getCleanValue('attrs_src'); 
    156167 
    157168            unset($oForm->aInputs['attrs_min'], $oForm->aInputs['attrs_max'], $oForm->aInputs['attrs_step'], $oForm->aInputs['attrs_src']); 
    158             BxDolForm::setSubmittedValue('attrs', serialize($aAttrs), $aForm['form_attrs']['method']); 
     169            BxDolForm::setSubmittedValue('attrs', serialize($aAttrs), $oForm->aFormAttrs['method']); 
    159170 
    160171            if(($iId = $oForm->insert()) === false)  
    161172                return false; 
    162173 
     174            $oLanguages = BxDolStudioLanguagesUtils::getInstance(); 
    163175            if($bCaption) 
    164                 $oLanguages = BxDolStudioLanguagesUtils::getInstance()->addLanguageString($sTitleKey, $sTitleValue); 
     176                $oLanguages->addLanguageString($sTitleKey, $sTitleValue); 
     177            if($bCheckError) 
     178                $oLanguages->addLanguageString($sCheckerErrorKey, $sCheckerErrorValue); 
    165179 
    166180            return true; 
     
    178192        $aForm = $this->getFormEdit($sAction, $sObject, $sDisplay); 
    179193        $oForm = new BxTemplStudioFormView($aForm); 
     194 
     195        if($oForm->isSubmitted() && isset($oForm->aInputs['required'])) 
     196            $this->updateCheckerFields($oForm); 
     197 
    180198        $oForm->initChecker(); 
    181  
    182199        if($oForm->isSubmittedAndValid()) { 
    183200            $sTitleValue = ''; 
    184             if(($bCaption = isset($aForm['inputs']['caption'])) === true) { 
     201            if(($bCaption = isset($oForm->aInputs['caption'])) === true) { 
    185202                $sTitleValue = $oForm->getCleanValue('caption'); 
    186                 BxDolForm::setSubmittedValue('caption', $this->aField['caption'], $aForm['form_attrs']['method']); 
     203                BxDolForm::setSubmittedValue('caption', $this->aField['caption'], $oForm->aFormAttrs['method']); 
    187204            } 
    188205 
    189             if(isset($aForm['inputs']['values']['db'])) { 
     206            if(isset($oForm->aInputs['values']['db'])) { 
    190207                $sValues = $oForm->getCleanValue('values'); 
    191208                if(is_string($sValues) && strpos($sValues, BX_DOL_STUDIO_FIELD_PRE_LIST_PREFIX) === false) 
    192                     BxDolForm::setSubmittedValue('values', serialize(explode("\n", $sValues)), $aForm['form_attrs']['method']); 
     209                    BxDolForm::setSubmittedValue('values', serialize(explode("\n", $sValues)), $oForm->aFormAttrs['method']); 
    193210            } 
    194211 
    195212            //--- Checker related fields 
    196213            $aCheckerParams = array(); 
    197             if(isset($aForm['inputs']['checker_params_length_min'], $aForm['inputs']['checker_params_length_max'])) { 
     214            if(isset($oForm->aInputs['checker_params_length_min'], $oForm->aInputs['checker_params_length_max'])) { 
    198215                $aCheckerParams['min'] = $oForm->getCleanValue('checker_params_length_min'); 
    199216                $aCheckerParams['max'] = $oForm->getCleanValue('checker_params_length_max'); 
    200217            } 
    201             else if(isset($aForm['inputs']['checker_params_preg'])) 
     218            if(isset($oForm->aInputs['checker_params_preg'])) 
    202219                $aCheckerParams['preg'] = $oForm->getCleanValue('checker_params_preg'); 
    203220 
    204221            unset($oForm->aInputs['checker_params_length_min'], $oForm->aInputs['checker_params_length_max'], $oForm->aInputs['checker_params_preg']); 
    205             BxDolForm::setSubmittedValue('checker_params', serialize($aCheckerParams), $aForm['form_attrs']['method']); 
     222            BxDolForm::setSubmittedValue('checker_params', serialize($aCheckerParams), $oForm->aFormAttrs['method']); 
     223 
     224            $bCheckError = false; 
     225            $sCheckerErrorValue = ""; 
     226            if(($bCheckError = isset($oForm->aInputs['checker_error'])) === true) { 
     227                $sInputObject = $oForm->getCleanValue('object'); 
     228                $sInputName = $oForm->getCleanValue('name'); 
     229                $sCheckerErrorKey = !empty($this->aField['checker_error']) ? $this->aField['checker_error'] : '_adm_form_txt_field_checker_error' . $this->getSystemName($sInputObject . ' ' . $sInputName); 
     230                $sCheckerErrorValue = $oForm->getCleanValue('checker_error'); 
     231 
     232                BxDolForm::setSubmittedValue('checker_error', $sCheckerErrorKey, $oForm->aFormAttrs['method']); 
     233            } 
    206234 
    207235            //--- Attrs related fields 
    208236            $aAttrs = array(); 
    209             if(isset($aForm['inputs']['attrs_min'], $aForm['inputs']['attrs_max'], $aForm['inputs']['attrs_step'])) { 
     237            if(isset($oForm->aInputs['attrs_min'], $oForm->aInputs['attrs_max'], $oForm->aInputs['attrs_step'])) { 
    210238                $aAttrs['min'] = $oForm->getCleanValue('attrs_min'); 
    211239                $aAttrs['max'] = $oForm->getCleanValue('attrs_max'); 
    212240                $aAttrs['step'] = $oForm->getCleanValue('attrs_step'); 
    213241            } 
    214             else if(isset($aForm['inputs']['attrs_src'])) 
     242            else if(isset($oForm->aInputs['attrs_src'])) 
    215243                $aAttrs['src'] = $oForm->getCleanValue('attrs_src'); 
    216244 
    217245            unset($oForm->aInputs['attrs_min'], $oForm->aInputs['attrs_max'], $oForm->aInputs['attrs_step'], $oForm->aInputs['attrs_src']); 
    218             BxDolForm::setSubmittedValue('attrs', serialize($aAttrs), $aForm['form_attrs']['method']); 
     246            BxDolForm::setSubmittedValue('attrs', serialize($aAttrs), $oForm->aFormAttrs['method']); 
    219247 
    220248            if($oForm->update((int)$this->aField['id']) === false)  
    221249                return false; 
    222250 
     251            $oLanguages = BxDolStudioLanguagesUtils::getInstance(); 
     252 
    223253            if($bCaption) 
    224                 $oLanguages = BxDolStudioLanguagesUtils::getInstance()->updateLanguageString($this->aField['caption'], $sTitleValue); 
     254                $oLanguages->updateLanguageString($this->aField['caption'], $sTitleValue); 
     255            if($bCheckError) 
     256                $oLanguages->updateLanguageString($sCheckerErrorKey, $sCheckerErrorValue); 
    225257 
    226258            return true; 
     
    289321                        $aForm['inputs'][$sKey]['checked'] = (int)$this->aField[$sKey]; 
    290322                        if($aForm['inputs'][$sKey]['checked'] == 1 && isset($aForm['inputs']['checker_func'])) 
    291                             unset($aForm['inputs']['checker_func']['tr_attrs']['style']); 
     323                            unset($aForm['inputs']['checker_func']['tr_attrs']['style'], $aForm['inputs']['checker_error']['tr_attrs']['style']); 
    292324                        break; 
    293325                    case 'checker_func': 
     
    314346                        $aForm['inputs'][$sKey]['value'] = isset($aParams['preg']) ? $aParams['preg'] : ''; 
    315347                        break; 
     348                    case 'checker_error': 
     349                        $aForm['inputs'][$sKey]['value'] = _t($this->aField[$sKey]); 
     350                        break; 
    316351                    case 'attrs_min': 
    317352                        $aParams = unserialize($this->aField['attrs']); 
     
    334369                } 
    335370 
     371        if(isset($aForm['inputs']['name'])) 
     372            $aForm['inputs']['name']['type'] = 'hidden'; 
     373         
    336374        if(isset($aForm['inputs']['caption'])) 
    337375            $aForm['inputs']['caption']['value'] = _t($aForm['inputs']['caption']['value']); 
     
    339377        $aForm['inputs']['controls'][0]['value'] = _t('_adm_form_btn_field_save'); 
    340378 
    341         unset($aForm['inputs']['object'], $aForm['inputs']['module'], $aForm['inputs']['type'], $aForm['inputs']['name']); 
     379        //unset($aForm['inputs']['object'], $aForm['inputs']['module'], $aForm['inputs']['type'], $aForm['inputs']['name']); 
    342380        return $aForm; 
    343381    } 
     
    379417                    array('key' => 'no_spam', 'value' => _t('_adm_form_txt_field_checker_no_spam')) 
    380418                ), 
    381                 'required' => '0', 
     419                'required' => '1', 
    382420                'attrs' => array( 
    383421                    'id' => 'bx-form-field-type', 
     
    391429                ), 
    392430                'checker' => array ( 
    393                     'func' => '', 
     431                    'func' => 'avail', 
    394432                    'params' => array(), 
    395                     'error' => '_adm_form_err_field_checker_func', 
     433                    'error' => _t('_adm_form_err_field_checker_func'), 
    396434                ), 
    397435            ), 
     
    410448                'info' => '', 
    411449                'value' => '', 
    412                 'required' => '0', 
     450                'required' => '1', 
    413451                'tr_attrs' => array( 
    414452                    'style' => 'display:none' 
     
    416454                'db' => array ( 
    417455                    'pass' => 'Int', 
    418                 ) 
     456                ), 
     457                'checker' => array ( 
     458                    'func' => 'preg', 
     459                    'params' => array('/^[0-9]+$/'), 
     460                    'error' => _t('_adm_form_err_field_checker_params_length_min'), 
     461                ), 
    419462            ), 
    420463            'checker_params_length_max' => array( 
     
    424467                'info' => '', 
    425468                'value' => '', 
    426                 'required' => '0', 
     469                'required' => '1', 
    427470                'tr_attrs' => array( 
    428471                    'style' => 'display:none' 
     
    430473                'db' => array ( 
    431474                    'pass' => 'Int', 
    432                 ) 
     475                ), 
     476                'checker' => array ( 
     477                    'func' => 'preg', 
     478                    'params' => array('/^[0-9]+$/'), 
     479                    'error' => _t('_adm_form_err_field_checker_params_length_max'), 
     480                ), 
    433481            ), 
    434482            'checker_params_preg' => array( 
     
    438486                'info' => '', 
    439487                'value' => '', 
    440                 'required' => '0', 
     488                'required' => '1', 
    441489                'tr_attrs' => array( 
    442490                    'style' => 'display:none' 
     
    444492                'db' => array ( 
    445493                    'pass' => 'Xss', 
    446                 ) 
    447             ), 
    448          
    449         ); 
     494                ), 
     495                'checker' => array ( 
     496                    'func' => 'avail', 
     497                    'params' => array(), 
     498                    'error' => _t('_adm_form_err_field_checker_params_preg'), 
     499                ), 
     500            ), 
     501            'checker_error' => array( 
     502                'type' => 'text', 
     503                'name' => 'checker_error', 
     504                'caption' => _t('_adm_form_txt_field_checker_error'), 
     505                'info' => '', 
     506                'value' => '', 
     507                'required' => '1', 
     508                'tr_attrs' => array( 
     509                    'style' => 'display:none' 
     510                ), 
     511                'db' => array ( 
     512                    'pass' => 'Xss', 
     513                ), 
     514                'checker' => array ( 
     515                    'func' => 'avail', 
     516                    'params' => array(), 
     517                    'error' => _t('_adm_form_err_field_checker_error'), 
     518                ), 
     519            ), 
     520        ); 
     521    } 
     522 
     523    protected function updateCheckerFields(&$oForm) { 
     524            if((int)$oForm->getCleanValue('required') == 0) 
     525                $this->unmarkCheckerFieldsRequired($oForm); 
     526            else { 
     527                unset($oForm->aInputs['checker_func']['tr_attrs']['style'], $oForm->aInputs['checker_error']['tr_attrs']['style']); 
     528                switch($oForm->getCleanValue('checker_func')) { 
     529                    case 'length': 
     530                        unset($oForm->aInputs['checker_params_length_min']['tr_attrs']['style'], $oForm->aInputs['checker_params_length_max']['tr_attrs']['style']); 
     531                        $this->unmarkCheckerFieldsRequired($oForm, 'preg'); 
     532                        break; 
     533                    case 'preg': 
     534                        unset($oForm->aInputs['checker_params_preg']['tr_attrs']['style']); 
     535                        $this->unmarkCheckerFieldsRequired($oForm, 'length'); 
     536                        break; 
     537                    default: 
     538                        $this->unmarkCheckerFieldsRequired($oForm, 'params'); 
     539                } 
     540            } 
     541    } 
     542 
     543    protected function unmarkCheckerFieldsRequired(&$oForm, $sCheckerFunc = 'all') { 
     544        switch($sCheckerFunc) { 
     545            case 'length': 
     546                unset($oForm->aInputs['checker_params_length_min']['checker'], $oForm->aInputs['checker_params_length_max']['checker']); 
     547                break; 
     548            case 'preg': 
     549                unset($oForm->aInputs['checker_params_preg']['checker']); 
     550                break; 
     551            case 'params': 
     552                unset( 
     553                    $oForm->aInputs['checker_params_length_min']['checker'], 
     554                    $oForm->aInputs['checker_params_length_max']['checker'], 
     555                    $oForm->aInputs['checker_params_preg']['checker'] 
     556                ); 
     557                break; 
     558            case 'all': 
     559                unset( 
     560                    $oForm->aInputs['checker_func']['checker'],  
     561                    $oForm->aInputs['checker_params_length_min']['checker'], 
     562                    $oForm->aInputs['checker_params_length_max']['checker'], 
     563                    $oForm->aInputs['checker_params_preg']['checker'], 
     564                    $oForm->aInputs['checker_error']['checker'] 
     565                ); 
     566        } 
    450567    } 
    451568} 
     
    832949        unset( 
    833950            $this->aForm['inputs']['caption'],  
    834             $this->aForm['inputs']['info'] 
     951            $this->aForm['inputs']['info'],  
     952            $this->aForm['inputs']['required'], 
     953            $this->aForm['inputs']['checker_func'],  
     954            $this->aForm['inputs']['checker_params'], 
     955            $this->aForm['inputs']['checker_params_length_min'], 
     956            $this->aForm['inputs']['checker_params_length_max'],  
     957            $this->aForm['inputs']['checker_params_preg'], 
     958            $this->aForm['inputs']['checker_error'] 
    835959        ); 
    836960    } 
     
    852976            $this->aForm['inputs']['checker_params_length_min'], 
    853977            $this->aForm['inputs']['checker_params_length_max'],  
    854             $this->aForm['inputs']['checker_params_preg'] 
     978            $this->aForm['inputs']['checker_params_preg'], 
     979            $this->aForm['inputs']['checker_error'] 
    855980        ); 
    856981    } 
     
    9821107            $this->aForm['inputs']['checker_params_length_min'], 
    9831108            $this->aForm['inputs']['checker_params_length_max'],  
    984             $this->aForm['inputs']['checker_params_preg'] 
     1109            $this->aForm['inputs']['checker_params_preg'], 
     1110            $this->aForm['inputs']['checker_error'] 
    9851111        ); 
    9861112    } 
     
    10171143        $this->aForm['inputs']['type_display']['value'] = 'captcha'; 
    10181144 
     1145        $this->aForm['inputs']['required'] = array( 
     1146            'type' => 'hidden', 
     1147            'name' => 'required', 
     1148            'value' => '1', 
     1149            'db' => array ( 
     1150                'pass' => 'Int', 
     1151            ) 
     1152        ); 
     1153 
     1154        $this->aForm['inputs']['checker_func']['value'] = 'captcha'; 
     1155        $this->aForm['inputs']['checker_func']['values'] = array( 
     1156            array('key' => '', 'value' => _t('_adm_form_txt_field_checker_empty')), 
     1157            array('key' => 'captcha', 'value' => _t('_adm_form_txt_field_checker_captcha')) 
     1158        ); 
     1159 
    10191160        unset( 
    1020             $this->aForm['inputs']['value'] 
     1161            $this->aForm['inputs']['value'], 
     1162            $this->aForm['inputs']['checker_func']['tr_attrs']['style'], 
     1163            $this->aForm['inputs']['checker_error']['tr_attrs']['style'] 
    10211164        ); 
    10221165    } 
  • trunk/studio/templates/base/scripts/BxBaseStudioFormsFields.php

    r15896 r15902  
    5555        $iId = $aIds[0]; 
    5656 
     57        $aDisplay = array(); 
     58        $this->oDb->getDisplays(array('type' => 'by_name', 'value' => $this->sDisplay), $aDisplay, false); 
     59        if(!is_array($aDisplay) || empty($aDisplay)){ 
     60            $this->_echoResultJson(array()); 
     61            exit; 
     62        } 
     63 
    5764        $aField = array(); 
    58         $iField = $this->oDb->getFields(array('type' => 'by_id_full', 'value' => $iId), $aField); 
    59         if($iField != 1 || empty($aField)){ 
     65        $this->oDb->getFields(array('type' => 'by_id_object', 'id' => $iId, 'object' => $aDisplay['object']), $aField, false); 
     66        if(!is_array($aField) || empty($aField)) { 
    6067            $this->_echoResultJson(array()); 
    6168            exit; 
     
    8996        } 
    9097 
     98        $aDisplay = array(); 
     99        $this->oDb->getDisplays(array('type' => 'by_name', 'value' => $this->sDisplay), $aDisplay, false); 
     100        if(!is_array($aDisplay) || empty($aDisplay)){ 
     101            $this->_echoResultJson(array()); 
     102            exit; 
     103        } 
     104         
    91105        $aIdsAffected = array (); 
    92106        foreach($aIds as $iId) { 
    93107            $aField = array(); 
    94             $iField = $this->oDb->getFields(array('type' => 'by_id_full', 'value' => (int)$iId), $aField); 
     108            $iField = $this->oDb->getFields(array('type' => 'by_id_object', 'id' => (int)$iId, 'object' => $aDisplay['object']), $aField); 
    95109            if($iField != 1 || empty($aField)) 
    96110                continue; 
     
    103117 
    104118            bx_import('BxDolStudioLanguagesUtils'); 
    105             BxDolStudioLanguagesUtils::getInstance()->deleteLanguageString($aField['caption']); 
     119            $oLanguage = BxDolStudioLanguagesUtils::getInstance(); 
     120            if(!empty($aField['caption'])) 
     121                $oLanguage->deleteLanguageString($aField['caption']); 
     122            if(!empty($aField['checker_error'])) 
     123                $oLanguage->deleteLanguageString($aField['checker_error']); 
    106124 
    107125            $aIdsAffected[] = $iId; 
  • trunk/studio/templates/base/scripts/BxBaseStudioNavigationItems.php

    r15820 r15902  
    1212bx_import('BxDolStudioNavigationItems'); 
    1313 
    14 class BxBaseStudioNavigationItems extends BxDolStudioNavigationItems {  
     14class BxBaseStudioNavigationItems extends BxDolStudioNavigationItems { 
     15    private $aMemberships; 
     16 
    1517    function __construct($aOptions, $oTemplate = false) { 
    1618        parent::__construct($aOptions, $oTemplate); 
     19 
     20        bx_import('BxDolAcl'); 
     21        $this->aMemberships = BxDolAcl::getInstance()->getMemberships(); 
    1722    } 
    1823 
     
    396401    } 
    397402 
    398     public function performActionHideFrom() { 
    399         $sAction = 'hide_from'; 
     403    public function performActionShowTo() { 
     404        $sAction = 'show_to'; 
    400405 
    401406        $aIds = bx_get('ids'); 
     
    443448                    ), 
    444449                ), 
    445                 'hidden_for_levels' => array( 
     450                'visible_for_levels' => array( 
    446451                    'type' => 'checkbox_set', 
    447                     'name' => 'hidden_for_levels', 
     452                    'name' => 'visible_for_levels', 
    448453                    'value' => '', 
    449454                    'values' => array(), 
     
    481486        $aLevels = BxDolAcl::getInstance()->getMemberships(); 
    482487        foreach($aLevels as $iKey => $sValue) { 
    483             if(((int)$aItem['hidden_for_levels'] & pow(2, (int)$iKey - 1)) != 0) 
    484                 $aForm['inputs']['hidden_for_levels']['value'][] = $iKey; 
     488            if(((int)$aItem['visible_for_levels'] & pow(2, (int)$iKey - 1)) != 0) 
     489                $aForm['inputs']['visible_for_levels']['value'][] = $iKey; 
    485490             
    486             $aForm['inputs']['hidden_for_levels']['values'][$iKey] = _t($sValue); 
     491            $aForm['inputs']['visible_for_levels']['values'][$iKey] = _t($sValue); 
    487492        } 
    488493  
     
    493498        if($oForm->isSubmittedAndValid()) { 
    494499            $iHideFrom = 0; 
    495             $aLevelIds = $oForm->getCleanValue('hidden_for_levels'); 
     500            $aLevelIds = $oForm->getCleanValue('visible_for_levels'); 
    496501            foreach($aLevelIds as $iLevelId) 
    497502                $iHideFrom += pow(2, $iLevelId - 1); 
    498             BxDolForm::setSubmittedValue('hidden_for_levels', $iHideFrom, $aForm['form_attrs']['method']); 
     503            BxDolForm::setSubmittedValue('visible_for_levels', $iHideFrom, $aForm['form_attrs']['method']); 
    499504 
    500505            if($oForm->update($iId) !== false) 
    501506                $aRes = array('grid' => $this->getCode(false), 'blink' => $iId); 
    502507            else 
    503                 $aRes = array('msg' => _t('_adm_nav_err_items_hide_from')); 
     508                $aRes = array('msg' => _t('_adm_nav_err_items_show_to')); 
    504509 
    505510            $this->_echoResultJson($aRes, true); 
     
    507512        else { 
    508513            bx_import('BxTemplFunctions'); 
    509             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-nav-item-hide-from-popup', _t('_adm_nav_txt_items_hide_from_popup'), $this->_oTemplate->parseHtmlByName('nav_add_item.html', array( 
     514            $sContent = BxTemplFunctions::getInstance()->popupBox('adm-nav-item-hide-from-popup', _t('_adm_nav_txt_items_show_to_popup'), $this->_oTemplate->parseHtmlByName('nav_add_item.html', array( 
    510515                'form_id' => $aForm['form_attrs']['id'], 
    511516                'form' => $oForm->getCode(), 
     
    566571    } 
    567572 
    568     protected function _getCellHiddenForLevels ($mixedValue, $sKey, $aField, $aRow) { 
     573    protected function _getCellVisibleForLevels ($mixedValue, $sKey, $aField, $aRow) { 
     574        $iIndex = 1; 
    569575        $iCount = 0; 
    570         $mixedValue = (int)$aRow['hidden_for_levels']; 
     576        $mixedValue = (int)$aRow['visible_for_levels']; 
    571577        if(($mixedValue = (int)$mixedValue) != 0) { 
    572578            do { 
    573                 $iCount += $mixedValue & 1; 
     579                if(array_key_exists($iIndex++, $this->aMemberships)) 
     580                    $iCount += $mixedValue & 1; 
    574581            } while(($mixedValue = $mixedValue >> 1) != 0); 
    575582        } 
     
    579586            'title' => _t('_adm_nav_txt_manage_items'), 
    580587            'bx_repeat:attrs' => array( 
    581                 array('key' => 'bx_grid_action_single', 'value' => 'hide_from'), 
     588                array('key' => 'bx_grid_action_single', 'value' => 'show_to'), 
    582589                array('key' => 'bx_grid_action_data', 'value' => $aRow['id']) 
    583590            ), 
     
    609616    } 
    610617 
    611     protected function _getActionHideFrom ($sType, $sKey, $a, $isSmall = false, $isDisabled = false, $aRow = array()) { 
     618    protected function _getActionShowTo ($sType, $sKey, $a, $isSmall = false, $isDisabled = false, $aRow = array()) { 
    612619        return ''; 
    613620    } 
Note: See TracChangeset for help on using the changeset viewer.