Changeset 15896
- Timestamp:
- 01/18/12 23:37:32 (4 months ago)
- Location:
- trunk
- Files:
-
- 7 edited
-
modules/boonex/english/install/data/langs/en.xml (modified) (3 diffs)
-
studio/classes/BxDolStudioFormsFields.php (modified) (1 diff)
-
studio/classes/BxDolStudioFormsPreValues.php (modified) (1 diff)
-
studio/classes/BxDolStudioFormsQuery.php (modified) (2 diffs)
-
studio/templates/base/scripts/BxBaseStudioFormsField.php (modified) (8 diffs)
-
studio/templates/base/scripts/BxBaseStudioFormsFields.php (modified) (1 diff)
-
studio/templates/base/scripts/BxBaseStudioFormsPreValues.php (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/modules/boonex/english/install/data/langs/en.xml
r15888 r15896 2328 2328 <string name="_adm_form_dsc_field_value"><![CDATA[Enter default value (optional)]]></string> 2329 2329 <string name="_adm_form_txt_field_values"><![CDATA[Values]]></string> 2330 <string name="_adm_form_txt_field_manage_values"><![CDATA[Manage values]]></string> 2330 2331 <string name="_adm_form_dsc_field_values"><![CDATA[Enter values each one in new line]]></string> 2331 2332 <string name="_adm_form_txt_field_checked"><![CDATA[Checked]]></string> … … 2368 2369 <string name="_adm_form_txt_field_checker_params_preg"><![CDATA[Expression]]></string> 2369 2370 <string name="_adm_form_err_field_checker_params_preg"><![CDATA[Enter valid regular expression]]></string> 2370 2371 2371 <string name="_adm_form_txt_pre_lists_no"><![CDATA[No]]></string> 2372 2372 <string name="_adm_form_txt_pre_lists_yes"><![CDATA[Yes]]></string> … … 2417 2417 <string name="_adm_form_dsc_pre_values_value"><![CDATA[You need to enter field value]]></string> 2418 2418 <string name="_adm_form_err_pre_values_value"><![CDATA[Field value shouldn't be empty]]></string> 2419 <string name="_adm_form_err_pre_values_value_numeric"><![CDATA[Value shouldn't be empty. Use numeric values from 0 to {0}]]></string> 2419 2420 <string name="_adm_form_txt_pre_values_lkey"><![CDATA[Title]]></string> 2420 2421 <string name="_adm_form_dsc_pre_values_lkey"><![CDATA[You need to enter field title]]></string> -
trunk/studio/classes/BxDolStudioFormsFields.php
r15877 r15896 12 12 bx_import('BxDolStudioTemplate'); 13 13 bx_import('BxDolStudioFormsQuery'); 14 15 define('BX_DOL_STUDIO_FIELD_PRE_LIST_PREFIX', '#!'); 14 16 15 17 class BxDolStudioFormsFields extends BxTemplStudioGrid { -
trunk/studio/classes/BxDolStudioFormsPreValues.php
r15888 r15896 12 12 bx_import('BxDolStudioTemplate'); 13 13 bx_import('BxDolStudioFormsQuery'); 14 15 define('BX_DOL_STUDIO_FIELD_PRE_VALUE_INT_MAX', round(log(PHP_INT_MAX, 2))); 14 16 15 17 class BxDolStudioFormsPreValues extends BxTemplStudioGrid { -
trunk/studio/classes/BxDolStudioFormsQuery.php
r15888 r15896 206 206 $sWhereClause = $this->prepare(" AND `tl`.`id`=? ", $aParams['value']); 207 207 break; 208 case 'by_key': 209 $aMethod['name'] = 'getRow'; 210 $sWhereClause = $this->prepare(" AND `tl`.`key`=? ", $aParams['value']); 211 break; 208 212 case 'pairs_list_values': 209 213 $aMethod['name'] = 'getPairs'; … … 253 257 case 'by_key': 254 258 $sWhereClause = $this->prepare(" AND `tv`.`Key`=? ", $aParams['value']); 259 break; 260 case 'by_key_order_value': 261 $sWhereClause = $this->prepare(" AND `tv`.`Key`=? ", $aParams['value']); 262 $sOrderClause = "ORDER BY `tv`.`Value` ASC"; 255 263 break; 256 264 case 'all': -
trunk/studio/templates/base/scripts/BxBaseStudioFormsField.php
r15870 r15896 129 129 if(isset($aForm['inputs']['values'])) { 130 130 $sValues = $oForm->getCleanValue('values'); 131 BxDolForm::setSubmittedValue('values', serialize(explode("\n", $sValues)), $aForm['form_attrs']['method']); 131 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 133 } 133 134 … … 186 187 } 187 188 188 if(isset($aForm['inputs']['values'] )) {189 if(isset($aForm['inputs']['values']['db'])) { 189 190 $sValues = $oForm->getCleanValue('values'); 190 BxDolForm::setSubmittedValue('values', serialize(explode("\n", $sValues)), $aForm['form_attrs']['method']); 191 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']); 191 193 } 192 194 … … 253 255 $aForm['form_attrs']['action'] = BX_DOL_URL_ROOT . 'grid.php?o=' . $sObject . '&a=' . $sAction . '&display=' . $sDisplay . '&di_id=' . (int)$this->aField['di_id']; 254 256 255 unset($aForm['inputs']['object'], $aForm['inputs']['module'], $aForm['inputs']['type'], $aForm['inputs']['name']);256 257 foreach($aForm['inputs'] as $sKey => $aInput) 257 258 if(!in_array($sKey, array('controls'))) … … 262 263 if(!empty($this->aField[$sKey])) 263 264 $aForm['inputs'][$sKey]['value'] = $this->getFieldValues($this->aField); 265 266 if(in_array($aForm['inputs']['type']['value'], array('select', 'select_multiple', 'radio_set', 'checkbox_set'))) { 267 $aForm['inputs'][$sKey]['type'] = 'value'; 268 foreach($aForm['inputs'][$sKey]['values'] as $aValue) 269 if($aValue['key'] == $aForm['inputs'][$sKey]['value']) { 270 $aForm['inputs'][$sKey]['value'] = BxDolStudioTemplate::getInstance()->parseHtmlByName('bx_a.html', array( 271 'href' => BX_DOL_URL_STUDIO . 'builder_forms.php?page=pre_values&list=' . str_replace(BX_DOL_STUDIO_FIELD_PRE_LIST_PREFIX, '', $aValue['key']), 272 'title' => _t('_adm_form_txt_field_manage_values'), 273 'bx_repeat:attrs' => array(), 274 'content' => $aValue['value'] 275 )); 276 break; 277 } 278 unset($aForm['inputs'][$sKey]['values'], $aForm['inputs'][$sKey]['db']); 279 } 280 264 281 break; 265 282 case 'checked': … … 322 339 $aForm['inputs']['controls'][0]['value'] = _t('_adm_form_btn_field_save'); 323 340 341 unset($aForm['inputs']['object'], $aForm['inputs']['module'], $aForm['inputs']['type'], $aForm['inputs']['name']); 324 342 return $aForm; 325 343 } … … 332 350 case 'checkbox_set': 333 351 case 'radio_set': 334 $mixedResult = implode("\n", unserialize($this->aField['values'])); 352 //$mixedResult = implode("\n", unserialize($this->aField['values'])); 353 $mixedResult = $this->aField['values']; 335 354 break; 336 355 case 'input_set': … … 901 920 $aFields = array( 902 921 'values' => array( 903 'type' => ' textarea',922 'type' => 'select', 904 923 'name' => 'values', 905 924 'caption' => _t('_adm_form_txt_field_values'), 906 925 'info' => _t('_adm_form_dsc_field_values'), 907 926 'value' => '', 927 'values' => array(), 908 928 'required' => '0', 909 929 'db' => array ( … … 912 932 ) 913 933 ); 934 935 $aLists = array(); 936 $this->oDb->getLists(array('type' => 'all'), $aLists, false); 937 foreach($aLists as $aList) 938 $aFields['values']['values'][] = array('key' => BX_DOL_STUDIO_FIELD_PRE_LIST_PREFIX . $aList['key'], 'value' => _t($aList['title'])); 939 914 940 $this->aForm['inputs'] = $this->addInArray($this->aForm['inputs'], 'value', $aFields); 915 941 } -
trunk/studio/templates/base/scripts/BxBaseStudioFormsFields.php
r15870 r15896 10 10 defined('BX_DOL') or die('hack attempt'); 11 11 12 bx_import('BxDolStudioFormsFields'); 13 12 14 define('BX_DOL_STUDIO_FORMS_FIELDS_JS_OBJECT', 'oBxDolStudioFormsFields'); 13 14 bx_import('BxDolStudioFormsFields');15 15 16 16 class BxBaseStudioFormsFields extends BxDolStudioFormsFields { -
trunk/studio/templates/base/scripts/BxBaseStudioFormsPreValues.php
r15888 r15896 20 20 $sAction = 'add'; 21 21 22 $aList = array(); 23 $this->oDb->getLists(array('type' => 'by_key', 'value' => $this->sList), $aList, false); 24 $bUseInSets = (int)$aList['use_for_sets'] == 1; 25 26 $aValueChecker = array ( 27 'func' => 'avail', 28 'params' => array(), 29 'error' => _t('_adm_form_err_pre_values_value'), 30 ); 31 if($bUseInSets) 32 $aValueChecker = array ( 33 'func' => 'preg', 34 'params' => array('/^[0-9]{1,2}$/'), 35 'error' => _t('_adm_form_err_pre_values_value_numeric', BX_DOL_STUDIO_FIELD_PRE_VALUE_INT_MAX), 36 ); 37 22 38 $aForm = array( 23 39 'form_attrs' => array( … … 49 65 'caption' => _t('_adm_form_txt_pre_values_value'), 50 66 'info' => _t('_adm_form_dsc_pre_values_value'), 51 'value' => '',67 'value' => $bUseInSets ? $this->_getAvailableSetValue($this->sList) : '', 52 68 'required' => '1', 53 69 'db' => array ( 54 70 'pass' => 'Xss', 55 71 ), 56 'checker' => array ( 57 'func' => 'avail', 58 'params' => array(), 59 'error' => _t('_adm_form_err_pre_values_value'), 60 ), 72 'checker' => $aValueChecker, 61 73 ), 62 74 'LKey' => array( … … 118 130 119 131 if($oForm->isSubmittedAndValid()) { 132 if($bUseInSets) { 133 $iValue = (int)$oForm->getCleanValue('Value'); 134 if($iValue < 0 || $iValue > BX_DOL_STUDIO_FIELD_PRE_VALUE_INT_MAX) { 135 $iValue = $this->_getAvailableSetValue($this->sList); 136 BxDolForm::setSubmittedValue('Value', $iValue, $aForm['form_attrs']['method']); 137 } 138 } 139 120 140 $sTitleValue = $oForm->getCleanValue('LKey'); 121 141 $sTitleKey = '_adm_form_txt_pre_values_lkey_' . $this->getSystemName($sTitleValue); … … 175 195 exit; 176 196 } 197 198 $aList = array(); 199 $this->oDb->getLists(array('type' => 'by_key', 'value' => $this->sList), $aList, false); 200 $bUseInSets = (int)$aList['use_for_sets'] == 1; 201 202 $aValueChecker = array ( 203 'func' => 'avail', 204 'params' => array(), 205 'error' => _t('_adm_form_err_pre_values_value'), 206 ); 207 if($bUseInSets) 208 $aValueChecker = array ( 209 'func' => 'preg', 210 'params' => array('/^[0-9]{1,2}$/'), 211 'error' => _t('_adm_form_err_pre_values_value_numeric', BX_DOL_STUDIO_FIELD_PRE_VALUE_INT_MAX), 212 ); 177 213 178 214 $aForm = array( … … 210 246 'pass' => 'Xss', 211 247 ), 212 'checker' => array ( 213 'func' => 'avail', 214 'params' => array(), 215 'error' => _t('_adm_form_err_pre_values_value'), 216 ), 248 'checker' => $aValueChecker, 217 249 ), 218 250 'LKey' => array( … … 274 306 275 307 if($oForm->isSubmittedAndValid()) { 308 if($bUseInSets) { 309 $iValue = (int)$oForm->getCleanValue('Value'); 310 if($iValue < 0 || $iValue > BX_DOL_STUDIO_FIELD_PRE_VALUE_INT_MAX) { 311 $iValue = $this->_getAvailableSetValue($this->sList); 312 BxDolForm::setSubmittedValue('Value', $iValue, $aForm['form_attrs']['method']); 313 } 314 } 315 276 316 $sTitleValue = $oForm->getCleanValue('LKey'); 277 317 BxDolForm::setSubmittedValue('LKey', $aValue['lkey'], $aForm['form_attrs']['method']); … … 406 446 return $sContent . parent::_getFilterControls(); 407 447 } 448 449 protected function _getAvailableSetValue($sList) { 450 $aValues = array(); 451 $this->oDb->getValues(array('type' =>'by_key_order_value', 'value' => $sList), $aValues, false); 452 453 $iValue = 0; 454 foreach($aValues as $aValue) { 455 if($iValue != (int)$aValue['value']) 456 break; 457 458 $iValue++; 459 } 460 461 return $iValue > BX_DOL_STUDIO_FIELD_PRE_VALUE_INT_MAX ? BX_DOL_STUDIO_FIELD_PRE_VALUE_INT_MAX : $iValue; 462 } 408 463 } 409 464 /** @} */
Note: See TracChangeset
for help on using the changeset viewer.