// fix live_edit when not using multishop

This commit is contained in:
mMarinetti
2011-12-05 13:53:50 +00:00
parent 6fcf1462ac
commit f820b60c3d
+34 -27
View File
@@ -621,42 +621,49 @@ if (Tools::isSubmit('saveHook'))
/* PrestaShop demo mode */ /* PrestaShop demo mode */
if (_PS_MODE_DEMO_) if (_PS_MODE_DEMO_)
die('{"hasError" : true, "errors" : ["Live Edit : This functionnality has been disabled"]}'); die('{"hasError" : true, "errors" : ["Live Edit : This functionnality has been disabled"]}');
/* PrestaShop demo mode*/
$hooks_list = explode(',', Tools::getValue('hooks_list')); $hooks_list = explode(',', Tools::getValue('hooks_list'));
$id_shop = (int)Tools::getValue('id_shop'); $id_shop = (int)Tools::getValue('id_shop');
if ($id_shop) if (!$id_shop)
$id_shop = Context::getContext()->shop->getId(true);
$res = true;
$hookableList = array();
foreach ($hooks_list as $hook)
{ {
$hookableList = array(); $hook = trim($hook);
foreach ($hooks_list as $hook) if (!$hook)
continue;
$sql = 'DELETE FROM '._DB_PREFIX_.'hook_module
WHERE id_hook = ( SELECT id_hook
FROM '._DB_PREFIX_.'hook
WHERE `name` = \''.pSQL($hook).'\' LIMIT 1
)
AND id_shop = '.$id_shop;
$res &= Db::getInstance()->execute($sql);
$hookedModules = explode(',', Tools::getValue($hook));
$i = 1;
$value = '';
$ids = array();
foreach ($hookedModules as $module)
{ {
$hook = trim($hook); $id = explode('_', $module);
if (!$hook) if (!in_array($id[1], $ids))
continue;
$sql = 'DELETE FROM '._DB_PREFIX_.'hook_module
WHERE id_hook = (SELECT id_hook FROM '._DB_PREFIX_.'hook WHERE `name` = \''.pSQL($hook).'\' LIMIT 1)
AND id_shop = '.$id_shop;
Db::getInstance()->execute($sql);
$hookedModules = explode(',', Tools::getValue($hook));
$i = 1;
$value = '';
$ids = array();
foreach ($hookedModules as $module)
{ {
$id = explode('_', $module); $ids[] = $id[1];
if (!in_array($id[1], $ids)) $value .= '('.(int)$id[1].', '.$id_shop.', (SELECT id_hook FROM `'._DB_PREFIX_.'hook` WHERE `name` = \''.pSQL($hook).'\' LIMIT 0, 1), '.$i.'),';
{
$ids[] = $id[1];
$value .= '('.(int)$id[1].', (SELECT id_hook FROM `'._DB_PREFIX_.'hook` WHERE `name` = \''.pSQL($hook).'\' LIMIT 0, 1), '.(int)$i.'),';
}
$i++;
} }
$value = rtrim($value, ','); $i++;
Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'hook_module (id_module, id_shop, id_hook, position) VALUES '.$value);
} }
$value = rtrim($value, ',');
$res &= Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'hook_module (id_module, id_shop, id_hook, position) VALUES '.$value);
} }
if ($res)
$hasError = true;
else
$hasError = false;
die('{"hasError" : false, "errors" : ""}'); die('{"hasError" : false, "errors" : ""}');
} }