- Timestamp:
- 01/24/12 02:35:42 (4 months ago)
- Location:
- trunk
- Files:
-
- 6 edited
-
install/sql/v70.sql (modified) (1 diff)
-
modules/boonex/english/install/data/langs/en.xml (modified) (1 diff)
-
studio/classes/BxDolStudioGrid.php (modified) (2 diffs)
-
studio/classes/BxDolStudioNavigationQuery.php (modified) (2 diffs)
-
studio/js/navigation_menus.js (modified) (1 diff)
-
studio/templates/base/scripts/BxBaseStudioNavigationMenus.php (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/install/sql/v70.sql
r15906 r15914 4684 4684 ('sys_studio_nav_items', 'actions', '', '17%', '', '', 8), 4685 4685 ('sys_studio_nav_import', 'icon', '_adm_nav_txt_items_icon', '10%', '', '', 1), 4686 ('sys_studio_nav_import', 'title', '_adm_nav_txt_items_title', '30%', ' ', '', 2),4687 ('sys_studio_nav_import', 'link', '_adm_nav_txt_items_link', '2 0%', '', '', 3),4688 ('sys_studio_nav_import', 'module', '_adm_nav_txt_items_module', ' 20%', '', '', 4),4686 ('sys_studio_nav_import', 'title', '_adm_nav_txt_items_title', '30%', '28', '', 2), 4687 ('sys_studio_nav_import', 'link', '_adm_nav_txt_items_link', '25%', '23', '', 3), 4688 ('sys_studio_nav_import', 'module', '_adm_nav_txt_items_module', '15%', '13', '', 4), 4689 4689 ('sys_studio_nav_import', 'actions', '', '20%', '', '', 5), 4690 4690 ('sys_studio_forms', 'switcher', '', '10%', '', '', 1), -
trunk/modules/boonex/english/install/data/langs/en.xml
r15912 r15914 2167 2167 <string name="_adm_nav_dsc_menus_set_name"><![CDATA[Assign a Set of menu Items]]></string> 2168 2168 <string name="_adm_nav_err_menus_set_name"><![CDATA[Please, assign a Set.]]></string> 2169 <string name="_adm_nav_txt_menus_set_name_select"><![CDATA[Select Set]]></string> 2169 <string name="_adm_nav_txt_menus_set_name_select"><![CDATA[Select Set...]]></string> 2170 <string name="_adm_nav_txt_menus_set_name_new"><![CDATA[Create New]]></string> 2171 <string name="_adm_nav_txt_menus_set_title"><![CDATA[Set Title]]></string> 2172 <string name="_adm_nav_dsc_menus_set_title"><![CDATA[Descriptive name displayed in Studio only. Use at least 3 characters.]]></string> 2173 <string name="_adm_nav_err_menus_set_title"><![CDATA[A unique title with at least 3 characters is required.]]></string> 2170 2174 <string name="_adm_nav_txt_menus_style"><![CDATA[Style]]></string> 2171 2175 <string name="_adm_nav_dsc_menus_style"><![CDATA[Select presentation style - the way this menu will be displayed on site]]></string> 2172 2176 <string name="_adm_nav_err_menus_style"><![CDATA[Please, select a presentation style.]]></string> 2173 <string name="_adm_nav_txt_menus_style_select"><![CDATA[Select Style ]]></string>2177 <string name="_adm_nav_txt_menus_style_select"><![CDATA[Select Style...]]></string> 2174 2178 <string name="_adm_nav_btn_menus_add"><![CDATA[Add]]></string> 2175 2179 <string name="_adm_nav_btn_menus_cancel"><![CDATA[Cancel]]></string> -
trunk/studio/classes/BxDolStudioGrid.php
r15902 r15914 17 17 18 18 class BxDolStudioGrid extends BxTemplGrid { 19 protected $oDb;20 19 protected $sParamsDivider; 20 public $oDb; 21 21 22 22 public function __construct ($aOptions, $oTemplate = false) { … … 27 27 } 28 28 29 public function getSystemName($sValue) { 30 return str_replace(' ', '_', strtolower($sValue)); 31 } 32 33 public function getClassName($sValue) { 34 return str_replace(' ', '', ucwords(str_replace('_', ' ', $sValue))); 35 } 36 29 37 protected function _isVisibleGrid ($a) { 30 38 return isAdmin(); 31 39 } 32 33 protected function getSystemName($sValue) {34 return str_replace(' ', '_', strtolower($sValue));35 }36 37 protected function getClassName($sValue) {38 return str_replace(' ', '', ucwords(str_replace('_', ' ', $sValue)));39 }40 40 } 41 41 /** @} */ -
trunk/studio/classes/BxDolStudioNavigationQuery.php
r15902 r15914 61 61 } 62 62 63 function isSetExists($sName) { 64 $sSql = $this->prepare("SELECT COUNT(*) FROM `sys_menu_sets` WHERE `set_name`=? LIMIT 1", $sName); 65 return (int)$this->getOne($sSql) == 1; 66 } 67 63 68 function getSets($aParams, &$aItems, $bReturnCount = true) { 64 69 $aMethod = array('name' => 'getAll', 'params' => array(0 => 'query')); … … 99 104 LIMIT 1"; 100 105 return (int)$this->getOne($sQuery); 106 } 107 108 function addSet($aFields) { 109 $sSql = "INSERT INTO `sys_menu_sets` SET `" . implode("`=?, `", array_keys($aFields)) . "`=?"; 110 $sSql = call_user_func_array(array($this, 'prepare'), array_merge(array($sSql), array_values($aFields))); 111 return (int)$this->query($sSql) > 0; 101 112 } 102 113 -
trunk/studio/js/navigation_menus.js
r15802 r15914 27 27 glGrids[this.sObjNameGrid].setFilter(sValueModule + this.sParamsDivider + sValueSearch, true); 28 28 }; 29 30 BxDolStudioNavigationMenus.prototype.onSelectSet = function(oSelect) { 31 var sSet = $(oSelect).val(); 32 33 if(sSet == 'sys_create_new') 34 $('#bx-form-element-set_title').show(); 35 else 36 $('#bx-form-element-set_title').hide(); 37 }; 29 38 /** @} */ -
trunk/studio/templates/base/scripts/BxBaseStudioNavigationMenus.php
r15911 r15914 11 11 12 12 bx_import('BxDolStudioNavigationMenus'); 13 bx_import('BxTemplStudioFormView'); 14 15 class BxDolStudioNavigationMenusCheckerHelper extends BxDolFormCheckerHelper { 16 function checkUniqueSet($sVal) { 17 if(empty($sVal)) 18 return false; 19 20 bx_import('BxDolGrid'); 21 $oGrid = BxDolGrid::getObjectInstance('sys_studio_nav_menus'); 22 if(!$oGrid) 23 return false; 24 25 $sVal = 'custom_' . $oGrid->getSystemName($sVal); 26 return !$oGrid->oDb->isSetExists($sVal); 27 } 28 } 13 29 14 30 class BxBaseStudioNavigationMenus extends BxDolStudioNavigationMenus { 31 private $sCreateNew = 'sys_create_new'; 32 15 33 function __construct($aOptions, $oTemplate = false) { 16 34 parent::__construct($aOptions, $oTemplate); … … 34 52 'submit_name' => 'do_submit' 35 53 ), 54 'checker_helper' => 'BxDolStudioNavigationMenusCheckerHelper' 36 55 ), 37 56 'inputs' => array ( … … 59 78 'value' => '', 60 79 'values' => array( 61 array('key' => '', 'value' => _t('_adm_nav_txt_menus_set_name_select')) 80 array('key' => '', 'value' => _t('_adm_nav_txt_menus_set_name_select')), 81 array('key' => $this->sCreateNew, 'value' => _t('_adm_nav_txt_menus_set_name_new')) 62 82 ), 63 83 'required' => '1', 84 'attrs' => array( 85 'id' => 'bx-form-field-set-name', 86 'onchange' => $this->getJsObject() . ".onSelectSet(this)" 87 ), 64 88 'db' => array ( 65 89 'pass' => 'Xss', … … 69 93 'params' => array(), 70 94 'error' => _t('_adm_nav_err_menus_set_name'), 95 ), 96 ), 97 'set_title' => array( 98 'type' => 'text', 99 'name' => 'set_title', 100 'caption' => _t('_adm_nav_txt_menus_set_title'), 101 'info' => _t('_adm_nav_dsc_menus_set_title'), 102 'value' => '', 103 'required' => '1', 104 'tr_attrs' => array( 105 'style' => 'display:none' 106 ), 107 'db' => array ( 108 'pass' => 'Xss', 109 ), 110 'checker' => array ( 111 'func' => 'UniqueSet', 112 'params' => array(), 113 'error' => _t('_adm_nav_err_menus_set_title'), 71 114 ), 72 115 ), … … 121 164 $aForm['inputs']['template_id']['values'][] = array('key' => $aTemplate['id'], 'value' => _t($aTemplate['title'])); 122 165 123 bx_import('BxTemplStudioFormView');124 166 $oForm = new BxTemplStudioFormView($aForm); 167 if($oForm->isSubmitted() && isset($oForm->aInputs['set_name'])) 168 $this->updateSetFields($oForm); 169 125 170 $oForm->initChecker(); 126 127 171 if($oForm->isSubmittedAndValid()) { 128 172 $sTitleValue = $oForm->getCleanValue('title'); … … 130 174 $sTitleKey = '_adm_nav_txt_menu_' . $sObject; 131 175 BxDolForm::setSubmittedValue('title', $sTitleKey, $aForm['form_attrs']['method']); 176 177 //--- New Set Creation 178 if($oForm->getCleanValue('set_name') == $this->sCreateNew) { 179 $sSetTitleValue = $oForm->getCleanValue('set_title'); 180 $sSetName = 'custom_' . $this->getSystemName($sSetTitleValue); 181 $sSetTitleKey = '_adm_nav_txt_set_' . $sSetName; 182 183 if($this->oDb->addSet(array('set_name' => $sSetName, 'module' => BX_DOL_STUDIO_GRID_MODULE_CUSTOM, 'title' => $sSetTitleKey, 'deletable' => 1))) { 184 bx_import('BxDolStudioLanguagesUtils'); 185 BxDolStudioLanguagesUtils::getInstance()->addLanguageString($sSetTitleKey, $sSetTitleValue); 186 187 BxDolForm::setSubmittedValue('set_name', $sSetName, $oForm->aFormAttrs['method']); 188 } 189 } 190 unset($oForm->aInputs['set_title']); 132 191 133 192 $iId = (int)$oForm->insert(array('object' => $sObject, 'module' => BX_DOL_STUDIO_GRID_MODULE_CUSTOM, 'deleteable' => 1, 'active' => 1)); … … 153 212 $this->_echoResultJson(array('popup' => $sContent), true); 154 213 } 214 } 215 216 protected function updateSetFields(&$oForm) { 217 if($oForm->getCleanValue('set_name') != $this->sCreateNew) 218 unset($oForm->aInputs['set_title']['checker']); 219 else 220 unset($oForm->aInputs['set_title']['tr_attrs']['style']); 155 221 } 156 222 … … 225 291 'value' => $aMenu['set_name'], 226 292 'values' => array( 227 array('key' => '', 'value' => _t('_adm_nav_txt_menus_set_name_select')) 293 array('key' => '', 'value' => _t('_adm_nav_txt_menus_set_name_select')), 294 array('key' => $this->sCreateNew, 'value' => _t('_adm_nav_txt_menus_set_name_new')) 228 295 ), 229 296 'required' => '1', 297 'attrs' => array( 298 'id' => 'bx-form-field-set-name', 299 'onchange' => $this->getJsObject() . ".onSelectSet(this)" 300 ), 230 301 'db' => array ( 231 302 'pass' => 'Xss', … … 235 306 'params' => array(), 236 307 'error' => _t('_adm_nav_err_menus_set_name'), 308 ), 309 ), 310 'set_title' => array( 311 'type' => 'text', 312 'name' => 'set_title', 313 'caption' => _t('_adm_nav_txt_menus_set_title'), 314 'info' => _t('_adm_nav_dsc_menus_set_title'), 315 'value' => '', 316 'required' => '1', 317 'tr_attrs' => array( 318 'style' => 'display:none' 319 ), 320 'db' => array ( 321 'pass' => 'Xss', 322 ), 323 'checker' => array ( 324 'func' => 'UniqueSet', 325 'params' => array(), 326 'error' => _t('_adm_nav_err_menus_set_title'), 237 327 ), 238 328 ), … … 287 377 $aForm['inputs']['template_id']['values'][] = array('key' => $aTemplate['id'], 'value' => _t($aTemplate['title'])); 288 378 289 bx_import('BxTemplStudioFormView');290 379 $oForm = new BxTemplStudioFormView($aForm); 380 if($oForm->isSubmitted() && isset($oForm->aInputs['set_name'])) 381 $this->updateSetFields($oForm); 382 291 383 $oForm->initChecker(); 292 293 384 if($oForm->isSubmittedAndValid()) { 294 385 $sTitleValue = $oForm->getCleanValue('title'); 295 386 BxDolForm::setSubmittedValue('title', $aMenu['title'], $aForm['form_attrs']['method']); 387 388 //--- New Set Creation 389 if($oForm->getCleanValue('set_name') == $this->sCreateNew) { 390 $sSetTitleValue = $oForm->getCleanValue('set_title'); 391 $sSetName = 'custom_' . $this->getSystemName($sSetTitleValue); 392 $sSetTitleKey = '_adm_nav_txt_set_' . $sSetName; 393 394 if($this->oDb->addSet(array('set_name' => $sSetName, 'module' => BX_DOL_STUDIO_GRID_MODULE_CUSTOM, 'title' => $sSetTitleKey, 'deletable' => 1))) { 395 bx_import('BxDolStudioLanguagesUtils'); 396 BxDolStudioLanguagesUtils::getInstance()->addLanguageString($sSetTitleKey, $sSetTitleValue); 397 398 BxDolForm::setSubmittedValue('set_name', $sSetName, $oForm->aFormAttrs['method']); 399 } 400 } 401 unset($oForm->aInputs['set_title']); 296 402 297 403 if($oForm->update($iId) !== false) {
Note: See TracChangeset
for help on using the changeset viewer.