Привет.
Подскажите, кто-то делал свою проверку полей, например номера телефона? Встроенная никуда не годится - там формат ввода не соответствует мобильному номеру.
Тут есть два варианта:
1) Вставить свой код в файл /components/com_rsform/helpers/validation.php. Но это не удобно (при обновлении RSForm правки будут слетать).
2) (Для версий старше 1.51.0)
Для просмотра ссылки Войди или Зарегистрируйся и поместить его в ту же папку.
Ниже приведены коды для:
- проверки русских букв
- проверки русского телефона (на форматы +7(777)777-7777 или 8(888)123-45-67 (в последней части телефона может быть любое число дефисов
(
- проверки всех телефонов СНГ (Россия, Украина, етс), а также всех международных (США, GB, EU, Африка, Азия и т.д.)
1. Валидация только кириллических символов:
Код:
---------------------------------------------------------------------------------------------------------------------------
// Валидация русских букв
public static function RussianLetters($param,$extra = null)
{
if(strpos($param,"\n")!== false)
$param = str_replace(array("\r","\n"),'',$param);
for($i=0;$i<strlen($param);$i++)
if(strpos($extra,$param[$i]) === false && preg_match('#(/^[а-яА-ЯёЁ\s]+/)#', $param[$i]))
return false;
return true;
}
// Конец
---------------------------------------------------------------------------------------------------------------------------
Просто вставим этот код 18 строчкой в файл /components/com_rsform/helpers/validation.php и у Вас появляется новый тип проверки поля (RussianLetters) в админке компонента RS!FORM
2. Валидация российских мобильных номеров
Код:
---------------------------------------------------------------------------------------------------------------------------
// Валидация российских номеров
public static function phonenumberRUS($value)
{
return preg_match("/\(?\b^( +)?((\+?7|8)?)?((\(\d{3}\))|(\d{3}))?( )?(\d{3}[\- ]?\d{2}[\- ]?\d{2})( +)?$\b/i", $value);
}
// Конец
---------------------------------------------------------------------------------------------------------------------------
Вставляем код все в тот же файл /components/com_rsform/helpers/validation.php допустим 144 строчкой (с учетом вставленного кода выше) и у Вас снова появляется новый тип проверки поля (phonenumberRUS) в админке компонента RS!FORM
Лично проверено - работает в RSForms 1.51.14, Joomla 3.5.1
Источник:
Для просмотра ссылки Войди или Зарегистрируйся
UPD:
3. Добавил свой код валидизации "всех международных телефонов" (СНГ (Россия, Украина, етс), а также всех международных (США, GB, EU, Африка, Азия и т.д.)).
Плюс разрешает мелкие описки пользователя (если телефон остается понятен).
Проверяет структуру ввода на соответствие шаблону:
- пустое место в начале;
- затем может быть + (а может и не быть) ;
- затем 10-14 знаков;
- А МЕЖДУ ЗНАКАМИ по 0-2 символов из множества "-", " ", "_", "(", ")", ":", "=", "+") в любом порядке
(в разных местностях и социальных группах приняты самые разные способы разбивания номера на группы цифр,
и самые разные знаки между ними
+возможны мелкие описки пользователя - если телефон понятен, мы это пропускаем).
- пустое место в конце
----------------------------------------------------------------------------------------
// Валидация любых международных номеров (пустое место, затем может быть +, затем 10-14 знаков) А МЕЖДУ ЗНАКАМИ по 0-2 символов из множества "-", " ", "_", "(", ")", ":", "=", "+")
public static function phonenumberRusUaUsaEurStrict($value)
{
return preg_match("/^(\s*)?(\+)?([- _
(=+]?\d[- _
(=+]?){10,14}(\s*)?$\b/i", $value);
}
// Конец
----------------------------------------------------------------------------------------
! Вместо двух смайликов в коде нужно поставить два символа ")" и "=" идущих подряд. Написать их здесь не могу - так как "добрый код" форума нуллед заменяет их при сохранении текста на смайлики ))). Смотрите также в приложенном файле
UPD2:
В RSForm версий старше 1.51.0 вместо ввода кода в файл /components/com_rsform/helpers/validation.php
Для просмотра ссылки Войди или Зарегистрируйся и поместить его в ту же папку.
Ссылка на готовый файл customvalidation.php с тремя указанными проверками:
Скрытое содержимое доступно для зарегистрированных пользователей!