Пропишем следующий код PHP:


<?php
/*
Сниппет записывает в базу данных значения полей формы создания нового ресурса из фронтенда
Источник   Любимцева Ольга
https://webhow.ru/modx-revolution/modxadd/modx-revolution-sozdanie-resursov-i-zagruzka-fajjl.html

в создании ресурса участвуют два сниппета 
formit2file -       загрузка файлов изображений
formit2resource     записывает в базу данных значения полей формы создания нового ресурса из фронтенда

использование

[ [!FormIt?
    &hooks=`formit2file,formit2resource,redirect`
    &redirectTo=`ID страницы с сообщением о создании ресурса`
    &template=`ID шаблона ресурса` 
] ]


$allFormFields = $hook->getValues();  получаем из формы массив значений
в том числе и значение  pagetitle 



массив $fields 
*/



$resid = $hook->getValue('resource_id');
$modx->log(3, 'resid ='.$resid);

$doc = $modx->getObject('modResource',array('id'=>$hook->getValue('resource_id')));
 
// ресурс еще не сохранен
 
if (empty($doc)){
    $doc = $modx->newObject('modResource');
    $doc->set('createdby', $modx->user->get('id'));
    }
    else{
        $doc->set('editedby', $modx->user->get('id'));
    }
    
//Создаем массив полей формы $allFormFields и можем по названию получить значение из этого массива 
//и в цикле присваиваем значения полям ресурса
$mass="";
$allFormFields = $hook->getValues();
$colelem= count($allFormFields);  // элементов масива count($resources)
    foreach ($allFormFields as $field=>$value)
        {
           if ($field !== 'spam' && $field !== 'resource_id')
               {
                     $doc->set($field, $value);
                     $mass=$mass.' field='.$field.' value- '.$value.', 
'; } } /* Создаем алиас ресурса начало */ $alias = $doc->cleanAlias($fields['pagetitle']); if($modx->getCount(modResource, array('alias'=>$alias))!= 0) { $count = 1; $newAlias = $alias; while($modx->getCount(modResource, array('alias'=>$newAlias))!= 0) { $newAlias = $alias; $newAlias .= '-' . $count; $count++; } $alias = $newAlias; } $doc->set('alias',$alias); $doc->set('template', $template); $doc->save(); /* Создаем алиас ресурса начало конец */ /* Заполняем и сохраняем дополя */ foreach ($allFormFields as $field=>$value) { if (!empty($value) && $tv = $modx->getObject('modTemplateVar', array ('name'=>$field))) { /* handles checkboxes & multiple selects elements */ if (is_array($value)) { $featureInsert = array(); while (list($featureValue, $featureItem) = each($value)) { $featureInsert[count($featureInsert)] = $featureItem; } $value = implode('||',$featureInsert); } $tv->setValue($doc->get('id'), $value); $tv->save(); } } //Ресурс полностью сохранен и можно дополнять данными //$img = $allFormFields['img']; //$foto1 = $allFormFields['foto1']; $mbidres=$doc->get('id'); $modx->log(3, 'может быть resid ='.$resid); //$doc->setTVValue('resid',$mbidres);//********присваиваем значение TV************// //$doc->setTVValue('img',$img);//********присваиваем значение TV************// //$doc->setTVValue('foto1',$foto1);//********присваиваем значение TV************// //$modx->log(3, $mass); //$doc->set('introtext', 'элементов '.$mass); $doc->save(); $modx->cacheManager->refresh(); return true;