From f206ab9bba12b93fe0bd3d979fb520d1746e109b Mon Sep 17 00:00:00 2001 From: Ilya Utkin Date: Thu, 19 Feb 2026 13:01:20 +0500 Subject: [PATCH] Fix typos and sync content for Russian FormIt docs for 3.x --- en/extras/formit/formit.validators.md | 2 + .../formit/formit.formitcountryoptions.md | 8 +- ru/extras/formit/formit.formitretriever.md | 4 +- ru/extras/formit/formit.formitstateoptions.md | 2 +- ru/extras/formit/formit.hooks/email.md | 10 +-- .../formit.hooks/formitautoresponder.md | 2 +- .../formit/formit.hooks/formitsaveform.md | 20 +++++ ru/extras/formit/formit.hooks/index.md | 7 +- ru/extras/formit/formit.hooks/math.md | 2 +- .../prehooks.formitloadsavedform.md | 2 +- ru/extras/formit/formit.hooks/recaptcha.md | 2 +- ru/extras/formit/formit.hooks/spam.md | 6 +- .../examples.custom-hook.md | 8 +- .../examples.simple-contact-page.md | 86 ++++++------------- ...handling-selects,-checkboxes-and-radios.md | 27 ++---- ru/extras/formit/formit.validators.md | 6 +- ru/extras/formit/index.md | 4 +- 17 files changed, 87 insertions(+), 111 deletions(-) diff --git a/en/extras/formit/formit.validators.md b/en/extras/formit/formit.validators.md index e05a12bc5..991670094 100644 --- a/en/extras/formit/formit.validators.md +++ b/en/extras/formit/formit.validators.md @@ -6,6 +6,8 @@ _old_uri: "revo/formit/formit.validators" ## Validation in FormIt +FormIt 3.0 introduces an update to the encryption methods used for encrypting form submissions. Prior to 3.0 mcrypt was used, which in 3.0 is replaced with openssl, due to mcrypt being deprecated as of PHP 7.2. FormIt 3.0 comes with a migration page which is accessible from the manager. + As of FormIt 2.2.9, all fields will automatically have `html_entities` applied. To allow HTML tags to be saved/stored, you will need to use the `allowSpecialChars` validator on each field, that should save raw html tags. As of FormIt 1.4.0, validation has changed. The old method of doing validation on the input names will still work until FormIt 2.0.0, when it will be removed. It is recommended to use the new way by using the &validate property. diff --git a/ru/extras/formit/formit.formitcountryoptions.md b/ru/extras/formit/formit.formitcountryoptions.md index 4e4735e56..a5e625593 100644 --- a/ru/extras/formit/formit.formitcountryoptions.md +++ b/ru/extras/formit/formit.formitcountryoptions.md @@ -35,11 +35,11 @@ FormItCountryOptions имеет некоторые свойства по умо | selected | Код страны для отметки, что она выбрана | | | selectedAttribute | Необязательный. Атрибут HTML, добавляемый в выбранную страну. | selected="selected" | | tpl | Необязательный. Код, используемый для каждого варианта раскрывающегося списка стран | | -| useIsoCode | If 1, для значения будет использоваться аббревиатура (код страны)). Если 0, будет использоваться полное имя | 1 | +| useIsoCode | Если 1, для значения будет использоваться аббревиатура (код страны). Если 0, будет использоваться полное имя | 1 | | prioritized | Необязательный. Разделенный запятыми список кодов ISO для стран, которые можно поместить в приоритетную optiongroup вверху раскрывающегося списка. Это можно использовать для часто выбираемых стран. | | | prioritizedGroupText | Необязательный. Если установлено и используется `&prioritized`, будет добавлена текстовая метка для группы опций с приоритетом. | | allGroupText | Необязательный. Если установлено и используется `&prioritized`, будет добавлена текстовая метка для группы опций для всех остальных стран. | -| optGroupTpl | Необязательный. Если установлено и используется `&prioritized`, будет использован этот фрагмент для разметки группы параметров. | optgroup | +| optGroupTpl | Необязательный. Если установлено и используется `&prioritized`, будет использован этот чанк для разметки группы параметров. | optgroup | | toPlaceholder | Необязательный. Используйте это, чтобы установить вывод в качестве плейсхолдера вместо вывода напрямую. | | ### Приоритетные страны @@ -57,9 +57,7 @@ FormItCountryOptions имеет некоторые свойства по умо ![](20110707-ckb8i6wtgk9gwrtds59nra4smh.jpeg) -You simply pass the ISO codes of the countries you wish to prioritize in the &prioritized parameter. You can also adjust the text of the option groups with the `&prioritizedGroupText` and `&allGroupText` properties. - -Вы просто передаете коды ISO стран, которым вы хотите присвоить приоритет, в параметре `&prioritized`. Вы также можете настроить текст `optiogroup` с помощью свойств `&prioritizedGroupText` и` &allGroupText`. +Вы просто передаете коды ISO стран, которым вы хотите присвоить приоритет, в параметре `&prioritized`. Вы также можете настроить текст `optiongroup` с помощью свойств `&prioritizedGroupText` и `&allGroupText`. ## Смотрите также diff --git a/ru/extras/formit/formit.formitretriever.md b/ru/extras/formit/formit.formitretriever.md index 9606f457c..39ca6d5a6 100644 --- a/ru/extras/formit/formit.formitretriever.md +++ b/ru/extras/formit/formit.formitretriever.md @@ -19,7 +19,7 @@ FormItRetriever - это вспомогательный [Сниппет](buildin А затем отобразите данные формы с плейсхолдерами, относящимися к именам полей, например: ```php -

