本文整理汇总了PHP中ShopGroup::haveShops方法的典型用法代码示例。如果您正苦于以下问题:PHP ShopGroup::haveShops方法的具体用法?PHP ShopGroup::haveShops怎么用?PHP ShopGroup::haveShops使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ShopGroup
的用法示例。
在下文中一共展示了ShopGroup::haveShops方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: copyShopData
public function copyShopData($old_id, $tables_import = false, $deleted = false)
{
// If we duplicate some specific data, automatically duplicate other data linked to the first
// E.g. if carriers are duplicated for the shop, duplicate carriers langs too
if (!$old_id) {
$old_id = Configuration::get('PS_SHOP_DEFAULT');
}
if (isset($tables_import['carrier'])) {
$tables_import['carrier_tax_rules_group_shop'] = true;
$tables_import['carrier_lang'] = true;
}
$tables_import['category_lang'] = true;
if (isset($tables_import['product'])) {
$tables_import['product_lang'] = true;
}
if (isset($tables_import['module'])) {
$tables_import['module_currency'] = true;
$tables_import['module_country'] = true;
$tables_import['module_group'] = true;
}
if (isset($tables_import['hook_module'])) {
$tables_import['hook_module_exceptions'] = true;
}
if (isset($tables_import['attribute_group'])) {
$tables_import['attribute'] = true;
}
// Browse and duplicate data
foreach (Shop::getAssoTables() as $table_name => $row) {
if ($tables_import && !isset($tables_import[$table_name])) {
continue;
}
// Special case for stock_available if current shop is in a share stock group
if ($table_name == 'stock_available') {
$group = new ShopGroup($this->id_shop_group);
if ($group->share_stock && $group->haveShops()) {
continue;
}
}
$id = 'id_' . $row['type'];
if ($row['type'] == 'fk_shop') {
$id = 'id_shop';
} else {
$table_name .= '_' . $row['type'];
}
if (!$deleted) {
$res = Db::getInstance()->getRow('SELECT * FROM `' . _DB_PREFIX_ . $table_name . '` WHERE `' . $id . '` = ' . (int) $old_id);
if ($res) {
unset($res[$id]);
if (isset($row['primary'])) {
unset($res[$row['primary']]);
}
$categories = Tools::getValue('categoryBox');
if ($table_name == 'product_shop' && count($categories) == 1) {
unset($res['id_category_default']);
$keys = implode('`, `', array_keys($res));
$sql = 'INSERT IGNORE INTO `' . _DB_PREFIX_ . $table_name . '` (`' . $keys . '`, `id_category_default`, ' . $id . ')
(SELECT `' . $keys . '`, ' . (int) $categories[0] . ', ' . (int) $this->id . ' FROM ' . _DB_PREFIX_ . $table_name . '
WHERE `' . $id . '` = ' . (int) $old_id . ')';
} else {
$keys = implode('`, `', array_keys($res));
$sql = 'INSERT IGNORE INTO `' . _DB_PREFIX_ . $table_name . '` (`' . $keys . '`, ' . $id . ')
(SELECT `' . $keys . '`, ' . (int) $this->id . ' FROM ' . _DB_PREFIX_ . $table_name . '
WHERE `' . $id . '` = ' . (int) $old_id . ')';
}
Db::getInstance()->execute($sql);
}
}
}
// 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']);
}
}
}
}