Атрибут 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»] |