// 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
This commit is contained in:
mMarinetti committed 2012-01-24 14:43:09 +00:00
1 parent f38774f1b9
commit 419816361e
4 files changed
+97 -85

No files matched your search

+7 -1
View File
@@ -25,7 +25,7 @@
* International Registered Trademark & Property of PrestaShop SA * 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(); $array = array();
foreach (explode('|', $name) AS $item) foreach (explode('|', $name) AS $item)
@@ -57,4 +57,10 @@ function add_new_tab($className, $name, $id_parent)
FROM `'._DB_PREFIX_.'tab` FROM `'._DB_PREFIX_.'tab`
WHERE `class_name` = \''.pSQL($className).'\' LIMIT 0,1 WHERE `class_name` = \''.pSQL($className).'\' LIMIT 0,1
), 1, 1, 1, 1 FROM `'._DB_PREFIX_.'profile` )'); ), 1, 1, 1, 1 FROM `'._DB_PREFIX_.'profile` )');
if($returnId) {
return (int)Db::getInstance()->getValue('SELECT `id_tab`
FROM `'._DB_PREFIX_.'tab`
WHERE `class_name` = \''.pSQL($className).'\'');
}
} }
@@ -1,6 +1,6 @@
<?php <?php
require_once('./generate_ntree.php'); require_once('generate_ntree.php');
function generate_root_category_for_multishop() function generate_root_category_for_multishop()
{ {
+13 -13
View File
@@ -33,19 +33,19 @@ CREATE TABLE IF NOT EXISTS `PREFIX_accounting_product_zone_shop` (
/* PHP:add_accounting_tab(); */; /* PHP:add_accounting_tab(); */;
-- INSERT INTO `PREFIX_module_access` (`id_profile`, `id_module`, `configure`, `view`) ( INSERT INTO `PREFIX_module_access` (`id_profile`, `id_module`, `configure`, `view`) (
-- SELECT `id_profile`, `id_module`, 0, 1 SELECT `id_profile`, `id_module`, 0, 1
-- FROM `PREFIX_access` a, PREFIX_module m FROM `PREFIX_access` a, PREFIX_module m
-- WHERE `id_tab` = (SELECT `id_tab` FROM `PREFIX_tab` WHERE `class_name` = 'AdminModules' LIMIT 1) WHERE `id_tab` = (SELECT `id_tab` FROM `PREFIX_tab` WHERE `class_name` != "" LIMIT 1)
-- AND a.`view` = 0 AND a.`view` = 0
-- ); );
--
-- INSERT INTO `PREFIX_module_access` (`id_profile`, `id_module`, `configure`, `view`) ( INSERT INTO `PREFIX_module_access` (`id_profile`, `id_module`, `configure`, `view`) (
-- SELECT `id_profile`, `id_module`, 1, 1 SELECT `id_profile`, `id_module`, 1, 1
-- FROM `PREFIX_access` a, PREFIX_module m FROM `PREFIX_access` a, PREFIX_module m
-- WHERE `id_tab` = (SELECT `id_tab` FROM `PREFIX_tab` WHERE `class_name` = 'AdminModules' LIMIT 1) WHERE `id_tab` = (SELECT `id_tab` FROM `PREFIX_tab` WHERE `class_name` != "" LIMIT 1)
-- AND a.`view` = 1 AND a.`view` = 1
-- ); );
UPDATE `PREFIX_tab` SET `class_name` = 'AdminThemes' WHERE `class_name` = 'AdminAppearance'; UPDATE `PREFIX_tab` SET `class_name` = 'AdminThemes' WHERE `class_name` = 'AdminAppearance';
+76 -70
View File
@@ -15,7 +15,7 @@
* DISCLAIMER * DISCLAIMER
* *
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your * /ersions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information. * needs please refer to http://www.prestashop.com for more information.
* *
* @author PrestaShop SA <contact@prestashop.com> * @author PrestaShop SA <contact@prestashop.com>
@@ -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 _PS_ROOT_DIR_ is defined, use it instead of "guessing" the module dir.
if (defined('_PS_ROOT_DIR_') AND !defined('_PS_MODULE_DIR_')) if (defined('_PS_ROOT_DIR_') AND !defined('_PS_MODULE_DIR_'))
define('_PS_MODULE_DIR_', _PS_ROOT_DIR_.'/modules/'); 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/'); define('_PS_MODULE_DIR_', _PS_INSTALL_PATH_.'/../modules/');
if(!defined('_PS_INSTALLER_PHP_UPGRADE_DIR_')) 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_1_', defined('_MEDIA_SERVER_1_') ? _MEDIA_SERVER_1_ : ''),
array('_MEDIA_SERVER_2_', defined('_MEDIA_SERVER_2_') ? _MEDIA_SERVER_2_ : ''), array('_MEDIA_SERVER_2_', defined('_MEDIA_SERVER_2_') ? _MEDIA_SERVER_2_ : ''),
array('_MEDIA_SERVER_3_', defined('_MEDIA_SERVER_3_') ? _MEDIA_SERVER_3_ : ''), 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('_PS_DIRECTORY_', __PS_BASE_URI__),
array('_COOKIE_KEY_', _COOKIE_KEY_), array('_COOKIE_KEY_', _COOKIE_KEY_),
array('_COOKIE_IV_', _COOKIE_IV_), array('_COOKIE_IV_', _COOKIE_IV_),
@@ -228,13 +232,12 @@ if(!defined('_PS_CACHE_ENABLED_'))
if(!defined('_MYSQL_ENGINE_')) if(!defined('_MYSQL_ENGINE_'))
define('_MYSQL_ENGINE_', 'MyISAM'); define('_MYSQL_ENGINE_', 'MyISAM');
$sqlContent = '';
if(isset($_GET['customModule']) AND $_GET['customModule'] == 'desactivate') if(isset($_GET['customModule']) AND $_GET['customModule'] == 'desactivate')
{ {
require_once(_PS_INSTALLER_PHP_UPGRADE_DIR_.'deactivate_custom_modules.php'); require_once(_PS_INSTALLER_PHP_UPGRADE_DIR_.'deactivate_custom_modules.php');
deactivate_custom_modules(); deactivate_custom_modules();
} }
$sqlContentVersion = array();
if (empty($fail_result)) if (empty($fail_result))
foreach($neededUpgradeFiles AS $version) foreach($neededUpgradeFiles AS $version)
{ {
@@ -244,16 +247,18 @@ if (empty($fail_result))
$logger->logError('Error while loading sql upgrade file.'); $logger->logError('Error while loading sql upgrade file.');
$fail_result .= '<action result="fail" error="33" />'."\n"; $fail_result .= '<action result="fail" error="33" />'."\n";
} }
if (!$sqlContent .= file_get_contents($file)) if (!$sqlContent = file_get_contents($file))
{ {
$logger->logError(sprintf('Error while loading sql upgrade file %s.', $version)); $logger->logError(sprintf('Error while loading sql upgrade file %s.', $version));
$fail_result .= '<action result="fail" error="33" />'."\n"; $fail_result .= '<action result="fail" error="33" />'."\n";
} }
$sqlContent .= "\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)) if (empty($fail_result))
{ {
@@ -277,79 +282,80 @@ if (empty($fail_result))
Configuration::loadConfiguration(); Configuration::loadConfiguration();
if (empty($fail_result)); if (empty($fail_result))
foreach ($sqlContent as $query) foreach ($sqlContentVersion as $version => $sqlContent)
{ foreach ($sqlContent as $query)
$query = trim($query);
if(!empty($query))
{ {
/* If php code have to be executed */ $query = trim($query);
if (strpos($query, '/* PHP:') !== false) if(!empty($query))
{ {
/* Parsing php code */ /* If php code have to be executed */
$pos = strpos($query, '/* PHP:') + strlen('/* PHP:'); if (strpos($query, '/* PHP:') !== false)
$phpString = substr($query, $pos, strlen($query) - $pos - strlen(' */;')); {
$php = explode('::', $phpString); /* Parsing php code */
preg_match('/\((.*)\)/', $phpString, $pattern); $pos = strpos($query, '/* PHP:') + strlen('/* PHP:');
$paramsString = trim($pattern[0], '()'); $phpString = substr($query, $pos, strlen($query) - $pos - strlen(' */;'));
preg_match_all('/([^,]+),? ?/', $paramsString, $parameters); $php = explode('::', $phpString);
if (isset($parameters[1])) preg_match('/\((.*)\)/', $phpString, $pattern);
$parameters = $parameters[1]; $paramsString = trim($pattern[0], '()');
else preg_match_all('/([^,]+),? ?/', $paramsString, $parameters);
$parameters = array(); if (isset($parameters[1]))
if (is_array($parameters)) $parameters = $parameters[1];
foreach ($parameters AS &$parameter) else
$parameter = str_replace('\'', '', $parameter); $parameters = array();
if (is_array($parameters))
foreach ($parameters AS &$parameter)
$parameter = str_replace('\'', '', $parameter);
/* Call a simple function */ /* Call a simple function */
if (strpos($phpString, '::') === false) if (strpos($phpString, '::') === false)
{ {
$func_name = str_replace($pattern[0], '', $php[0]); $func_name = str_replace($pattern[0], '', $php[0]);
require_once(_PS_INSTALLER_PHP_UPGRADE_DIR_.$func_name.'.php'); require_once(_PS_INSTALLER_PHP_UPGRADE_DIR_.$func_name.'.php');
$phpRes = call_user_func_array($func_name, $parameters); $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 .=
' <request result="fail" sqlfile="'.$version.'">
<sqlQuery><![CDATA['.htmlentities($query).']]></sqlQuery>
<phpMsgError><![CDATA['.(empty($phpRes['msg'])?'':$phpRes['msg']).']]></phpMsgError>
<phpNumberError><![CDATA['.(empty($phpRes['error'])?'':$phpRes['error']).']]></phpNumberError>
</request>'."\n";
}
else
$requests .=
' <request result="ok" sqlfile="'.$version.'">
<sqlQuery><![CDATA['.htmlentities($query).']]></sqlQuery>
</request>'."\n";
} }
/* Or an object method */ elseif(!Db::getInstance()->execute($query))
else
{ {
$func_name = array($php[0], str_replace($pattern[0], '', $php[1])); $logger->logError('SQL query: '."\r\n".$query);
$phpRes = call_user_func_array($func_name, $parameters); $logger->logError('SQL error: '."\r\n".Db::getInstance()->getMsgError());
} $warningExist = true;
if ((is_array($phpRes) AND !empty($phpRes['error'])) OR $phpRes === false ) $requests .= '
{ <request result="fail" sqlfile="'.$version.'" >
$logger->logError('PHP error: '.$query."\r\n".(empty($phpRes['msg'])?'':' - '.$phpRes['msg'])); <sqlQuery><![CDATA['.htmlentities($query).']]></sqlQuery>
$logger->logError(empty($phpRes['error'])?'':$phpRes['error']); <sqlMsgError><![CDATA['.htmlentities(Db::getInstance()->getMsgError()).']]></sqlMsgError>
$requests .=
' <request result="fail">
<sqlQuery><![CDATA['.htmlentities($query).']]></sqlQuery>
<phpMsgError><![CDATA['.(empty($phpRes['msg'])?'':$phpRes['msg']).']]></sqlMsgError>
<phpNumberError><![CDATA['.(empty($phpRes['error'])?'':$phpRes['error']).']]></sqlNumberError>
</request>'."\n";
}
else
$requests .=
' <request result="ok">
<sqlQuery><![CDATA['.htmlentities($query).']]></sqlQuery>
</request>'."\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 .=
' <request result="fail">
<sqlQuery><![CDATA['.htmlentities($query).']]></sqlQuery>
<sqlMsgError><![CDATA['.htmlentities(Db::getInstance()->getMsgError()).']]></sqlMsgError>
<sqlNumberError><![CDATA['.htmlentities(Db::getInstance()->getNumberError()).']]></sqlNumberError> <sqlNumberError><![CDATA['.htmlentities(Db::getInstance()->getNumberError()).']]></sqlNumberError>
</request>'."\n"; </request>'."\n";
} }
else else
$requests .= $requests .='
' <request result="ok"> <request result="ok" sqlfile="'.$version.'">
<sqlQuery><![CDATA['.htmlentities($query).']]></sqlQuery> <sqlQuery><![CDATA['.htmlentities($query).']]></sqlQuery>
</request>'."\n"; </request>'."\n";
}
} }
}
// Settings updated, compile and cache directories must be emptied // Settings updated, compile and cache directories must be emptied
$arrayToClean = array( $arrayToClean = array(