FormIt – это сниппет динамической обработки формы для MODx Revolution. Он обрабатывает форму после подтверждения, проверяет валидацию и дает на них ответ. При успешной обработке сниппет отправляет на указанный email данные из формы, иначе выдает информацию об ошибке. Сниппет не создает форму, но может повторно заполнить ее, если она не прошла валидацию.

Использование

[[!FormIt? &hooks=`email` &validate=`email:required`]]

Запрос сниппета FormIt необходимо поместить в ресурс, содержащий форму, которую Вы хотите использовать. Укажите в запросе сниппета «hooks»(или пост валидационные скрипты обработки). Затем добавьте валидацию с помощью параметров &validate и/или &customValidators.

Если у Вас на странице несколько форм, заполните свойство &submitVar в запросе сниппета (например, &submitVar='form1-submit').

Параметры

НазваниеОписаниеПо умолчанию
hooks Здесь указываются скрипты, которые необходимо будет выполнить после проверки формы. Это может быть разделенный запятыми список хуков. В случае если проверка не пройдена, обработка не происходит. Также хуком может быть имя сниппета, которое будет выполнять этот сниппет.  
preHooks Здесь указываются хуки, которые необходимо будет выполнить перед проверкой формы.  
submitVar Если задано, обработка формы не начнется пока не обнаружится указанная POST-переменная. Внимание: требуется, если Вы используете свойство &store (+ установите submit переменную в input="submit"!).  
validate Разделенный запятыми список полей для проверки, где каждое имя поля имеет вид name:validator (например, username:required,email:required). Валидаторы также могут быть сцеплены, как email:name:required. Это свойство может присваиваться нескольким строкам.  
validationErrorMessage Общее сообщение об ошибке, устанавливается в плейсхолдер [[!+fi.validation_error_message]], если валидация не пройдена. Если Вы хотите отобразить список всех ошибок в верхней части, используйте плейсхолдер [[+errors]]. <p class="error">Форма содержит ошибки, проверьте вводимые данные</p>
validationErrorBulkTpl Темплейт, который используется для каждой отдельной ошибки в общем массиве сообщений об ошибке. <li>[[+error]]li>
errTpl HTML код для сообщений об ошибках. Примечание: не чанк, а только HTML. <span class="error">[[+error]]span>
customValidators Разделенный запятыми список сниппетов-валидаторов, которые Вы планируете использовать в этой форме.
clearFieldsOnSuccess Если значение true и не используется редирект, сниппет очистит все поля формы после успешной обработки. 1
store Если значение true, сниппет будет хранить данные в кэше для выборочного использования сниппетом FormItRetriever. 0
storeTime Если свойство 'store' равно true, то это свойство устанавливает количество секунд для сохранения данных из формы. По умолчанию пять минут. 300
placeholderPrefix Префикс, используемый для всех плейсхолдеров сниппета fi.
successMessage Если не используется хук-редирект, по завершению успешного выполнения сниппета отображается это сообщение.  
successMessagePlaceholder Имя плейсхолдера, куда помещается сообщение об успешном выполнении. fi.successMessage
redirectTo ID страницы "Thank You", куда посетитель будет перенаправлен после успешного выполнения сниппета. Примечание: использовать с хуком "redirect" в в списке свойства &hooks.  

Пример работы с Formit можно посмотреть в этой статье.

Оригинальная информация по сниппету на английском: