Цитата:
а картинки кто будет переносить?
Тут начальных условий не хватает:
пуста ли 2-я инфосистема ?
нужно переносить эл-ты из всех групп, или только из некоторых
есть ли вообще картинки у инфоэлементов?
Ответ на поставленный вопрос при нач.условиях (да, да, нет) тривиален.
Для нач. условий (да, да,, да) - перемещаем все подкаталоги из /upload/information_system_OLD/ в /upload/information_system_NEW/ - тоже тривиально.
Самое сложное для начальных условий (нет, *, *) - в этом случае без кода не обойтись:
<?php
$newInformationsystemId = 2;
$groupsFromTo = array(
array(1, 2, 3),
// из групп с ID в верхней строке будем копировать ИЭ
// в соответствующие группы в нижней строке
array(10, 20, 30)
);
// Хук, подключаемый к событию Core_Entity.onBeforeCopy для замены в
// клонированном элементе ID инфосистемы и ID группы на новые
function hook($object, $args)
{
global $newInformationsystemId, $groupsFromTo;
$oItemOld = $args[0];
$oItemNew = $object;
// Можем копировать ИЭ как в ту-же самую ИС, так и в другую
if (!is_null($newInformationsystemId))
{
$oItemNew->informationsystem_id = $newInformationsystemId;
}
// Ищем по таблице ID новой группы
$oldGroupId = $oItemOld->informationsystem_group_id;
$newGroupId = $groupsFromTo[1][array_search($oldGroupId, $groupsFromTo[0])];
$oItemNew->informationsystem_group_id = $newGroupId;
}
$oItems = Core_Entity::factory('Informationsystem_Item');
$oItems->QueryBuilder()->where('informationsystem_group_id', 'IN', $groupsFromTo[0]);
$aItems = $oItems->findAll();
Core_Event::attach('Core_Entity.onBeforeCopy', 'hook');
foreach ($aItems as $oItem)
{
// При копировании явно запрещаем изменение имени ИЭ
$oItem->changeCopiedName(FALSE)->copy();
}
Core_Event::detach('Core_Entity.onBeforeCopy', 'hook');
Наскоро набросал, не проверял, возможно требуется отладка