xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

Описание

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

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

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

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

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

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

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


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

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

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

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

Комментарии RSS

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

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

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

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

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

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

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

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

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

"автор" это не поле

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

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

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

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании