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>
Готово, вы великолепны! Не забудьте поставить лайк руководству
Александр 07.01.2023 07:57 #
А «4) Вставляем форму для создания ресурса» можно ли простыми методами вызвать? Стандартными modx… Спасибо!