Index: branches/RC/core/install/upgrades.php =================================================================== diff -u -r11238 -r11418 --- branches/RC/core/install/upgrades.php (.../upgrades.php) (revision 11238) +++ branches/RC/core/install/upgrades.php (.../upgrades.php) (revision 11418) @@ -666,4 +666,50 @@ $this->Conn->Query($sql); } + + /** + * Update colors in skin (only if they were not changed manually) + * + * @param string $mode when called mode {before, after) + */ + function Upgrade_5_0_0($mode) + { + if ($mode == 'after') { + $skin =& $this->Application->recallObject('skin', null, Array ('skip_autoload' => 1)); + /* @var $skin kDBItem */ + + $skin->Load(1, 'IsPrimary'); + if ($skin->isLoaded()) { + $skin_options = unserialize( $skin->GetDBField('Options') ); + + $changes = Array ( + // option: from -> to + 'HeadBgColor' => Array ('#1961B8', '#007BF4'), + 'HeadBarColor' => Array ('#FFFFFF', '#000000'), + ); + + $can_change = true; + foreach ($changes as $option_name => $change) { + list ($change_from, $change_to) = $change; + + $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); + } + } + + } + } + } \ No newline at end of file