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

Я разработал chronoforms 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 и где вы его разместили?


person Aldo Poma    schedule 20.02.2016    source источник
comment
Спасибо большое С К! Чтобы временно решить мою проблему (потому что мне нужно было решить ее немедленно), я использовал Chronoforms V4, но я попробую ваше решение с ChronoForms V5.   -  person Aldo Poma    schedule 17.05.2016


Ответы (1)


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

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']

person fasenderos    schedule 15.05.2016