From 419816361e760ccc8292e0d4b9262c1a337ff40e Mon Sep 17 00:00:00 2001 From: mMarinetti Date: Tue, 24 Jan 2012 14:43:09 +0000 Subject: [PATCH] // uncommented sql query for upgrade (1.5.0.1), [*] Installer : Upgrade script output now have also the version number which the query belongs to // fix in generate_root_category_from_multishop --- install-new/upgrade/php/add_new_tab.php | 10 +- .../generate_root_category_for_multishop.php | 2 +- install-new/upgrade/sql/1.5.0.1.sql | 26 ++-- install-new/upgrade/upgrade.php | 146 +++++++++--------- 4 files changed, 98 insertions(+), 86 deletions(-) diff --git a/install-new/upgrade/php/add_new_tab.php b/install-new/upgrade/php/add_new_tab.php index 4fe2153db..25b3e666f 100644 --- a/install-new/upgrade/php/add_new_tab.php +++ b/install-new/upgrade/php/add_new_tab.php @@ -25,7 +25,7 @@ * International Registered Trademark & Property of PrestaShop SA */ -function add_new_tab($className, $name, $id_parent) +function add_new_tab($className, $name, $id_parent, $returnId = false) { $array = array(); foreach (explode('|', $name) AS $item) @@ -57,4 +57,10 @@ function add_new_tab($className, $name, $id_parent) FROM `'._DB_PREFIX_.'tab` WHERE `class_name` = \''.pSQL($className).'\' LIMIT 0,1 ), 1, 1, 1, 1 FROM `'._DB_PREFIX_.'profile` )'); -} \ No newline at end of file + + if($returnId) { + return (int)Db::getInstance()->getValue('SELECT `id_tab` + FROM `'._DB_PREFIX_.'tab` + WHERE `class_name` = \''.pSQL($className).'\''); + } +} diff --git a/install-new/upgrade/php/generate_root_category_for_multishop.php b/install-new/upgrade/php/generate_root_category_for_multishop.php index 3fd98b2c5..7a5b064d9 100644 --- a/install-new/upgrade/php/generate_root_category_for_multishop.php +++ b/install-new/upgrade/php/generate_root_category_for_multishop.php @@ -1,6 +1,6 @@ @@ -88,7 +88,7 @@ if (function_exists('date_default_timezone_set')) // if _PS_ROOT_DIR_ is defined, use it instead of "guessing" the module dir. if (defined('_PS_ROOT_DIR_') AND !defined('_PS_MODULE_DIR_')) define('_PS_MODULE_DIR_', _PS_ROOT_DIR_.'/modules/'); -else if (!defined('_PS_MODULE_DIR_')) +elseif (!defined('_PS_MODULE_DIR_')) define('_PS_MODULE_DIR_', _PS_INSTALL_PATH_.'/../modules/'); if(!defined('_PS_INSTALLER_PHP_UPGRADE_DIR_')) @@ -213,6 +213,10 @@ $datas = array( array('_MEDIA_SERVER_1_', defined('_MEDIA_SERVER_1_') ? _MEDIA_SERVER_1_ : ''), array('_MEDIA_SERVER_2_', defined('_MEDIA_SERVER_2_') ? _MEDIA_SERVER_2_ : ''), array('_MEDIA_SERVER_3_', defined('_MEDIA_SERVER_3_') ? _MEDIA_SERVER_3_ : ''), + // 1.4 only + // array('__PS_BASE_URI__', __PS_BASE_URI__), + // 1.4 only + // array('_THEME_NAME_', _THEME_NAME_), array('_PS_DIRECTORY_', __PS_BASE_URI__), array('_COOKIE_KEY_', _COOKIE_KEY_), array('_COOKIE_IV_', _COOKIE_IV_), @@ -228,13 +232,12 @@ if(!defined('_PS_CACHE_ENABLED_')) if(!defined('_MYSQL_ENGINE_')) define('_MYSQL_ENGINE_', 'MyISAM'); -$sqlContent = ''; if(isset($_GET['customModule']) AND $_GET['customModule'] == 'desactivate') { require_once(_PS_INSTALLER_PHP_UPGRADE_DIR_.'deactivate_custom_modules.php'); deactivate_custom_modules(); } - +$sqlContentVersion = array(); if (empty($fail_result)) foreach($neededUpgradeFiles AS $version) { @@ -244,16 +247,18 @@ if (empty($fail_result)) $logger->logError('Error while loading sql upgrade file.'); $fail_result .= ''."\n"; } - if (!$sqlContent .= file_get_contents($file)) + if (!$sqlContent = file_get_contents($file)) { $logger->logError(sprintf('Error while loading sql upgrade file %s.', $version)); $fail_result .= ''."\n"; } $sqlContent .= "\n"; + $sqlContent = str_replace(array($filePrefix, $engineType), array(_DB_PREFIX_, $mysqlEngine), $sqlContent); + $sqlContent = preg_split("/;\s*[\r\n]+/", $sqlContent); + + $sqlContentVersion[$version] = $sqlContent; } -$sqlContent = str_replace(array($filePrefix, $engineType), array(_DB_PREFIX_, $mysqlEngine), $sqlContent); -$sqlContent = preg_split("/;\s*[\r\n]+/",$sqlContent); if (empty($fail_result)) { @@ -277,79 +282,80 @@ if (empty($fail_result)) Configuration::loadConfiguration(); -if (empty($fail_result)); - foreach ($sqlContent as $query) - { - $query = trim($query); - if(!empty($query)) +if (empty($fail_result)) + foreach ($sqlContentVersion as $version => $sqlContent) + foreach ($sqlContent as $query) { - /* If php code have to be executed */ - if (strpos($query, '/* PHP:') !== false) + $query = trim($query); + if(!empty($query)) { - /* Parsing php code */ - $pos = strpos($query, '/* PHP:') + strlen('/* PHP:'); - $phpString = substr($query, $pos, strlen($query) - $pos - strlen(' */;')); - $php = explode('::', $phpString); - preg_match('/\((.*)\)/', $phpString, $pattern); - $paramsString = trim($pattern[0], '()'); - preg_match_all('/([^,]+),? ?/', $paramsString, $parameters); - if (isset($parameters[1])) - $parameters = $parameters[1]; - else - $parameters = array(); - if (is_array($parameters)) - foreach ($parameters AS &$parameter) - $parameter = str_replace('\'', '', $parameter); + /* If php code have to be executed */ + if (strpos($query, '/* PHP:') !== false) + { + /* Parsing php code */ + $pos = strpos($query, '/* PHP:') + strlen('/* PHP:'); + $phpString = substr($query, $pos, strlen($query) - $pos - strlen(' */;')); + $php = explode('::', $phpString); + preg_match('/\((.*)\)/', $phpString, $pattern); + $paramsString = trim($pattern[0], '()'); + preg_match_all('/([^,]+),? ?/', $paramsString, $parameters); + if (isset($parameters[1])) + $parameters = $parameters[1]; + else + $parameters = array(); + if (is_array($parameters)) + foreach ($parameters AS &$parameter) + $parameter = str_replace('\'', '', $parameter); - /* Call a simple function */ - if (strpos($phpString, '::') === false) - { - $func_name = str_replace($pattern[0], '', $php[0]); - require_once(_PS_INSTALLER_PHP_UPGRADE_DIR_.$func_name.'.php'); - $phpRes = call_user_func_array($func_name, $parameters); + /* Call a simple function */ + if (strpos($phpString, '::') === false) + { + $func_name = str_replace($pattern[0], '', $php[0]); + require_once(_PS_INSTALLER_PHP_UPGRADE_DIR_.$func_name.'.php'); + $phpRes = call_user_func_array($func_name, $parameters); + } + /* Or an object method */ + else + { + $func_name = array($php[0], str_replace($pattern[0], '', $php[1])); + $phpRes = call_user_func_array($func_name, $parameters); + } + if ((is_array($phpRes) AND !empty($phpRes['error'])) OR $phpRes === false ) + { + $logger->logError('PHP error: '.$query."\r\n".(empty($phpRes['msg'])?'':' - '.$phpRes['msg'])); + $logger->logError(empty($phpRes['error'])?'':$phpRes['error']); + $requests .= + ' + + + + '."\n"; + } + else + $requests .= + ' + + '."\n"; } - /* Or an object method */ - else + elseif(!Db::getInstance()->execute($query)) { - $func_name = array($php[0], str_replace($pattern[0], '', $php[1])); - $phpRes = call_user_func_array($func_name, $parameters); - } - if ((is_array($phpRes) AND !empty($phpRes['error'])) OR $phpRes === false ) - { - $logger->logError('PHP error: '.$query."\r\n".(empty($phpRes['msg'])?'':' - '.$phpRes['msg'])); - $logger->logError(empty($phpRes['error'])?'':$phpRes['error']); - $requests .= - ' - - - - '."\n"; - } - else - $requests .= - ' - - '."\n"; - } - elseif(!Db::getInstance()->execute($query)) - { - $logger->logError('SQL query: '."\r\n".$query); - $logger->logError('SQL error: '."\r\n".Db::getInstance()->getMsgError()); - $warningExist = true; - $requests .= - ' - - getMsgError()).']]> + $logger->logError('SQL query: '."\r\n".$query); + $logger->logError('SQL error: '."\r\n".Db::getInstance()->getMsgError()); + $warningExist = true; + $requests .= ' + + + getMsgError()).']]> getNumberError()).']]> '."\n"; - } - else - $requests .= - ' + } + else + $requests .=' + '."\n"; + } } - } // Settings updated, compile and cache directories must be emptied $arrayToClean = array(