<Благодарим [[!+fi.name]] за сообщение. Письмо будет отправлено вам на ящик [[!+fi.email]].

+

Благодарим [[!+fi.name]] за сообщение. Письмо будет отправлено вам на ящик [[!+fi.email]].

``` Не забудьте установить `&store=1` в вызове FormIt, чтобы сниппет понимал, что нужно хранить значение. @@ -68,7 +68,7 @@ FormItRetriever имеет некоторые свойства по умолча ```php [[!FormItRetriever? &redirectToOnNotFound=`444`]] -

Спасибо [[!+fi.name]] за ваше обращение. Вам будет отправлен автоматически электронное письмо на адрес [[!+fi.email]]. Текст вашего обращения:

+

Спасибо [[!+fi.name]] за ваше обращение. Вам будет автоматически отправлено электронное письмо на адрес [[!+fi.email]]. Текст вашего обращения:

[[!+fi.message]] ``` diff --git a/ru/extras/formit/formit.formitstateoptions.md b/ru/extras/formit/formit.formitstateoptions.md index 98432c183..cbf9bdf94 100644 --- a/ru/extras/formit/formit.formitstateoptions.md +++ b/ru/extras/formit/formit.formitstateoptions.md @@ -39,7 +39,7 @@ FormItStateOptions имеет некоторые свойства по умол | selected | Код штата/региона для отметки, что он выбран | | | selectedAttribute | Необязательный. Атрибут HTML, добавляемый в выбранный штат. | selected="selected" | | tpl | Необязательный. Код, используемый для каждого варианта раскрывающегося списка регионов. | | -| useAbbr | Если указано '1', для значения будет использоваться аббревиатура(код региона)). Если 0, будет использоваться полное имя | 1 | +| useAbbr | Если указано '1', для значения будет использоваться аббревиатура (код региона). Если 0, будет использоваться полное имя | 1 | | toPlaceholder | Необязательный. Используйте это, чтобы установить вывод в качестве плейсхолдера вместо вывода напрямую. | | ## Смотрите также diff --git a/ru/extras/formit/formit.hooks/email.md b/ru/extras/formit/formit.hooks/email.md index 0cdf93935..d1e395bb1 100644 --- a/ru/extras/formit/formit.hooks/email.md +++ b/ru/extras/formit/formit.hooks/email.md @@ -14,7 +14,7 @@ Email хук отправит содержимое вашей HTML формы н | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | emailTpl | Обязательный. Чанк tpl для сообщения электронной почты. Если он не указан, будет отправлен список полей с их значениями. | | emailSubject | Тема письма. | -| emailUseFieldForSubject | Если указано "1" и передано поле "тема", то значение этого поля будет использоваться в качестве строки темы электронного письма. | +| emailUseFieldForSubject | Если указано "1" и передано поле "subject", то значение этого поля будет использоваться в качестве строки темы электронного письма. | | emailTo | Список адресов получателей электронной почты, разделенных запятыми. | | emailToName | Необязательный. Список имен, разделенных запятыми, для попарного сопряжения со значениями `emailTo`. | | emailFrom | Необязательный. Если установлено, будет указан адрес отправителя "From:" для электронного письма. Если не установлен, сначала будет осуществлен поиск поля формы "email". Если ничего не найдено, по умолчанию будет установлена системная настройка `emailsender`. **ПРИМЕЧАНИЕ**. Всегда устанавливайте для системной настройки `emailFrom` действительный адрес электронной почты (который разрешен для отправки с вашего сервера), чтобы избежать отклонения писем из-за нарушений SPF/DMARC. | @@ -27,7 +27,7 @@ Email хук отправит содержимое вашей HTML формы н | emailCCName | Необязательный. Список имен, разделенных запятыми, для попарного сопряжения со значениями `emailCC`. | | emailBCC | Список email адресов, разделенных запятыми, для отправки через скрытую копию ("BCC"). | | emailBCCName | Необязательный. Список имен, разделенных запятыми, для сопряжения со значениями `emailBCC`. | -| emailMultiWrapper | Оборочивает значения, переданные через чекбоксы/списки множественного выбора этим значением. По умолчанию используется только значение. (1.6.0+) | +| emailMultiWrapper | Оборачивает значения, переданные через чекбоксы/списки множественного выбора этим значением. По умолчанию используется только значение. (1.6.0+) | | emailMultiSeparator | Разделяет чекбоксы/списки множественного выбора этим значением. По умолчанию используется новая строка. (1.6.0+) | | emailSelectField | Имя поля формы, которое выбирает адреса электронной почты для отправки. (4.2.5+) | | emailSelectTo | Разделенный точкой с запятой список адресов электронной почты, разделенных запятыми, для отправки туда писем. (4.2.5+) | @@ -65,7 +65,7 @@ Email хук отправит содержимое вашей HTML формы н ### Добавление динамики в адресацию -FormIt, начиная с версии 4.2.5+, мог выбирать получателя почты по числовому значению поля, то есть по значению параметра 'select'. Таким образом можно избежать создания поддельного поля формы, в котором пользователь может легко отправить любой почтовый адрес. Пользователь будет видеть только нумерованный список получателей, которые будут перенаправлены на адреса электронной почты с помощью свойств FormIt. +FormIt, начиная с версии 4.2.5+, может выбирать получателя почты по числовому значению поля, то есть по значению параметра 'select'. Таким образом можно избежать создания поля формы, значение которого пользователь может легко подделать для отправки на произвольный почтовый адрес. Пользователь будет видеть только нумерованный список получателей, которые будут перенаправлены на адреса электронной почты с помощью свойств FormIt. Для этого вы можете использовать следующие свойства FormIt: @@ -84,7 +84,7 @@ FormIt, начиная с версии 4.2.5+, мог выбирать полу ``` -Если выбран Адрес 1, почта будет отправляться на `mail1@my.domain,mail2@my.domain`, если же выбран Адрес 2, почта будет отправлена на`different@my.domain`. +Если выбран Адрес 1, почта будет отправляться на `mail1@my.domain,mail2@my.domain`, если же выбран Адрес 2, почта будет отправлена на `different@my.domain`. ### Использование поля Темы в качестве строки Темы электронного письма @@ -97,7 +97,7 @@ FormIt, начиная с версии 4.2.5+, мог выбирать полу ]] ``` -Будет выполнен поиск поля с именем "тема", которое будет использоваться в электронном письме. Если он не будет найден или окажется пуст, по умолчанию будет использовано значение `&emailSubject`. +Будет выполнен поиск поля с именем "subject", которое будет использоваться в электронном письме. Если оно не будет найдено или окажется пустым, по умолчанию будет использовано значение `&emailSubject`. ### Работа с чекбоксами и множественным выбором в электронном письме diff --git a/ru/extras/formit/formit.hooks/formitautoresponder.md b/ru/extras/formit/formit.hooks/formitautoresponder.md index cd39e55bf..202bf99bd 100644 --- a/ru/extras/formit/formit.hooks/formitautoresponder.md +++ b/ru/extras/formit/formit.hooks/formitautoresponder.md @@ -27,7 +27,7 @@ translation: "extras/formit/formit.hooks/formitautoresponder" | fiarCCName | Необязательный. Список имен, разделенных запятыми, для попарного сопряжения со значениями `fiarCC`. | | fiarBCC | Список email адресов, разделенных запятыми, для отправки через скрытую копию ("BCC"). | | fiarBCCName | Необязательный. Список имен, разделенных запятыми, для сопряжения со значениями `fiarBCC`. | -| fiarMultiWrapper | Оборочивает значения, переданные через чекбоксы/списки множественного выбора этим значением. По умолчанию используется только значение. | +| fiarMultiWrapper | Оборачивает значения, переданные через чекбоксы/списки множественного выбора этим значением. По умолчанию используется только значение. | | fiarMultiSeparator | Разделяет чекбоксы/списки множественного выбора этим значением. По умолчанию используется новая строка. ("\\n") | | fiarFiles | Необязательный. Список файлов, разделенных запятыми, для добавления в качестве вложения к электронному письму. Вы не можете использовать здесь URL-адрес, только путь к локальной файловой системе. | | fiarRequired | Необязательный. Если установлено значение false, обработчик FormItAutoResponder не останавливается, когда поле, определенное в `fiarToField`, остается пустым. По умолчанию true. | diff --git a/ru/extras/formit/formit.hooks/formitsaveform.md b/ru/extras/formit/formit.hooks/formitsaveform.md index ac4658d6e..276a6dadf 100644 --- a/ru/extras/formit/formit.hooks/formitsaveform.md +++ b/ru/extras/formit/formit.hooks/formitsaveform.md @@ -21,6 +21,26 @@ FormIt 3.0 представляет обновление методов шифр | formFields | Список полей, разделенных запятыми, которые будут сохранены. По умолчанию будут сохранены все поля, включая кнопку отправки. | | | fieldNames | Измените имя поля внутри CMP. Например, если имя поля - "email2", вы можете изменить имя на "дополнительный адрес электронной почты". | &fieldnames=\`fieldname==Название поля,anotherone==Другое название поля\` | +## Очистка старых форм + +В зависимости от местного законодательства, хранение отправленных форм на неопределённый срок может вызывать проблемы с конфиденциальностью. + +Для решения этой проблемы FormIt предлагает простой способ удаления отправленных форм по истечении заданного количества дней с помощью настройки задания cron. + +По умолчанию задание cron удаляет все отправленные формы старше 30 дней при каждом запуске. + +Это значение можно изменить, установив другое количество дней в системной настройке: `formit.cleanform.days`. + +### Настройка cron + +Используйте следующий путь: `/(полный_путь_до)/assets/components/formit/cronjob/cron.php` + +Подсказка: полный путь можно увидеть во время установки: + +![Пример установки FormIt с отображением полного пути](../cronexample.png) + +*Примечание:* cron.php принимает запросы только через CLI. Вы можете сделать это, добавив новое задание cron через SSH или используя [cronmanager](https://jako.github.io/CronManager/usage/) для запуска процедуры очистки. + ## Смотрите также 1. [FormIt хук email](extras/formit/formit.hooks/email) diff --git a/ru/extras/formit/formit.hooks/index.md b/ru/extras/formit/formit.hooks/index.md index 84ae81b17..1d4e90f85 100644 --- a/ru/extras/formit/formit.hooks/index.md +++ b/ru/extras/formit/formit.hooks/index.md @@ -6,7 +6,7 @@ translation: "extras/formit/formit.hooks" ## Хуки FormIt -Хуки это скрипты, которые запускаются во время обработки FormIt. Они всегда выполняются в том порядке, в котором они указаны в свойстве. Если, например, у вас есть ловушка электронной почты, за которой следует ловушка проверки, электронное письмо будет отправлено до того, как произойдет проверка. Если какой-либо хук не сработает, последующие за ним не будут выполняться. +Хуки это скрипты, которые запускаются во время обработки FormIt. Они всегда выполняются в том порядке, в котором они указаны в свойстве. Если, например, у вас есть хук электронной почты, за которым следует хук проверки, электронное письмо будет отправлено до того, как произойдет проверка. Если какой-либо хук не сработает, последующие за ним не будут выполняться. Хуки также могут быть именами Сниппетов, которые затем будут выполнять сниппет в качестве хука. Сниппет должен возвращать true в случае успеха и false в случае неудачи. @@ -92,12 +92,13 @@ $modx->toPlaceholder('extraFields', implode(PHP_EOL, $fields)); - [math](extras/formit/formit.hooks/math "FormIt.Hooks.math") - [recaptcha](extras/formit/formit.hooks/recaptcha "FormIt.Hooks.recaptcha") - [FormItAutoResponder](extras/formit/formit.hooks/formitautoresponder "FormIt.Hooks.FormItAutoResponder") +- [FormItSaveForm](extras/formit/formit.hooks/formitsaveform "FormIt.Hooks.FormItSaveForm") Хук `redirect` (если используется) всегда должен быть указан последним в списке хуков. Помните, что хуки выполняются в том порядке, в котором они указаны в свойстве Formit. ## Произвольные хуки -Любой Cниппет можно использовать как настраиваемый хук с Formit. Сниппет должен возвращать true в случае успеха и либо false, либо массив сообщений об ошибках в случае неудачи (см. ниже). Если фрагмент возвращает false, хуки, перечисленные после сниппета в параметре `hooks`, не будут выполняться. Если фрагмент не найден, _будут_ выполняться следующие за ним в списке хуки. +Любой Cниппет можно использовать как настраиваемый хук с Formit. Сниппет должен возвращать true в случае успеха и либо false, либо массив сообщений об ошибках в случае неудачи (см. ниже). Если сниппет возвращает false, хуки, перечисленные после сниппета в параметре `hooks`, не будут выполняться. Если сниппет не найден, _будут_ выполняться следующие за ним в списке хуки. ### Использование пользовательских хуков @@ -160,4 +161,4 @@ FormIt, начиная с версии 2.0.0+, поддерживает файл ]] ``` -Здесь будет осуществлен поиск хука в `assets/hooks/my.hook.php`. Если файл найден, он будет работать с хуком из него. +Теги MODX в этой строке будут обработаны, после чего будет осуществлён поиск хука в `assets/hooks/my.hook.php`. Если файл найден, он будет работать с хуком из него. diff --git a/ru/extras/formit/formit.hooks/math.md b/ru/extras/formit/formit.hooks/math.md index d2ac58a12..b72bdbe5a 100644 --- a/ru/extras/formit/formit.hooks/math.md +++ b/ru/extras/formit/formit.hooks/math.md @@ -18,7 +18,7 @@ translation: "extras/formit/formit.hooks/math" | mathMaxRange | Максимальное значение для каждого числа в уравнении. | 100 | | mathField | Имя поля ввода для ответа. | math | | mathOp1Field | Имя поля/плейсхолдера для 1-го числа в уравнении. | op1 | -| mathOp2Field | Имя поля/плейсхолдера для 1-го числа в уравнении. | op2 | +| mathOp2Field | Имя поля/плейсхолдера для 2-го числа в уравнении. | op2 | | mathOperatorField | Имя поля/плейсхолдера для оператора в уравнении. | operator | ## Использование diff --git a/ru/extras/formit/formit.hooks/prehooks.formitloadsavedform.md b/ru/extras/formit/formit.hooks/prehooks.formitloadsavedform.md index 766bc2e69..43205d172 100644 --- a/ru/extras/formit/formit.hooks/prehooks.formitloadsavedform.md +++ b/ru/extras/formit/formit.hooks/prehooks.formitloadsavedform.md @@ -28,7 +28,7 @@ translation: "extras/formit/formit.hooks/prehooks.formitloadsavedform" ## Поддерживаемые параметры -Прехук имеет следующие свойства, которые нужно передать в вызов фрагмента FormIt: +Прехук имеет следующие свойства, которые нужно передать в вызов сниппета FormIt: | Имя | Описание | | --------------------- | --------------------------------------------------------------------------------------------- | diff --git a/ru/extras/formit/formit.hooks/recaptcha.md b/ru/extras/formit/formit.hooks/recaptcha.md index 4dd7ee43c..d7e69bf62 100644 --- a/ru/extras/formit/formit.hooks/recaptcha.md +++ b/ru/extras/formit/formit.hooks/recaptcha.md @@ -6,7 +6,7 @@ translation: "extras/formit/formit.hooks/recaptcha" ## Хук recaptcha для FormIt -The recaptcha хук включит поддержку reCaptcha для форм FormIt. +Хук recaptcha включит поддержку reCaptcha для форм FormIt. ## Использование diff --git a/ru/extras/formit/formit.hooks/spam.md b/ru/extras/formit/formit.hooks/spam.md index 687185e3a..e0d26f4a7 100644 --- a/ru/extras/formit/formit.hooks/spam.md +++ b/ru/extras/formit/formit.hooks/spam.md @@ -8,13 +8,13 @@ translation: "extras/formit/formit.hooks/spam" Хук проверяет все поля, указанные в свойстве `spamEmailFields`, на соответствие фильтру спама через [StopForumSpam](http://www.stopforumspam.com/). Если пользователь отмечен как спамер, будет показано сообщение об ошибке для этого отмеченного поля. -Для хука требуется поддержка `cURL` или `Sockets` в вашей установке PHP (те же требования для [Управление пакетами](development-in-modx/advanced-development/package-management «Управление пакетами»)). +Для хука требуется поддержка `cURL` или `Sockets` в вашей установке PHP (те же требования для [Управления пакетами](developing-in-modx/advanced-development/package-management "Управление пакетами")). -## Возможные параметры +## Поддерживаемые параметры | имя | описание | | --------------- | -------------------------------------------------------------------------------------------------------------------------- | -| spamEmailFields | Опциональный. Список полей,где указана адреса электронной почты, разделенных запятыми, для проверки. По умолчанию "email". | +| spamEmailFields | Опциональный. Список полей, где указаны адреса электронной почты, разделенных запятыми, для проверки. По умолчанию "email". | | spamCheckIp | Если 'true', также будет проверяться IP отправителя. По умолчанию 'false'. | ## Использование diff --git a/ru/extras/formit/formit.tutorials-and-examples/examples.custom-hook.md b/ru/extras/formit/formit.tutorials-and-examples/examples.custom-hook.md index 40e7e6e47..690acdf2f 100644 --- a/ru/extras/formit/formit.tutorials-and-examples/examples.custom-hook.md +++ b/ru/extras/formit/formit.tutorials-and-examples/examples.custom-hook.md @@ -29,7 +29,7 @@ description: "Пользовательский произвольный хук" ## Сниппет customhook -Имя хука соответствует имени Сниппета. Итак, мы создаем сниппет с именем `customhook`. При написании пользовательского хука полезно сначала провести некоторое тестирование, чтобы убедиться, что он срабатывает. Поскольку настраиваемый обработчик должен только _возвращать_ либо истинное, либо ложное значение, распечатать отладочную информацию непросто. Но вместо этого мы можем записать что-нибудь в лог MODX с помощью функции [$modx->log()](extends-modx/xpdo/class-reference/xpdo/xpdo.log). +Имя хука соответствует имени Сниппета. Итак, мы создаем сниппет с именем `customhook`. При написании пользовательского хука полезно сначала провести некоторое тестирование, чтобы убедиться, что он срабатывает. Поскольку настраиваемый обработчик должен только _возвращать_ либо истинное, либо ложное значение, распечатать отладочную информацию непросто. Но вместо этого мы можем записать что-нибудь в лог MODX с помощью функции [$modx->log()](extending-modx/xpdo/class-reference/xpdo/xpdo.log). Помните, что вы должны вернуть **true**, если хотите, чтобы ваша форма была подтверждена! Вот наш пример кода для нашего нового Сниппета `customhook`: @@ -43,7 +43,7 @@ $modx->log(xPDO::LOG_LEVEL_ERROR,'Тестирование моего хука') return true; //<-- если вы не укажете это или вернете "ложь", ваша форма не будет проверяться ``` -Сохраните свой Сниппет и попробуйте отправить форму. Проверьте системный журнал MODX (** Управление -> Отчеты -> Журнал ошибок **), чтобы убедиться, что ваш Сниппет был исполнен. Среди записей журнала должны увидеть что-то вроде этого: +Сохраните свой Сниппет и попробуйте отправить форму. Проверьте системный журнал MODX (**Управление -> Отчеты -> Журнал ошибок**), чтобы убедиться, что ваш Сниппет был исполнен. Среди записей журнала должны увидеть что-то вроде этого: ```php [2011-10-24 11:23:20] (ERROR @ /index.php) Тестирование моего хука. @@ -70,11 +70,11 @@ return true; Дата отправки: [[+datestamp_submitted]]
``` -Чтобы это работало, хук `customhook` должен быть указан **перед** `email` в параметре `&hooks` в вашем вызове FormIt. Порядок, в котором Cниппеты появляются в параметре `&hooks`, определяет порядок выполнения. Если хук `email` будет выполнен перед настраиваемой ловушкой, то Плейсхолдер` datestamp_submitted` в чанке останется пустым. +Чтобы это работало, хук `customhook` должен быть указан **перед** `email` в параметре `&hooks` в вашем вызове FormIt. Порядок, в котором Cниппеты появляются в параметре `&hooks`, определяет порядок выполнения. Если хук `email` будет выполнен перед пользовательским хуком, то плейсхолдер `datestamp_submitted` в чанке останется пустым. ### Доступ к параметрам -Еще одна распространенная вещь для пользовательских хуков - это прочитать отправленную информацию и что-то с ней сделать, например записывать данные в базу данных. Значения можно прочитать индивидуально с помощью `$hook-> getValue()`, например: +Еще одна распространенная вещь для пользовательских хуков - это прочитать отправленную информацию и что-то с ней сделать, например записывать данные в базу данных. Значения можно прочитать индивидуально с помощью `$hook->getValue()`, например: ```php $email = $hook->getValue('email'); diff --git a/ru/extras/formit/formit.tutorials-and-examples/examples.simple-contact-page.md b/ru/extras/formit/formit.tutorials-and-examples/examples.simple-contact-page.md index 5e9d1b58c..5024e9636 100644 --- a/ru/extras/formit/formit.tutorials-and-examples/examples.simple-contact-page.md +++ b/ru/extras/formit/formit.tutorials-and-examples/examples.simple-contact-page.md @@ -6,7 +6,7 @@ description: "Пример простой контактной формы свя Здесь мы приведем простой пример контактной страницы. -Мы предполагаем, что вы уже установили Компонент Formit через [Управление пакетами](develop-in-modx/advanced-development/package-management) и ознакомились с разделом Formit [Как использовать](/extras/formit#kak-ispolzovat «Как использовать»). +Мы предполагаем, что вы уже установили Компонент Formit через [Управление пакетами](developing-in-modx/advanced-development/package-management) и ознакомились с разделом Formit [Как использовать](/extras/formit#kak-ispolzovat "Как использовать"). В этом примере контактная форма будет проверять входные данные, отправлять электронное письмо и, наконец, перенаправлять на ресурс с идентификатором 123. @@ -19,7 +19,7 @@ description: "Пример простой контактной формы свя ## Тег сниппета -Вы можете вызвать этот Сниппет где угодно: внутри Шаблона, Чанка, тела содержимого страницы или даже программно через [runSnippet](exnding-modx/modx-class/reference/modx.runsnippet). +Вы можете вызвать этот Сниппет где угодно: внутри Шаблона, Чанка, тела содержимого страницы или даже программно через [runSnippet](extending-modx/modx-class/reference/modx.runsnippet). Есть только одно условие - Formit должен быть запущен на странице, куда будут отправлены данные из контактной формы ниже (см. значение поля «action»). @@ -28,17 +28,20 @@ description: "Пример простой контактной формы свя &hooks=`recaptcha,email,redirect` &emailTpl=`MyEmailChunk` &emailTo=`user@example.com` + &emailFrom=`[[++emailsender]]` &redirectTo=`123` &validate=`nospam:blank, - name:required, - email:email:required, - subject:required, - text:required:stripTags, - numbers:required, - colors:required` + name:required, + email:email:required, + subject:required, + text:required:stripTags, + numbers:required, + colors:required` ]] ``` +> Убедитесь, что параметр emailFrom установлен в `[[++emailsender]]`, иначе будет использоваться значение поля email из формы. Это вызывает проблемы, так как большинство хостингов больше не отправляют письма с адресом отправителя `from` от неизвестных доменов. + ## Контактная форма Этот HTML-код должен вызываться на странице сайта, где вы хотите увидеть контактную форму. Значение атрибута `action` указывает на страницу, на которой расположен вызов Сниппета, в нашем случае мы вызываем его на той же странице, поэтому мы используем [~tag](building-sites/tag-syntax/common#default-resource-content-field-tags), чтобы создать ссылку на текущую страницу. @@ -46,9 +49,7 @@ description: "Пример простой контактной формы свя ```html

