From f68b380bb9a97d8530421c2c2e1742f39f4528de Mon Sep 17 00:00:00 2001 From: vAugagneur Date: Mon, 5 Nov 2012 09:21:55 +0000 Subject: [PATCH] //add generic function to add missing column and add check on block newsletter for missing columns --- .../upgrade/php/blocknewsletter1530.php | 39 +++++++++++++++++++ .../php/generic_add_missing_column.php | 18 +++++++++ install-dev/upgrade/sql/1.5.2.1.sql | 3 ++ 3 files changed, 60 insertions(+) create mode 100644 install-dev/upgrade/php/blocknewsletter1530.php create mode 100644 install-dev/upgrade/php/generic_add_missing_column.php create mode 100644 install-dev/upgrade/sql/1.5.2.1.sql diff --git a/install-dev/upgrade/php/blocknewsletter1530.php b/install-dev/upgrade/php/blocknewsletter1530.php new file mode 100644 index 000000000..cc6f0ba61 --- /dev/null +++ b/install-dev/upgrade/php/blocknewsletter1530.php @@ -0,0 +1,39 @@ + +* @copyright 2007-2012 PrestaShop SA +* @version Release: $Revision: 13573 $ +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + + +function blocknewsletter1530() +{ + include_once(_PS_INSTALL_PATH_.'upgrade/php/generic_add_missing_column.php'); + + $column_to_add = array( + 'id_shop' => 'INTEGER UNSIGNED NOT NULL DEFAULT \'1\' after `id`', + 'id_shop_group' => 'INTEGER UNSIGNED NOT NULL DEFAULT \'1\' after `id_shop`', + 'active' => 'TINYINT(1) NOT NULL DEFAULT \'0\' after http_referer'); + + return generic_add_missing_column('newsletter', $column_to_add); +} diff --git a/install-dev/upgrade/php/generic_add_missing_column.php b/install-dev/upgrade/php/generic_add_missing_column.php new file mode 100644 index 000000000..fdcb3fcd0 --- /dev/null +++ b/install-dev/upgrade/php/generic_add_missing_column.php @@ -0,0 +1,18 @@ +executeS('SHOW FIELDS FROM `'._DB_PREFIX_.$table.'`'); + $column_formated = array(); + + foreach($column_exist as $c) + $column_formated[] = $c['Field'] ; + + foreach($column_to_add as $name => $details) + if (!in_array($name, $column_formated)) + $res &= Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.$table'` ADD COLUMN `'.$name.'` '.$details); + + return $res; +} \ No newline at end of file diff --git a/install-dev/upgrade/sql/1.5.2.1.sql b/install-dev/upgrade/sql/1.5.2.1.sql new file mode 100644 index 000000000..d0abe21fa --- /dev/null +++ b/install-dev/upgrade/sql/1.5.2.1.sql @@ -0,0 +1,3 @@ +SET NAMES 'utf8'; + +/* PHP:blocknewsletter1530()(); */; \ No newline at end of file