// Add hooks for shop duplication, fix homeslider duplication #PSTEST-1173

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@14864 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
rMalie
2012-04-25 09:04:38 +00:00
parent f73397db89
commit 64b83ee40e
4 changed files with 29 additions and 7 deletions
+10 -4
View File
@@ -796,11 +796,17 @@ class ShopCore extends ObjectModel
Db::getInstance()->execute($sql);
}
}
/*else
{
Db::getInstance()->execute('UPDATE `'._DB_PREFIX_.$table_name.'` SET WHERE `'.$id.'`='.(int)$old_id);
}*/
}
// Hook for duplication of shop data
$modules_list = Hook::getHookModuleExecList('actionShopDataDuplication');
if (is_array($modules_list) && count($modules_list) > 0)
foreach ($modules_list as $m)
if (!$tables_import || isset($tables_import['Module'.ucfirst($m['module'])]))
Hook::exec('actionShopDataDuplication', array(
'old_id_shop' => (int)$old_id,
'new_id_shop' => (int)$this->id,
), $m['id_module']);
}
public function checkIfShopExist($id)
@@ -405,6 +405,12 @@ class AdminShopControllerCore extends AdminController
'warehouse' => $this->l('Warehouse'),
);
// Hook for duplication of shop data
$modules_list = Hook::getHookModuleExecList('actionShopDataDuplication');
if (is_array($modules_list) && count($modules_list) > 0)
foreach ($modules_list as $m)
$import_data['Module'.ucfirst($m['module'])] = Module::getModuleName($m['module']);
if (!$this->object->id)
$this->fields_import_form = array(
'radio' => array(
+1 -1
View File
@@ -98,7 +98,6 @@ INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VAL
INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VALUES ((SELECT id_hook FROM `PREFIX_hook` WHERE name = 'displayHeader'), (SELECT id_module FROM `PREFIX_module` WHERE name = 'blockcart'), 5);
INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VALUES ((SELECT id_hook FROM `PREFIX_hook` WHERE name = 'displayHeader'), (SELECT id_module FROM `PREFIX_module` WHERE name = 'blocksocial'), 5);
INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VALUES ((SELECT id_hook FROM `PREFIX_hook` WHERE name = 'displayHeader'), (SELECT id_module FROM `PREFIX_module` WHERE name = 'blockmyaccount'), 6);
INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VALUES ((SELECT id_hook FROM `PREFIX_hook` WHERE name = 'displayHeader'), (SELECT id_module FROM `PREFIX_module` WHERE name = 'homeslider'), 7);
INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VALUES ((SELECT id_hook FROM `PREFIX_hook` WHERE name = 'displayHeader'), (SELECT id_module FROM `PREFIX_module` WHERE name = 'blockcategories'), 9);
INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VALUES ((SELECT id_hook FROM `PREFIX_hook` WHERE name = 'displayHeader'), (SELECT id_module FROM `PREFIX_module` WHERE name = 'blockspecials'), 10);
INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VALUES ((SELECT id_hook FROM `PREFIX_hook` WHERE name = 'displayHeader'), (SELECT id_module FROM `PREFIX_module` WHERE name = 'blockcurrencies'), 11);
@@ -120,6 +119,7 @@ INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VAL
INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VALUES ((SELECT id_hook FROM `PREFIX_hook` WHERE name = 'displayHeader'), (SELECT id_module FROM `PREFIX_module` WHERE name = 'blocksupplier'), 25);
INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VALUES ((SELECT id_hook FROM `PREFIX_hook` WHERE name = 'displayHeader'), (SELECT id_module FROM `PREFIX_module` WHERE name = 'feeder'), 26);
INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VALUES ((SELECT id_hook FROM `PREFIX_hook` WHERE name = 'actionAuthentication'), (SELECT id_module FROM `PREFIX_module` WHERE name = 'statsdata'), 1);
INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VALUES ((SELECT id_hook FROM `PREFIX_hook` WHERE name = 'actionShopDataDuplication'), (SELECT id_module FROM `PREFIX_module` WHERE name = 'homeslider'), 1);
INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VALUES ((SELECT id_hook FROM `PREFIX_hook` WHERE name = 'displayTop'), (SELECT id_module FROM `PREFIX_module` WHERE name = 'blocklanguages'), 1);
INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VALUES ((SELECT id_hook FROM `PREFIX_hook` WHERE name = 'displayTop'), (SELECT id_module FROM `PREFIX_module` WHERE name = 'blockcurrencies'), 2);
INSERT IGNORE INTO `PREFIX_hook_module` (`id_hook`, `id_module`, `position`) VALUES ((SELECT id_hook FROM `PREFIX_hook` WHERE name = 'displayTop'), (SELECT id_module FROM `PREFIX_module` WHERE name = 'blockpermanentlinks'), 3);
+12 -2
View File
@@ -60,7 +60,7 @@ class HomeSlider extends Module
public function install()
{
/* Adds Module */
if (parent::install() && $this->registerHook('displayHome'))
if (parent::install() && $this->registerHook('displayHome') && $this->registerHook('actionShopDataDuplication'))
{
/* Sets up configuration */
$res = Configuration::updateValue('HOMESLIDER_WIDTH', '535');
@@ -109,7 +109,7 @@ class HomeSlider extends Module
public function uninstall()
{
/* Deletes Module */
if (parent::uninstall() && $this->unregisterHook('displayHome'))
if (parent::uninstall() && $this->unregisterHook('displayHome') && $this->unregisterHook('actionShopDataDuplication'))
{
/* Deletes tables */
$res = $this->deleteTables();
@@ -661,6 +661,16 @@ class HomeSlider extends Module
return $this->display(__FILE__, 'homemobileslider.tpl');
}
public function hookActionShopDataDuplication($params)
{
Db::getInstance()->execute('
INSERT INTO '._DB_PREFIX_.'homeslider (id_homeslider_slides, id_shop)
SELECT id_homeslider_slides, '.(int)$params['new_id_shop'].'
FROM '._DB_PREFIX_.'homeslider
WHERE id_shop = '.(int)$params['old_id_shop'].'
');
}
public function headerHTML()
{
if (Tools::getValue('controller') != 'AdminModules' && Tools::getValue('configure') != $this->name)