Создание ресурсов через фронт энд, группы ресурсов
Контекст: web
Минимальная роль: Member — 9999
Политика доступа: Context
Есть группа ресурсов еще: Только для пользователей
Так вот, заморочка в том, что каждый созданный ресурс пользователями из фронт энд, нужно ручками отредактировать и на вкладке «Группы ресурсов» выбрать нашу группу «Только для пользователей»,
Это честно говоря кошмар, хотя ресурс родитель находится в этой группе, а дети его новые не хотят присваивать себе группу ресурсов родителя.
Так вот, как можно автоматом заносить новые ресурсы пользователей, в нужную Группу ресурсов???????
Пробовал в сниппет добавления ресурса «formit2resource» дописать $doc->joinGroup(1); но не помогло, плохо в этом понимаю, подскажите куда копать друзья??????
В Formit использую сниппет formit2resource подключаю через hooks.
[[!FormIt?
&hooks=`formit2resource,redirect`
&redirectTo=`[[*id]]`
&template=`15`
&validate=`nospam:blank,pagetitle:required,stop_date:required,work_project:required,user_work:required`
]]
Вот сам сниппет formit2resource:<?php
$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 = $hook->getValues();
foreach ($allFormFields as $field=>$value)
{
if ($field !== 'spam' && $field !== 'resource_id'){
$doc->set($field, $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();
}
}
$modx->cacheManager->refresh();
return true;