FormItPlus. Управление полями формы.
        Всем привет!
Компонент расширяет возможности компонента FormIt, а именно дает возможность создать новые поля, создавать новые вкладки для каждой формы, менять данные форм и отправлять письма с админки.

Чтобы было более понятнее, сделаем раздел с вопросами (FAQ)
Задачи:
— менеджер может в админке создавать вопросы и ответы (формы)
— должна быть модерация форм


Теперь можем заполнить несколько форм.

По умолчанию так:

Заходим в управление текущей вкладки и добавляем нужные поля:

Отлично, теперь наши данные отображены вот так:

Остается только вывести эти данные на фронт и создать форму для добавление новых вопросов.
Выводим только активные вопросы:
Добавляем форму:
Все!
А еще мы можем отправить письмо с админки. Если в форме существует поле email то оно будет добавлено автоматически. В чанк передается параметр $values, который содержит все данные текущей формы. В нашем случаи: $values.name, $values.question, $values.answer, $values.active и параметр $email_message (доп. сообщение). Есть возможность прикреплять файл к письму.
 

Ссылка на компонент
    
    
                                                        Компонент расширяет возможности компонента FormIt, а именно дает возможность создать новые поля, создавать новые вкладки для каждой формы, менять данные форм и отправлять письма с админки.

Чтобы было более понятнее, сделаем раздел с вопросами (FAQ)
Задачи:
— менеджер может в админке создавать вопросы и ответы (формы)
— должна быть модерация форм
Реализация
:Шаг 1. Создаем новые поля
- Автор (text)
 - Вопрос (textarea)
 - Ответ (textarea)
 - Активно (checkbox)
 

Шаг 2. Создаем вкладку Faq и добавляем необходимые поля.

Теперь можем заполнить несколько форм.

Управление сеткой
Мы можем указывать какие поля показывать в сетке для каждой вкладки.По умолчанию так:

Заходим в управление текущей вкладки и добавляем нужные поля:

Отлично, теперь наши данные отображены вот так:

Остается только вывести эти данные на фронт и создать форму для добавление новых вопросов.
Выводим только активные вопросы:
<div id="pdopage">
    <div class="rows" >
        {'!pdoPage' | snippet: [
            'frontend_css' => '',
            'class' => 'FormItForm',
            'loadModels' => 'FormIt',
            'sortby' => 'id',
            'sortdir' => 'desc',
            'limit' => 10,
            'tpl' => 'question.tpl',
            'where' => [
                'form' => 'Faq',
                'active' => 1,
            ],
            'ajaxMode' => 'button',
        ]}
    </div>
    {$_modx->getPlaceholder('page.nav')}
</div>Добавляем форму:
{'!AjaxForm' | snippet: [
    'form' => 'faq.tpl',
    'emailTpl' => 'email.tpl',
    'hooks' => 'FormItSaveForm,email',
    'emailSubject' => 'У вас на сайте ' ~ $_modx->config.site_name ~ ' новый вопрос.',
    'emailFrom' => $_modx->config.emailsender,
    'emailFromName' => $_modx->config.site_name,
    'emailTo' => $_modx->config.emailsender,
    'emailBCC' => '',
    'emailBCCName' => $_modx->config.site_name,
    'validate' => 'name:required,question:required',
    'validationErrorMessage' => 'Упс! Что-то пошло не так.',
    'successMessage' => 'Ваш вопрос был отправлен на модерацию.',
    // Указываем название формы
    'formName' => 'Faq',
    // Указываем какие поля будем сохранять
    'formFields' => 'name,question',
]}Все!
Отправка письма
А еще мы можем отправить письмо с админки. Если в форме существует поле email то оно будет добавлено автоматически. В чанк передается параметр $values, который содержит все данные текущей формы. В нашем случаи: $values.name, $values.question, $values.answer, $values.active и параметр $email_message (доп. сообщение). Есть возможность прикреплять файл к письму.

Ссылка на компонент
            
                Поблагодарить автора            
            
                 Отправить деньги            
        
        
            Комментарии: 1
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.