eForm на MODx Evolution собственная валидация полей

Опубликовано: 18 Фев 2015

В MODx Evolution для форм, использующих сниппет eForm можно задавать собственную проверку правильности введенных данных в поля этих форм.
Для этого у eForm есть специальный входной параметр. Называется он eFormOnValidate. Вот как его правильно использовать:

[!validation!]
[!eForm?
...
&eFormOnValidate=` validation `
...
!]

Здесь validation — это название моего сниппета-обработчика, который будет проверять введенные пользователями данные.

<?php
function validation(&$fields, &$vMsg, &$rMsg) {
global $modx;
&$fields - (согласно документации) ассоциативный массив полей и их значений.
&$vMsg - (согласно документации) числовой массив, состоящий из сообщений об ошибках валидации.
&$rMsg - (согласно документации) числовой массив незаполненных обязательных полей.
// валидация поля "телефон"
if (!empty($fields['phone']) && !preg_match("/\+7(\d{10})/", $fields['phone'])) :    
$vMsg[3] = 'телефон должен быть указан в формате +xxxxxxxxxxx, где x  - это число';
endif;
return $vMsg;
}
?>

Комментарии (0)


Оставить комментарий




Разрешённые теги: <b><i><br>Добавить новый комментарий: