Копия ресурса - небольшой плагин.
        Иногда возникает необходимость при копировании ресурса, присвоить дублю какие то свойства оригинала 
из таблиц сторонних компонентов. Это достаточно просто сделать плагином на событие OnResourceDuplicate.
Под катом пример плагина для импорта опций пакета msOptionsColor
    
    
                                                        из таблиц сторонних компонентов. Это достаточно просто сделать плагином на событие OnResourceDuplicate.
Под катом пример плагина для импорта опций пакета msOptionsColor
<?php
if ($modx->event->name != 'OnResourceDuplicate') {
    return;
}
$msoptionscolor = $modx->getService('msoptionscolor', 'msoptionscolor',
    $modx->getOption('msoptionscolor_core_path', null,
        $modx->getOption('core_path') . 'components/msoptionscolor/') . 'model/msoptionscolor/', $scriptProperties);
if (!($msoptionscolor instanceof msoptionscolor)) {
    return '';
}
/** @var modResource $newResource */
/** @var modResource $oldResource */
$newResource = $modx->getOption('newResource', $scriptProperties, null, true);
$oldResource = $modx->getOption('oldResource', $scriptProperties, null, true);
$class = 'msopColor';
$q = $modx->newQuery($class);
$q->where(array('product_id' => $oldResource->get('id')));
/** @var  xPDOObject|$color */
foreach ($modx->getIterator($class, $q) as $color) {
    /** @var xPDOObject $o */
    $o = $modx->newObject($class);
    $o->fromArray($color->toArray(), '');
    $o->set('product_id', $newResource->get('id'));
    $o->save();
}В плагине доступен оригинал и дубликат. Надо всего лишь получить опции цвета оригинала и создать аналогичные объекты, заменив идентификатор продукта на идентификатор дубликата.    
            
                Поблагодарить автора            
            
                 Отправить деньги            
        
        
            
        0