'wpj@wpj.cz']) == false; } /** Development - make sure wpj@wpj.cz user exists */ public function makeChanges_1() { sqlQuery( 'INSERT IGNORE INTO users (email, passw, `name`, surname) VALUES (:email, :passwd, :name, :surname) ON DUPLICATE KEY UPDATE email=VALUES(email), passw=VALUES(passw), `name`=VALUES(`name`), surname=VALUES(surname)', [ 'email' => 'wpj@wpj.cz', 'passwd' => password_hash('wpj', PASSWORD_DEFAULT), 'name' => 'Wpj', 'surname' => 'Wpj', ] ); $this->upgradeOK(); } public function checkRightfulness_2() { return findModule('abra') && $this->checkTableExists('abra_producers'); } /** Abra sync - add abra producers sync tables */ public function makeChanges_2() { sqlQuery('CREATE TABLE abra_producers ( `id_abra` VARCHAR(30) NOT NULL, `id_producer` INT UNSIGNED NOT NULL ) ENGINE=InnoDB'); sqlQuery('ALTER TABLE `abra_producers` ADD KEY `id_abra` (`id_abra`)'); sqlQuery('ALTER TABLE `abra_producers` ADD CONSTRAINT `abra_producers_ibfk_1` FOREIGN KEY (`id_producer`) REFERENCES `producers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE'); $this->upgradeOK(); } public function checkRightfulness_3() { return findModule('products_variations') && $this->checkColumnIsNull('products_variations', 'in_store', false); } /** Product Variations - make in_store not null */ public function makeChanges_3() { sqlQuery("ALTER TABLE `products_variations` CHANGE `in_store` `in_store` INT(10) NOT NULL DEFAULT '0'"); $this->upgradeOK(); } public function checkRightfulness_4() { return findModule('products_sections') && $this->checkColumnExists('sections', 'name_short'); } /** Add sections.name_short column */ public function makeChanges_4() { sqlQuery('ALTER TABLE `sections` ADD COLUMN `name_short` VARCHAR(50) DEFAULT NULL AFTER name'); $this->upgradeOK(); } public function checkRightfulness_5() { return findModule('order_payment') && $this->checkColumnType('order_payments', 'payment_data', 'TEXT'); } /** Order_payments - change type INT to TEXT */ public function makeChanges_5() { sqlQuery('ALTER TABLE order_payments CHANGE payment_data payment_data TEXT'); $this->upgradeOK(); } public function checkRightfulness_6() { return findModule('products_variations') && $this->checkColumnExists('sections', 'list_variations'); } /** Add section.list_variations column */ public function makeChanges_6() { sqlQuery("ALTER TABLE sections ADD COLUMN list_variations ENUM('Y','N') NOT NULL DEFAULT 'N' AFTER `date`"); $this->upgradeOK(); } public function check_makeZIPLarger() { return findModule('eshop_users') && $this->checkColumnType('users', 'zip', 'VARCHAR(50)'); } /** Make ZIP fields 50 chars long */ public function upgrade_makeZIPLarger() { sqlQuery("ALTER TABLE `users` CHANGE `delivery_zip` `delivery_zip` VARCHAR( 50 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT ''"); sqlQuery("ALTER TABLE `users` CHANGE `zip` `zip` VARCHAR( 50 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT ''"); $this->upgradeOK(); } public function check_kindOfPhotos() { global $cfg; if (!isset($cfg['Photo']['kind'])) { return false; } return $this->checkColumnType('photos_products_relation', 'show_in_lead', "enum('".join("','", array_keys($cfg['Photo']['kind']))."')"); } /** Dynamic change enum of photos_products_relation */ public function upgrade_kindOfPhotos() { global $cfg; sqlQuery("ALTER TABLE photos_products_relation CHANGE show_in_lead show_in_lead ENUM('".join("','", array_keys($cfg['Photo']['kind']))."') NOT NULL DEFAULT 'N'"); $this->upgradeOK(); } public function check_variationFigure() { return $this->checkColumnExists('products_variations', 'figure'); } /** Products Variation - add figure field to hide variations */ public function upgrade_variationFigure() { sqlQuery("ALTER TABLE products_variations ADD figure ENUM('Y','N') NOT NULL DEFAULT 'Y'"); sqlQuery('UPDATE products_variations SET figure="Y"'); $this->upgradeOK(); } public function check_API() { return findModule('eshop_users') && findModule('api') && $this->checkColumnExists('users', 'api'); } /** API - add api fields into users */ public function upgrade_API() { sqlQuery("ALTER TABLE users ADD api ENUM('Y','N') NOT NULL DEFAULT 'N'"); sqlQuery('ALTER TABLE users ADD api_password VARCHAR(60) DEFAULT NULL'); $this->upgradeOK(); } public function check_SectionsFlags() { return $this->checkColumnExists('sections', 'flags'); } /** Add flags column into sections */ public function upgrade_SectionsFlags() { sqlQuery('ALTER TABLE sections ADD COLUMN `flags` SET(\'\') NOT NULL'); $this->upgradeOK(); } // overi, jestli je opravnene provest upgrade public function check_SectionsFlagsUpdate() { global $cfg; if (isset($cfg['Sections']['Flags'])) { $type = ''; $this->checkEnumExists('sections', 'flags', 'bžet', $type); foreach ($cfg['Sections']['Flags'] as $name => $flag) { if (strstr($type, "'{$name}'") === false) { return true; } } } return false; } /** Update sections flags */ public function upgrade_SectionsFlagsUpdate() { global $cfg; $type = ''; $this->checkEnumExists('sections', 'flags', 'bžet', $type); foreach ($cfg['Sections']['Flags'] as $name => $flag) { if (strstr($type, "'{$name}'") === false) { $type = str_replace(')', ",'{$name}')", $type); } } sqlQuery("ALTER TABLE sections CHANGE `flags` `flags` {$type} NOT NULL"); $this->upgradeOK(); } public function check_watchdog_last_in_store() { return findModule('watchdog') && $this->checkColumnExists('products_watchdog', 'last_in_store'); } public function upgrade_watchdog_last_in_store() { sqlQuery('ALTER TABLE products_watchdog ADD COLUMN `last_in_store` INT'); $this->upgradeOK(); } // public function check_ModuleSectionsLead() // { // $count = returnSQLResult("SELECT COUNT(*) FROM sections WHERE lead_figure='Y'"); // // return !findModule('sections_lead') && $count; // } // // /** Check if modul sections_lead is added */ // public function upgrade_ModuleSectionsLead() // { // die('