Index: branches/RC/core/install/upgrades.php =================================================================== diff -u -r11418 -r11495 --- branches/RC/core/install/upgrades.php (.../upgrades.php) (revision 11418) +++ branches/RC/core/install/upgrades.php (.../upgrades.php) (revision 11495) @@ -674,6 +674,10 @@ */ function Upgrade_5_0_0($mode) { + if ($mode == 'before') { + $this->_createProjCMSTables(); + } + if ($mode == 'after') { $skin =& $this->Application->recallObject('skin', null, Array ('skip_autoload' => 1)); /* @var $skin kDBItem */ @@ -712,4 +716,84 @@ } } + function _createProjCMSTables() + { + // 1. process "Category" table + $structure = $this->Conn->Query('DESCRIBE ' . TABLE_PREFIX . 'Category', 'Field'); + if (!array_key_exists('Path', $structure)) { + // fields from "Pages" table were not added to "Category" table (like before "Proj-CMS" module install) + $sql = "ALTER TABLE " . TABLE_PREFIX . "Category + ADD COLUMN Template varchar(255) default NULL, + ADD COLUMN Path varchar(255) default NULL, + ADD COLUMN l1_Title varchar(255) default '', + ADD COLUMN l2_Title varchar(255) default '', + ADD COLUMN l3_Title varchar(255) default '', + ADD COLUMN l4_Title varchar(255) default '', + ADD COLUMN l5_Title varchar(255) default '', + ADD COLUMN l1_MenuTitle varchar(255) NOT NULL default '', + ADD COLUMN l2_MenuTitle varchar(255) NOT NULL default '', + ADD COLUMN l3_MenuTitle varchar(255) NOT NULL default '', + ADD COLUMN l4_MenuTitle varchar(255) NOT NULL default '', + ADD COLUMN l5_MenuTitle varchar(255) NOT NULL default '', + ADD COLUMN MetaTitle text, + ADD COLUMN IndexTools text, + ADD COLUMN IsIndex tinyint(1) NOT NULL default '0', + ADD COLUMN IsMenu TINYINT(4) NOT NULL DEFAULT '1', + ADD COLUMN IsSystem tinyint(4) NOT NULL default '0', + ADD COLUMN FormId int(11) default NULL, + ADD COLUMN FormSubmittedTemplate varchar(255) default NULL, + ADD COLUMN l1_Translated tinyint(4) NOT NULL default '0', + ADD COLUMN l2_Translated tinyint(4) NOT NULL default '0', + ADD COLUMN l3_Translated tinyint(4) NOT NULL default '0', + ADD COLUMN l4_Translated tinyint(4) NOT NULL default '0', + ADD COLUMN l5_Translated tinyint(4) NOT NULL default '0', + ADD COLUMN FriendlyURL varchar(255) NOT NULL default '', + ADD INDEX IsIndex (IsIndex), + ADD INDEX l1_Translated (l1_Translated), + ADD INDEX l2_Translated (l2_Translated), + ADD INDEX l3_Translated (l3_Translated), + ADD INDEX l4_Translated (l4_Translated), + ADD INDEX l5_Translated (l5_Translated)"; + $this->Conn->Query($sql); + } + + // 2. process "PageContent" table + if ($this->Conn->TableFound(TABLE_PREFIX . 'PageContent')) { + $structure = $this->Conn->Query('DESCRIBE ' . TABLE_PREFIX . 'PageContent', 'Field'); + if (!array_key_exists('l1_Translated', $structure)) { + $sql = "ALTER TABLE " . TABLE_PREFIX . "PageContent + ADD COLUMN l1_Translated tinyint(4) NOT NULL default '0', + ADD COLUMN l2_Translated tinyint(4) NOT NULL default '0', + ADD COLUMN l3_Translated tinyint(4) NOT NULL default '0', + ADD COLUMN l4_Translated tinyint(4) NOT NULL default '0', + ADD COLUMN l5_Translated tinyint(4) NOT NULL default '0'"; + $this->Conn->Query($sql); + } + } + + // 3. process "FormFields" table + if ($this->Conn->TableFound(TABLE_PREFIX . 'FormFields')) { + $structure = $this->Conn->Query('DESCRIBE ' . TABLE_PREFIX . 'FormFields', 'Field'); + if (!$structure['FormId']['Key']) { + $sql = "ALTER TABLE " . TABLE_PREFIX . "FormFields + CHANGE Validation Validation TINYINT NOT NULL DEFAULT '0', + ADD INDEX FormId (FormId), + ADD INDEX Priority (Priority), + ADD INDEX IsSystem (IsSystem), + ADD INDEX DisplayInGrid (DisplayInGrid)"; + $this->Conn->Query($sql); + } + } + + // 4. process "FormSubmissions" table + if ($this->Conn->TableFound(TABLE_PREFIX . 'FormSubmissions')) { + $structure = $this->Conn->Query('DESCRIBE ' . TABLE_PREFIX . 'FormSubmissions', 'Field'); + if (!$structure['SubmissionTime']['Key']) { + $sql = "ALTER TABLE " . TABLE_PREFIX . "FormSubmissions + ADD INDEX SubmissionTime (SubmissionTime)"; + $this->Conn->Query($sql); + } + } + } + } \ No newline at end of file