Создание ресурсов через фронт энд, группы ресурсов

Друзья приветствую, есть задача, через Formit добавление контента на сайт пользователями, только зарегистрированными, каждый пользователь находится в группе Users, со следующими правами.
Контекст: 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;
Роман
27 января 2015, 17:37
modx.pro
1 895
0

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0