checkRightfulness_1()) { $this->makeChanges_1(); $changed = true; } if ($this->checkRightfulness_2()) { $this->makeChanges_2(); $changed = true; } if (findModule('products_parameters')) { if ($this->checkRightfulness_3()) { $this->makeChanges_3(); $changed = true; } } if ($this->checkRightfulness_4()) { $this->makeChanges_4(); $changed = true; } if (findModule('automatic_import')) { if ($this->checkRightfulness_5()) { $this->makeChanges_5(); $changed = true; } } if ($changed == false) { $this->noChanges(); } $this->printResult(); } // overi, jestli je opravnene provest upgrade public function checkRightfulness_1() { $change = true; $SQL = sqlQuery('SHOW FIELDS FROM '.getTableName('products')); while ($row = sqlFetchArray($SQL)) { if ($row['Field'] == 'meta_title') { $change = false; break; } } return $change; } // provest samotny upgrade public function makeChanges_1() { $SQL = sqlQuery('ALTER TABLE '.getTableName('products').' ADD (`meta_title` VARCHAR(50) NULL DEFAULT NULL, `meta_description` VARCHAR(50) NULL DEFAULT NULL, `meta_keywords` VARCHAR(50) NULL DEFAULT NULL)'); $this->upgradeOK(); } // overi, jestli je opravnene provest upgrade public function checkRightfulness_2() { $change = true; $SQL = sqlQuery('SHOW FIELDS FROM '.getTableName('sections')); while ($row = sqlFetchArray($SQL)) { if ($row['Field'] == 'meta_title') { $change = false; break; } } return $change; } // provest samotny upgrade public function makeChanges_2() { $SQL = sqlQuery('ALTER TABLE '.getTableName('sections').' ADD (`meta_title` VARCHAR(50) NULL DEFAULT NULL, `meta_description` VARCHAR(50) NULL DEFAULT NULL, `meta_keywords` VARCHAR(50) NULL DEFAULT NULL)'); $this->upgradeOK(); } // overi, jestli je opravnene provest upgrade public function checkRightfulness_3() { $change = !$this->checkColumnExists('parameters_products', 'value'); $SQL = sqlQuery('SHOW FIELDS FROM '.getTableName('parameters_products')); while ($row = sqlFetchArray($SQL)) { if ($row['Field'] == 'value' && substr($row['Type'], 0, 7) == 'varchar') { $change = false; break; } } return $change; } // provest samotny upgrade public function makeChanges_3() { sqlQuery('ALTER TABLE '.getTableName('parameters_products').' ADD INDEX ( `unit` )'); sqlQuery('ALTER TABLE '.getTableName('parameters_products').' CHANGE `value` `value` VARCHAR( 100 ) NOT NULL'); sqlQuery('ALTER TABLE '.getTableName('parameters_products').' ADD INDEX ( `value` )'); sqlQuery('ALTER TABLE '.getTableName('parameters_products').' ADD INDEX ( `id_product` )'); sqlQuery('ALTER TABLE '.getTableName('parameters_products')." CHANGE `id_product` `id_product` INT( 11 ) NOT NULL DEFAULT '0'"); sqlQuery('DELETE pp FROM '.getTableName('parameters_products').' pp LEFT JOIN '.getTableName('products').' p ON p.id = pp.id_product WHERE p.id IS NULL'); sqlQuery('ALTER TABLE '.getTableName('parameters_products').' ADD FOREIGN KEY ( `id_product` ) REFERENCES `products` ( `id` ) ON DELETE CASCADE ON UPDATE CASCADE ;'); sqlQuery('ALTER TABLE '.getTableName('parameters_products').' ADD FOREIGN KEY ( `id_parameter` ) REFERENCES `parameters` ( `id` ) ON DELETE CASCADE ON UPDATE CASCADE ;'); sqlQuery('ALTER TABLE '.getTableName('parameters_sections').' ADD FOREIGN KEY ( `id_parameter` ) REFERENCES `parameters` ( `id` ) ON DELETE CASCADE ON UPDATE CASCADE ;'); sqlQuery('ALTER TABLE '.getTableName('parameters_sections').' ADD FOREIGN KEY ( `id_section` ) REFERENCES `sections` ( `id` ) ON DELETE CASCADE ON UPDATE CASCADE ;'); $this->upgradeOK(); } // overi, jestli je opravnene provest upgrade public function checkRightfulness_4() { $change = true; $SQL = sqlQuery("SHOW TABLES LIKE '".getTableName('products_variations_sections', false)."'"); if (sqlNumRows($SQL) > 0) { $change = false; } return $change; } // provest samotny upgrade public function makeChanges_4() { sqlQuery('CREATE TABLE IF NOT EXISTS '.getTableName('products_variations_sections').' ( `id_label` INT(11) NOT NULL, `id_section` INT(11) NOT NULL, `weight` INT(11) DEFAULT NULL, PRIMARY KEY (`id_label`, `id_section`) ) ENGINE=InnoDB '); sqlQuery('ALTER TABLE '.getTableName('products_variations_sections').' ADD FOREIGN KEY ( `id_label` ) REFERENCES `products_variations_choices_labels` ( `id` ) ON DELETE CASCADE ON UPDATE CASCADE ;'); sqlQuery('ALTER TABLE '.getTableName('products_variations_sections').' ADD FOREIGN KEY ( `id_section` ) REFERENCES `sections` ( `id` ) ON DELETE CASCADE ON UPDATE CASCADE ;'); $this->upgradeOK(); } // overi, jestli je opravnene provest upgrade public function checkRightfulness_5() { $change = true; $SQL = sqlQuery('SHOW FIELDS FROM '.getTableName('import')); while ($row = sqlFetchArray($SQL)) { if ($row['Field'] == 'pair') { $change = false; break; } } return $change; } // provest samotny upgrade public function makeChanges_5() { sqlQuery('ALTER TABLE '.getTableName('import').' ADD `pair` BOOLEAN NOT NULL DEFAULT TRUE'); $this->upgradeOK(); } }