208 lines
6.2 KiB
PHP
208 lines
6.2 KiB
PHP
<?php
|
|
|
|
class Upgrade20 extends Upgrade
|
|
{
|
|
public function upgrade()
|
|
{
|
|
$changed = false;
|
|
|
|
// jestlize je opravnene udelat upgrade, tak provest
|
|
if ($this->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();
|
|
}
|
|
}
|