MODX Revo - cоздание ресурсов из фронтэнд

Дорогие друзья, здравствуйте, очень надеюсь на вашу поддержку, разрешить на первый взгляд вроде бы простую задачу. Для информации: новичек в MODX, на данный момент работаю с MODX Revolution 2.3.2-pl (traditional). Ситуация такая, стараюсь реализовать функционал, добавления ресурсов пользователями из фронтэнд НЕОГРАНИЧЕННОЙ ВЛОЖЕННОСТИ. Что бы они сами могли создавать ресурс, и в него добавлять другие ресурсы, и так далее. Нашел сниппет в сети formit2resource и использую его в связке с FormIt. Все вроде хорошо, но только до 2 уровня вложенности. Например: РЕСУРС ОТЕЦ Ресурс пользователя 1 Ресурс пользователя 1 Ресурс пользователя 2 Ресурс пользователя 2 И если попробовать добавить подресурс для ресурса 2 уровня, то он его просто перепишет и ничего не вложит. Как решить эту проблему? Как лучше сделать? Куда копать? Вот вызов формит: [[!FormIt? &hooks=formit2resource,redirect &redirectTo=[[*id]] &template=15 ]] Вот сама форма:

Название:

Описание: textarea id="content" name="content" class="form-control" style="height:150px;"

А вот сам сниппет formit2resource: getObject('modResource',array('id'=>$hook->getValue('resource_id')));

if (empty(doc)){ doc = modx>newObject(modResource);modx->newObject('modResource'); doc->set('createdby', modx->user->get('id')); } else{ doc->set('editedby', $modx->user->get('id')); }

allFormFields=allFormFields = hook->getValues(); foreach (allFormFieldsasallFormFields as field=>$value) {

if (field !== 'spam' && field !== 'resource_id'){ doc>set(doc->set(field, value); } } alias = doc>cleanAlias(doc->cleanAlias(fields['pagetitle']); if(modx>getCount(modResource,array(alias=>modx->getCount(modResource, array('alias'=>alias))!= 0) { count=1;count = 1; newAlias = alias;while(alias; while(modx->getCount(modResource, array('alias'=>newAlias))!= 0) { newAlias = alias;alias; newAlias .= '-' . count;count; count++; } alias=alias = newAlias; } doc>set(alias,doc->set('alias',alias); doc>set(template,doc->set('template', template); $doc->save();

foreach (allFormFieldsasallFormFields as field=>value) { if (!empty(value) && tv=tv = modx->getObject('modTemplateVar', array ('name'=>field))) { /* handles checkboxes & multiple selects elements */ if (is_array(value)) { featureInsert=array();while(list(featureInsert = array(); while (list(featureValue, featureItem)=each(featureItem) = each(value)) { featureInsert[count(featureInsert[count(featureInsert)] = featureItem; } value = implode('||',featureInsert); } tv->setValue(doc>get(id),doc->get('id'), value); tv->save(); } } modx->cacheManager->refresh();

return true; Помогите пожалуйста друзья!