Drupal → Модуль Field validation — продвинутая валидация полей

29.04.2012

Описание

Модуль Field validation позволяет из админки навешивать на поля произвольное количество собственных правил валидации.

Из коробки доступно:

  • Проверка на соответствие регулярному выражению.
  • Является ли значение числом и соответствует ли оно определённому интервалу (опционально).
  • Проверка на длину.
  • Проверка на количество слов.
  • Проверка на присутствие HTML тегов.
  • Проверка на присутствие слов из чёрного списка.
  • Проверка на количество выбранных значений.
  • Проверка на уникальность.
  • Проверка на соответствие другим полям и свойствам.
  • Проверка на соответствие определённым значениям.
  • Проверка на уникальность значений multi-value поля.
  • Проверка с помощью PHP кода.
  • Проверка диапазона дат.
  • "Должно быть пустым" (простой анти-спам механизм).

Модуль предоставляет API для добавления пользовательских правил валидации.

Использование

Установка стандартная — распаковать в sites/all/modules, включить модуль и его UI.

После включения, у полей появится новое действие validate и соответствующий таб в настройках поля:


Страница управления валидаторами:

Страница добавления/редактирования валидатора:

Всё интуитивно понятно.

Написанное актуально для
Field validation 7.x-2.0-beta1
Похожие записи

Комментарии

Тестировал первую версию модуля год назад. Тогда он был глючный и поддерживал только ядреные поля. Вторая версия судя по всему переписана полностью.
Во первых, валидаторы реализованы ввиде плагинов ctools, поэтому добавить свой валидатор очень легко. Хотя, для большинства задач хватает тех плагинов, которые уже есть. Во вторых модуль работает с полями field schema, поэтому его можно использовать для валидации абсолютно любых типов полей.

P.S. Очень удобно использовать модуль для защиты от спама.

Ch, не поделитесь, каким образом используете для защиты от спама?

В 7-ке основное содержимое ноды или комментария реализовано ввиде поля. Поэтому для его валидации можно использовать field_validation.

Вот несколько способов:

  • Использовать готовый валидатор Words blacklist для фильтрации по ключевым словам.
  • Сделать, как на этом сайте поле-чекбокс "Я не спамер" и поставить на него валидатор Must be empty.
  • Проверять сообщение регуляркой с помощью regexp валидатора. Например, если вас спамят англоязычные боты, то можно проверять сообщение на отстутствие символов кириллицы. Так же можно фильтровать по наличию ссылок, тэгов, ббкода и т.д.

Для более сложных проверок можно использовать php валидатор. Хотя наверно лучше сделать свой ctools плагин. Это будет более универсально.

Ch, спасибо! думала, там есть какой-то специальный антиспам-трюк :)

Вопрос. Не подскажете, можно ли этим модулем сделать проверку на вхождение в группу (OG) автора создаваемого материала и значения полей из поля, которое вытаскивается ноде референсом? Ноды, которые референс тянет - признак группы имеют, автор тоже.

ага, дошло до меня уже )).
А можно ли это как-то реализовать, подскажите?

Павел
22.04.2015, 16:16

Здравствуйте. Подскажите пожалуйста как сделать валидацию полей в раскрытом фильтре? что бы туда вводились только цифры. Буду крайне признателен если подскажете каким модулем воспользоваться или какой скрипт вставить.

Артур
15.08.2019, 02:22

А для полей профиля пользователя почему-то не появляется вкладка Validation.

Добавить комментарий