Полезные решения, шпаргалки и примеры по html, css, js, jQuery, MySQL, PHP, HostCMS, ssh.
Есть странность, при копировании интернет-магазина в HostCMS, происходит только копирование его настроек, доставок, платежных систем, цен итд, но не его групп и товаров, так что для этого мы можем использовать следующий код:
<?php
$oShopOne = Core_Entity::factory('Shop', 1); // магазин откуда копируем
$oShopTwo = Core_Entity::factory('Shop', 2); // магазин куда копируем
$oShop_Groups = $oShopOne->Shop_Groups;
$oShop_Groups->queryBuilder()->where('parent_id','=',0); // выбираем все группы из корня
$aShop_Groups = $oShop_Groups->findAll(FALSE);
Core_Event::attach('shop_group.onBeforeCopy', array('Shop_Copy_Observer', 'onBeforeCopy'));
Core_Event::attach('shop_item.onBeforeCopy', array('Shop_Copy_Observer', 'onBeforeCopy'));
foreach($aShop_Groups as $oShop_Group)
{
$oShop_Group->copy();
}
$oShopTwo->recount(); // пересчитываем магазин
class Shop_Copy_Observer
{
public static function onBeforeCopy($newObject, $athis)
{
$newObject->shop_id = 2; // ID магазина куда копируем
}
}
?>