FormIt
Последнее обновление Apr 10th, 2021 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$306 per month—let's make that $500!
Learn moreЧто такое FormIt?¶
FormIt - это динамический Сниппет обработки форм для MODX Revolution. Он обрабатывает форму после отправки, выполняя проверку и последующие действия, такие как отправка электронного письма. Он не создает форму, но может повторно заполнить ее, если проверка не была пройдена.
История¶
FormIt был написан Shaun McCormick как Компонент для обработки форм и впервые выпущен 19 октября 2009 г. В настоящее время поддерживается командой Sterc.
Скачать¶
Formit можно загрузить из Менеджера MODX Revolution через Управление пакетами или из репозитория MODX здесь: https://modx.com/extras/package/formit.
Разработка и ошибки¶
FormIt хранится и разрабатывается в GitHub, и его можно найти здесь: https://github.com/Sterc/FormIt
Здесь можно писать об ошибках: https://github.com/Sterc/FormIt/issues
Документацию по API также можно найти здесь: https://api.modx.com/formit/
Важные изменения¶
FormIt 3.0 представляет обновление методов шифрования, используемых для шифрования отправленных форм. До версии 3.0 использовался mcrypt
, который в версии 3.0 заменен на openssl
из-за того, что mcrypt
устарел с версии PHP 7.2. FormIt 3.0 поставляется со страницей миграции, доступной из Менеджера.
Начиная с FormIt 2.2.9, ко всем полям автоматически применяется html_entities
. Чтобы разрешить сохранение HTML-тегов, вам нужно будет использовать валидатор allowSpecialChars
для каждого поля, который должен сохранять необработанные html-теги.
Начиная с FormIt 1.1.4, ко всем полям будут автоматически применяться stripTags
. Чтобы разрешить сохранение HTML-тегов, вам нужно будет использовать валидатор allowTags
для каждого поля, определяя, какие теги разрешены.
Как использовать¶
Просто поместите вызов Сниппета FormIt в Ресурс, содержащий форму, которую вы хотите использовать. В отличие от аналогичных предшественников (особенно eForm в MODX Evolution), вы не помещаете форму в Чанк и не ссылаетесь на него в вызове сниппета FormIt: вы буквально помещаете вызов Сниппета рядом с формой, которую хотите обработать. Укажите «hooks» (или сценарии обработки после проверки) в вызове Сниппета. Затем добавьте проверку с помощью параметров &validate
и &customValidators
.
Если у вас есть несколько форм на странице, установите для свойства &submitVar
в вызове Cниппета имя элемента формы (например, &submitVar = form1-submit
). Это указывает FormIt обрабатывать запросы формы только, если в переданных полях формы (POST) есть эта переменная. Если у вас на одной странице несколько форм, обрабатываемых Formit, следует использовать теги с INPUT type = "submit" name = "form1-submit", элементы button работать не будут.
Доступные свойства¶
Это доступные общие свойства для вызова FormIt (не включая свойства, специфичные для хуков):
Имя | Описание | Значение по умолчанию |
---|---|---|
preHooks | Какие скрипты запускать, если они есть, после загрузки формы. Это может быть список хуков, разделенных запятыми, и если первый не сработает, последующие также не будут использованы. Хук также может быть именем другого Сниппета, который будет выполнять этот Сниппет. | |
renderHooks | Какие скрипты запускать, если они есть, после загрузки формы, завершения preHooks и установки всех полей и ошибок. Это может быть разделенный запятыми список Хуков, используемых для управления всеми полями формы до того, как все будет установлено на основе данных из других пакетов или предварительных хуков. Хук также может быть именем Сниппета, который будет выполнять этот Сниппет. |
|
hooks | Какие скрипты запускать, если они есть, после того, как форма прошла проверку. Это может быть список хуков, разделенных запятыми, и если первый не сработает, последующие не сработают также. Хук также может быть именем Сниппета, который будет выполнять этот Сниппет. | |
submitVar | Если установлено, обработка формы не начнется, если эта переменная POST не передана. Примечание: этот параметр необходим, если вы используете свойство &store (+ установить submit переменную в input="submit"!). |
|
validate | Список полей для проверки, разделенных запятыми, для каждого поля в виде имя:валидатор (например: username: required, email: required ). Валидаторы также могут быть связаны цепочкой, например, email:email:required . Это свойство также можно указать в нескольких строках. |
|
validationErrorMessage | Общее сообщение об ошибке, которое следует установить в качестве Плейсхолдера [[!+fi.validation_error_message]] в случае сбоя проверки. Может содержать [[+errors]] , если вы хотите вывести список всех ошибок. |
Произошла ошибка проверки формы. Пожалуйста, проверьте введенные вами значения . |
validationErrorBulkTpl | HTML tpl, который используется для каждой отдельной ошибки в общем сообщении об ошибках валидации. | [[+error]] |
errTpl | HTML-обёртка для сообщений об ошибках. Примечание: не чанк, а простой HTML. | [[+error]] |
customValidators | Список имен настраиваемых валидаторов(сниппетов), разделенных запятыми, которые вы планируете использовать в этой форме. Они должны быть явно указаны здесь, иначе они не будут запущены. | |
clearFieldsOnSuccess | Если указано, очистит поля при успешной отправке формы без перенаправления. | 1 |
store | Если указано, данные будут храниться в кэше для извлечения с помощью сниппета FormItRetriever. | 0 |
storeTime | В секундах, если указано, задает количество секунд для хранения данных после отправки формы. По умолчанию - пять минут. | 300 |
storeLocation | При использовании store это свойство определяет, где форма будет храниться после отправки. Возможные варианты: cache и session . |
cache |
placeholderPrefix | Префикс, используемый для всех Плейсхолдеров, установленных FormIt для полей. Не забудьте добавить "." разделитель в вашем префиксе. | fi. |
successMessage | Если redirect хук не используется, отобразите это сообщение после успешной отправки. |
|
successMessagePlaceholder | Имя Плейсхолдера, для которого нужно установить сообщение об успешном завершении. | fi.successMessage |
redirectTo | Идентификатор страницы а-ля "Ваша форма успешно отправлена", куда посетитель может быть отправлен после успешной отправки формы, но этот параметр читается ТОЛЬКО, если вы включили redirect в список хуков(параметр &hooks ). |
|
allowFiles | Укажите, разрешена ли передача файлов. Отправленные файлы хранятся во временном каталоге, чтобы файлы не терялись, если у вас форма состоит из нескольких шагов. | 1 |
attachFilesToEmail | Прикрепляет загруженные файлы к электронному письму, форма должна иметь атрибут enctype="multipart/form-data" |
1 |
Валидация¶
Проверка в Formit выполняется с помощью свойства &validate
и может использоваться для автоматической обработки любого из полей вашей формы.
Для получения дополнительной информации о проверке в FormIt смотрите Валидаторы.
Хуки¶
Хуки - это в основном скрипты, которые запускаются во время обработки FormIt. Они всегда выполняются в том порядке, в котором они указаны в свойстве. Если, например, у вас есть хук для электронной почты, за которой следует хук валидации, электронное письмо будет отправлено до того, как произойдет проверка.
Если какой-либо хук завершится с ошибкой, последующие за ним не будут выполняться.
Для получения дополнительной информации о хуках смотрите Хуки.
Посмотрите также¶
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$306 per month—let's make that $500!
Learn more