diff --git a/classes/module/Module.php b/classes/module/Module.php index c2e6f09be..327c446a7 100644 --- a/classes/module/Module.php +++ b/classes/module/Module.php @@ -167,8 +167,8 @@ abstract class ModuleCore // We load configuration from the cache if (isset(self::$modules_cache[$this->name])) { - $this->active = self::$modules_cache[$this->name]['active']; - $this->id = self::$modules_cache[$this->name]['id_module']; + if (isset(self::$modules_cache[$this->name]['id_module'])) + $this->id = self::$modules_cache[$this->name]['id_module']; foreach (self::$modules_cache[$this->name] as $key => $value) if (key_exists($key, $this)) $this->{$key} = $value; diff --git a/install-dev/upgrade/php/p15016_add_missing_columns.php b/install-dev/upgrade/php/p15016_add_missing_columns.php new file mode 100644 index 000000000..db6609aa5 --- /dev/null +++ b/install-dev/upgrade/php/p15016_add_missing_columns.php @@ -0,0 +1,66 @@ + +* @copyright 2007-2012 PrestaShop SA +* @version Release: $Revision: 16057 $ +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +function p15016_add_missing_columns() +{ + $errors = array(); + + $id_module = Db::getInstance()->getValue('SELECT id_module FROM `'._DB_PREFIX_.'module` WHERE name="blockreinsurance"'); + if ($id_module) + { + $list_fields = Db::getInstance()->executeS('SHOW FIELDS FROM `'._DB_PREFIX_.'reinsurance`'); + foreach ($list_fields as $k => $field) + $list_fields[$k] = $field['Field']; + + if (!in_array('id_shop', $list_fields)) + if (!Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'reinsurance` ADD `id_shop` INT(10) NOT NULL default "1" AFTER id_reinsurance')) + $errors[] = Db::getInstance()->getMsgError(); + } + + $id_module = Db::getInstance()->getValue('SELECT id_module FROM `'._DB_PREFIX_.'module` WHERE name="blocktopmenu"'); + if ($id_module) + { + $list_fields = Db::getInstance()->executeS('SHOW FIELDS FROM `'._DB_PREFIX_.'linksmenutop`'); + foreach ($list_fields as $k => $field) + $list_fields[$k] = $field['Field']; + + if (in_array('id_link', $list_fields) && !in_array('id_linksmenutop', $list_fields)) + if (!Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'linksmenutop` CHANGE `id_link` `id_linksmenutop` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT')) + $errors[] = Db::getInstance()->getMsgError(); + + $list_fields = Db::getInstance()->executeS('SHOW FIELDS FROM `'._DB_PREFIX_.'linksmenutop_lang`'); + foreach ($list_fields as $k => $field) + $list_fields[$k] = $field['Field']; + + if (in_array('id_link', $list_fields) && !in_array('id_linksmenutop', $list_fields)) + if (!Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'linksmenutop_lang` CHANGE `id_link` `id_linksmenutop` INT(10) UNSIGNED NOT NULL')) + $errors[] = Db::getInstance()->getMsgError(); + } + + if (count($errors)) + return array('error' => 1, 'msg' => implode(',', $errors)) ; +} \ No newline at end of file diff --git a/install-dev/upgrade/sql/1.5.0.16.sql b/install-dev/upgrade/sql/1.5.0.16.sql index 46d4998fa..66d2e8fcb 100644 --- a/install-dev/upgrade/sql/1.5.0.16.sql +++ b/install-dev/upgrade/sql/1.5.0.16.sql @@ -1,5 +1,7 @@ SET NAMES 'utf8'; +/* PHP:p15016_add_missing_columns(); */; + ALTER TABLE `PREFIX_order_detail` ADD `id_shop` INT(11) UNSIGNED NOT NULL AFTER `id_warehouse`, ADD INDEX (`id_shop`); UPDATE `PREFIX_order_detail` od SET `id_shop`=(SELECT `id_shop` FROM `PREFIX_orders` WHERE `id_order`=od.`id_order`);