Index: branches/5.1.x/core/install/upgrades.php =================================================================== diff -u -r12127 -r12657 --- branches/5.1.x/core/install/upgrades.php (.../upgrades.php) (revision 12127) +++ branches/5.1.x/core/install/upgrades.php (.../upgrades.php) (revision 12657) @@ -1,6 +1,6 @@ SetDBField('Options', serialize($skin_options)); $skin->Update(); - $skin_eh =& $this->Application->recallObject('skin_EventHandler'); - /* @var $skin_eh SkinEventHandler */ + $skin_helper =& $this->Application->recallObject('SkinHelper'); + /* @var $skin_helper SkinHelper */ - $skin_eh->Compile($skin); + $skin_file = $skin_helper->getSkinPath(); + if (file_exists($skin_file)) { + unlink($skin_file); + } } } } @@ -1142,4 +1148,51 @@ $this->Conn->Query($sql); } } + + /** + * Update to 5.0.1 + * + * @param string $mode when called mode {before, after) + */ + function Upgrade_5_0_1($mode) + { + if ($mode == 'after') { + // delete old events + $events_to_delete = Array ('CATEGORY.MODIFY', 'CATEGORY.DELETE'); + + $sql = 'SELECT EventId + FROM ' . TABLE_PREFIX . 'Events + WHERE Event IN ("' . implode('","', $events_to_delete) . '")'; + $event_ids = $this->Conn->GetCol($sql); + + if ($event_ids) { + $this->_deleteEvents($event_ids); + + $sql = 'DELETE FROM ' . TABLE_PREFIX . 'Phrase + WHERE Phrase IN ("la_event_category.modify", "la_event_category.delete")'; + $this->Conn->Query($sql); + } + + // partially delete events + $sql = 'SELECT EventId + FROM ' . TABLE_PREFIX . 'Events + WHERE (Event IN ("CATEGORY.APPROVE", "CATEGORY.DENY")) AND (Type = ' . EVENT_TYPE_ADMIN . ')'; + $event_ids = $this->Conn->GetCol($sql); + + if ($event_ids) { + $this->_deleteEvents($event_ids); + } + } + } + + function _deleteEvents($ids) + { + $sql = 'DELETE FROM ' . TABLE_PREFIX . 'EmailMessage + WHERE EventId IN (' . implode(',', $ids) . ')'; + $this->Conn->Query($sql); + + $sql = 'DELETE FROM ' . TABLE_PREFIX . 'Events + WHERE EventId IN (' . implode(',', $ids) . ')'; + $this->Conn->Query($sql); + } } \ No newline at end of file