Я не буду расписывать как создавать регистрацию, авторизацию и личный кабинет, об этом много статей уже есть. Здесь будет готовый код для добавления ресурса с frontend'a (допустим с личного кабинета пользователя)

1) Устанавливаем pdoTools (для работы Fenom)
2) Устанавливаем компоненты Ajaxform и FormIt
3) Создаем сниппет с любым названием и вставляем код
<?php
$values = $hook->getvalues();

$parentResource = 888; //id родителя (Куда будут добавляться ресурсы) 
$templateResource = 2; //шаблон ресурса

if(!$modx->user || $modx->user->id <1) {
    $modx->placeholders['fi.validation_error_message'] = 'Пользователь не найден';
    $hook->addError('sendResource', 'error');
    return false;
}

if(empty($values['pagetitle'])){
    $hook->addError('pagetitle', 'Заголовок пустой');
    return false;
}

$responce = $modx->runProcessor('resource/create', array (
'parent' => $parentResource,
'pagetitle' => $values['pagetitle'],
'template' => $templateResource,
'content' => $values['content'],
'published' => 0,
'createdby' => $modx->user->id
));

if ($responce->hasFieldErrors() || $responce->isError()){
    $modx->placeholders['fi.validation_error_message'] = implode (',',$responce->getAllErrors());
    $hook->addError('sendResource', 'error');
    
    foreach ($responce->getFieldErrors() as $error){
        $hook->addError($error->getField(), $error->getMessage());
    }
    return false;
}
return true;


4) Вставляем форму для создания ресурса (Допустим в личном кабинете пользователя
    {'AjaxForm' | snippet : [
    'form' => 'postResourceFormTpl'
    'hooks' => 'addAdv'
    'submitVar' => 'sendResource'
    'successMessage' => 'Объявление добавлено'
    'errTpl' => ''
    ]}


5) Создаем чанк с названием postResourceFormTpl(Можно указать свое название, только надо будет изменить в форме отправки)
<form class="ajax_form order-form">

    <div class="form-group">
        <label for="pagetitle">Заголовок</label>
        <input type="text" id="pagetitle" name="pagetitle" placeholder="Заголовок объявления" class="form-control"/>
        <span class="help_block" data-error-for="pagetitle"></span>
    </div>

    <div class="form-group">
        <label for="content">Содержимое объявления</label>
        <input type="text" id="content" name="content" placeholder="Содержимое объявления" class="form-control"/>
        <span class="help_block" data-error-for="content"></span>
    </div>

    <div class="alert" role="alert"></div>
    <button type="submit" class="btn btn-default" name="sendResource" value="1">Отправить</button>
</form>


Готово, вы великолепны! Не забудьте поставить лайк руководству