Группы ресурсов в MODx Revolution, Api

Создадим группу ресурсов

// добавляем новый объект
$group = $modx->newObject('modResourceGroup');
//выставляем основные параметры
$data = array('name'=>'Моя группа','private_memgroup'=>0,'private_webgroup'=>0);
//получаем данные из массива
$group->fromArray($data);
// сохраняем
$group->save();

Добавим в эту группу ресурсов ресурс под номером 1

// получаем группу ресурсов с названием "Моя группа"
$group = $modx->getObject('modResourceGroup', array('name' => 'Моя группа'));
// создаем новый объект 
$doc = $modx->newObject('modResourceGroupResource');
// определяем и записываем номер группы ресурсов
$doc->set('document_group',$group->id);
// записываем ресурс под номером 1
$doc->set('document',1);
// сохраняем
$doc->save();

Создадим новую группу ресурсов и перенесем ресурс под номером 1 во 2 группу ресурсов

// номер ресурса
$docId='1';
// номер группы ресурса
$newGroup='2';
//получаем ресурс с номером 1
$resource = $modx->getObject('modResource', $docId);
// связываем связи объектов
$resGroups = $resource->getOne('ResourceGroupResources');
// изменяем номер группы
$resGroups->set('document_group', $newGroup);
// сохраняем
$resGroups->save();    

Получим названия групп ресурсов у которых есть ресурс под номером 1

$docId='1';
//получаем ресурс с номером 1
$resource = $modx->getObject('modResource', $docId);
// связываем связи объектов
$resGroups = $resource->getMany('ResourceGroupResources');
// выводим в цикле имена групп
foreach ($resGroups as $group) {
  $groupObj = $group->getOne('ResourceGroup');
  echo $groupObj->get('name');
}

Удалим группу ресурсов "Моя группа"

$group = $modx->getObject('modResourceGroup', array('name' => 'Моя группа'));
$gr = $modx->getObject('modResourceGroup', $group->id);
$gr->remove();