Index: branches/RC/core/install/upgrades.php =================================================================== diff -u -r11501 -r11523 --- branches/RC/core/install/upgrades.php (.../upgrades.php) (revision 11501) +++ branches/RC/core/install/upgrades.php (.../upgrades.php) (revision 11523) @@ -679,40 +679,63 @@ } if ($mode == 'after') { - $skin =& $this->Application->recallObject('skin', null, Array ('skip_autoload' => 1)); - /* @var $skin kDBItem */ + $this->_fixSkinColors(); + $this->_restructureCatalog(); + } + } - $skin->Load(1, 'IsPrimary'); - if ($skin->isLoaded()) { - $skin_options = unserialize( $skin->GetDBField('Options') ); + /** + * Move all categories (except "Content") from "Home" to "Content" category and hide them from menu + * + */ + function _restructureCatalog() + { + $root_category = $this->Application->findModule('Name', 'Proj-CMS', 'RootCat'); - $changes = Array ( - // option: from -> to - 'HeadBgColor' => Array ('#1961B8', '#007BF4'), - 'HeadBarColor' => Array ('#FFFFFF', '#000000'), - ); + $sql = 'UPDATE ' . TABLE_PREFIX . 'Category + SET IsMenu = 0, ParentId = ' . $root_category . ' + WHERE ParentId = 0 AND CategoryId <> ' . $root_category; + $this->Conn->Query($sql); + } - $can_change = true; - foreach ($changes as $option_name => $change) { - list ($change_from, $change_to) = $change; + /** + * Changes skin colors to match new ones (only in case, when they match default values) + * + */ + function _fixSkinColors() + { + $skin =& $this->Application->recallObject('skin', null, Array ('skip_autoload' => 1)); + /* @var $skin kDBItem */ - $can_change = $can_change && ($change_from == $skin_options[$option_name]['Value']); - if ($can_change) { - $skin_options[$option_name]['Value'] = $change_to; - } - } + $skin->Load(1, 'IsPrimary'); + if ($skin->isLoaded()) { + $skin_options = unserialize( $skin->GetDBField('Options') ); - if ($can_change) { - $skin->SetDBField('Options', serialize($skin_options)); - $skin->Update(); + $changes = Array ( + // option: from -> to + 'HeadBgColor' => Array ('#1961B8', '#007BF4'), + 'HeadBarColor' => Array ('#FFFFFF', '#000000'), + ); - $skin_eh =& $this->Application->recallObject('skin_EventHandler'); - /* @var $skin_eh SkinEventHandler */ + $can_change = true; + foreach ($changes as $option_name => $change) { + list ($change_from, $change_to) = $change; - $skin_eh->Compile($skin); + $can_change = $can_change && ($change_from == $skin_options[$option_name]['Value']); + if ($can_change) { + $skin_options[$option_name]['Value'] = $change_to; } } + if ($can_change) { + $skin->SetDBField('Options', serialize($skin_options)); + $skin->Update(); + + $skin_eh =& $this->Application->recallObject('skin_EventHandler'); + /* @var $skin_eh SkinEventHandler */ + + $skin_eh->Compile($skin); + } } }