пользовательская проверка на стороне сервера chronoforms v5

Я разработал хроноформы v5 (на сайте Joomla 3.4.8), и мне нужно добавить пользовательскую проверку на стороне сервера в поле ввода текста. Просто мне нужно проверить, что введено имя поляcodiceConvenzione«имеет одно или три значения (например, значение A, или значение B, или значение C).

По этой ссылке:
http://www.chronoengine.com/faqs/54-cfv4/cfv4-validation/2592-how-do-i-use-custom-serverside-validation.html

Я добавил следующий элемент «пользовательский код» в действие onSubmit ChronoForms:

<?php
$ok_values = array(
'valueA',
'valueB',
'valueC'
);
if ( !in_array($form->data['codiceConvenzione'], $ok_values) ) {
$form->validation_errors['codiceConvenzione'] = "The Convention code isn't valid";
return false;
}
?>

К сожалению, как сообщается в ссылке http://www.chronoengine.com/faqs/54-cfv4/cfv4-validation/2592-how-do-i-use-custom-serverside-validation.html, это решение не подходит для Chronoforms v5 (для ChronoForms v4).

Кто-нибудь создал пользовательскую проверку PHP в Chronoforms v5? Не могли бы вы показать мне свой код PHP и где вы его положили?

0

Решение

Возможно, вы уже нашли решение, но я отвечу вам, потому что оно может быть полезным для других людей.

ChronoForms v5 не имеет настраиваемого действия проверки на стороне сервера. Вы можете использовать действие переключателя событий для добавления настраиваемой проверки на стороне сервера, однако оно не предлагает те же методы для отображения ошибок. Посмотреть здесь: https://www.chronoengine.com/faqs/70-cfv5/5212-event-switcher.html

В основном, чтобы преобразовать свою проверку, вам нужно добавить переключатель событий со следующим кодом:

<?php
$ok_values = array(
'valueA',
'valueB',
'valueC'
);
if(!in_array($form->data['codiceConvenzione'], $ok_values)){
$form->errors['codiceConvenzione'] = "The Convention code isn't valid";
return 'fail';
} else {
return 'success';
}
?>

Затем добавьте цикл обработки событий в событие сбоя переключателя событий. Как вы можете видеть в Chronoforms V5, массив ошибок изменил имя в $form->errors['input_name']

0

Другие решения

Других решений пока нет …