Контактная форма

-[[!+fi.validation_error_message:notempty=` -

[[!+fi.validation_error_message]]

-`]] +[[!+fi.validation_error_message:notempty=`

[[!+fi.validation_error_message]]

`]]
@@ -75,23 +76,15 @@ description: "Пример простой контактной формы свя Сообщение: [[!+fi.error.text]] - + @@ -100,43 +93,20 @@ description: "Пример простой контактной формы свя
- [[!+formit.recaptcha_html]] [[!+fi.error.recaptcha]] + [[!+formit.recaptcha_html]] + [[!+fi.error.recaptcha]]
diff --git a/ru/extras/formit/formit.tutorials-and-examples/handling-selects,-checkboxes-and-radios.md b/ru/extras/formit/formit.tutorials-and-examples/handling-selects,-checkboxes-and-radios.md index 74c1f9f69..7faa2db21 100644 --- a/ru/extras/formit/formit.tutorials-and-examples/handling-selects,-checkboxes-and-radios.md +++ b/ru/extras/formit/formit.tutorials-and-examples/handling-selects,-checkboxes-and-radios.md @@ -44,30 +44,13 @@ FormIt предоставляет служебный Сниппет под на Поскольку HTML не отправляет значение, если флажок не установлен, проверки «обязательности» (required) флажка может быть затруднительной. Перед этим вам нужно будет добавить скрытое (`type = hidden`) поле, чтобы отправлялось хотя бы пустое значение: ```html -[[!FormIt? &validate=`color:required`]] ... +[[!FormIt? &validate=`color:required`]] +... - -Синий - -Красный - -Зеленый + Синий + Красный + Зеленый ``` Это успешно проверит, чтобы при отправке формы был установлен хотя бы один флажок. diff --git a/ru/extras/formit/formit.validators.md b/ru/extras/formit/formit.validators.md index e43faacb2..e9a0dc62b 100644 --- a/ru/extras/formit/formit.validators.md +++ b/ru/extras/formit/formit.validators.md @@ -10,6 +10,8 @@ FormIt 3.0 представляет обновление методов шифр Начиная с FormIt 2.2.9, ко всем полям автоматически применяется `html_entities`. Чтобы разрешить сохранение HTML-тегов, вам нужно будет использовать валидатор `allowSpecialChars` для каждого поля, который должен сохранять необработанные html-теги. +Начиная с FormIt 1.4.0, изменился способ валидации. Старый метод валидации через имена полей формы будет работать до FormIt 2.0.0, после чего будет удалён. Рекомендуется использовать новый способ через свойство `&validate`. + Начиная с FormIt 1.1.4, ко всем полям будут автоматически применяться `stripTags`. Чтобы разрешить сохранение HTML-тегов, вам нужно будет использовать валидатор `allowTags` для каждого поля, определяя, какие теги разрешены. Валидацию можно просто выполнить, добавив поля для проверки в свойство `&validate` при вызове Сниппета. Например, чтобы сделать поле имени пользователя обязательным, вы можете сделать так: @@ -41,7 +43,7 @@ FormIt 3.0 представляет обновление методов шифр FormIt допускает разделение валидаторов на несколько строк, если вам так будет удобнее. -**Примечание**: не используйте обратные кавычки `внутри проверочного вызова (это сломает синтаксическую разметку). Вместо этого используйте символы`^`: +**Примечание**: не используйте обратные кавычки `` ` `` внутри проверочного вызова (это сломает синтаксическую разметку). Вместо этого используйте символы `^`: ```php [[!FormIt? &validate=`date:required:isDate=^%m/%d/%Y^`]] @@ -86,7 +88,7 @@ FormIt допускает разделение валидаторов на не ## Пользовательские валидаторы -Валидаторами также могут быть любые пользовательские [сниппеты](development-in-modx/basic-development/snippets "сниппеты"). Вы можете сделать это, просто указав имя сниппета в свойстве `customValidators`: +Валидаторами также могут быть любые пользовательские [сниппеты](developing-in-modx/basic-development/snippets "сниппеты"). Вы можете сделать это, просто указав имя сниппета в свойстве `customValidators`: ```php [[!FormIt? &customValidators=`isBigEnough`]] diff --git a/ru/extras/formit/index.md b/ru/extras/formit/index.md index 8d8a21002..323b6f445 100644 --- a/ru/extras/formit/index.md +++ b/ru/extras/formit/index.md @@ -6,7 +6,7 @@ description: "Сниппет FormIt для обработки и отправк ## Что такое FormIt? -FormIt - это динамический [Сниппет](extending-modx/snippets "Сниппет") обработки форм для MODX Revolution. Он обрабатывает форму после отправки, выполняя проверку и последующие действия, такие как отправка электронного письма. Он не создает форму, но может повторно заполнить ее, если проверка не была пройдена. +FormIt - это динамический [Сниппет](developing-in-modx/basic-development/snippets "Сниппет") обработки форм для MODX Revolution. Он обрабатывает форму после отправки, выполняя проверку и последующие действия, такие как отправка электронного письма. Он не создает форму, но может повторно заполнить ее, если проверка не была пройдена. ## История @@ -14,7 +14,7 @@ FormIt был написан Shaun McCormick как Компонент для о ### Скачать -Formit можно загрузить из Менеджера MODX Revolution через [Управление пакетами](building-sites/extras) или из репозитория MODX здесь: . +Formit можно загрузить из Менеджера MODX Revolution через [Управление пакетами](developing-in-modx/advanced-development/package-management) или из репозитория MODX здесь: . ### Разработка и ошибки