terms и emsg – проверка и сообщения об ошибках

Атрибут terms – задает условие проверки значения.
В условии используется мини php код, мини означает то, что набор операторов и функций жестко ограничен. Ограничение связано с использованием потенциально небезопасной функцией eval(). В коде разрешено применять любые не словарные символы (не буквы) в частности арифметические (+ – * /), битовые (! || &&), скобки, точку, току с запятой и другие.
Знак доллара $ означает само значение, которое ввел пользователь.
Атрибут emsg содержит сообщение об ошибке. Если вы задали terms, но не задали emsg будет выведено стандартное предупреждение – “Error in field name ads_myvar!” (Ошибка в поле с именем ads_myvar!).
Простейший пример:

Поле myvar: [ads_input name=ads_myvar terms=$ emsg=»Заполните поле myvar!»/]

123 Поле myvar: [ads_input name=ads_myvar terms=$ emsg=«Заполните поле myvar!»/]

Логические операторы:

  • or, OR – логическое ИЛИ
  • and, AND – логическое И
  • xor, XOR – исключающее ИЛИ
  • ! – отрицание НЕ

Список функций:

  • int проверяет, является ли тип переменной целочисленным по типу is_int() но правильно определяет целое число в строке пример использования int($) – значение целое число
  • is_string является ли значение строкой
  • is_numeric значение является числом (целое или дробное), правильно определяет число в строке
  • is_float значение есть число с плавающей точкой
  • is_array в поле содержится массив
  • strlen вычисляет длину строки
  • empty поле содержит пустое значение null
  • current возвращает текущий элемент массива, в нашем случае это будет всегда первый элемент
  • count подсчитывает кол-во элементов массива

За более подробными разъяснениями обратитесь к документации php.
Перейдем к примерам.
Проверка интервала:

Поле myvar: [ads_input name=ads_myvar terms=»($>10) and ($<=20)» emsg=»Поле myvar должно быть больше 10 И меньше либо равно 20!»/]

1234 Поле myvar: [ads_input name=ads_myvar terms=«($>10) and ($<=20)» emsg=«Поле myvar должно быть больше 10 И меньше либо равно 20!»/]

Проверяем длину текста:

Заголовок: [ads_input name=post_title terms=»(strlen($)>10) and (strlen($)<50)» emsg=»Длинна должна быть больше 10 И меньше либо равно 50!»/]

1234 Заголовок: [ads_input name=post_title terms=«(strlen($)>10) and (strlen($)<50)» emsg=«Длинна должна быть больше 10 И меньше либо равно 50!»/]

Проверяем ввод числа:

Поле myvar: [ads_input name=ads_myvar terms=»is_numeric($)» emsg=»Поле myvar должно быть числом пример: 34.67 «/]

1234 Поле myvar: [ads_input name=ads_myvar terms=«is_numeric($)» emsg=«Поле myvar должно быть числом пример: 34.67 «/]

В некоторых случаях поле может содержать массив данных, как например, когда вы используете шорткод [ads_checkbox_area] – область независимых переключателей (галочки).
Проверить сколько отмечено галочек, нам нужно не более 5:

[ads_checkbox_area name=ads_action taxonomy=category child_of=24 legend=»Выберите рубрику:» terms=»count($)<=5″ emsg=»Выберите рубрику, не более 5!» /]

12345678 [ads_checkbox_area    name=ads_action    taxonomy=category    child_of=24    legend=«Выберите рубрику:»    terms=«count($)<=5»    emsg=«Выберите рубрику, не более 5!»/]

Для файлов доступна только самая простая проверка загружен или не загружен, более сложные варианты реализуем через API плагина.

[ads_file name=3 terms=»$» emsg=»загрузите файл 3″]

1 [ads_file name=3 terms=«$» emsg=«загрузите файл 3»]