Ads-WordPress 4 – быстрый старт.

Выкладываю бета версию, плагин еще сырой но вполне рабочий.
Тестируем, про ошибки пишем прямо сюда.
Итак, самое главное – конструировать форму ввода теперь можно используя короткие теги, что такое короткие теги смотрите Shortcode API.

Загружаем плагин, активируем, переходим в настройки, настраиваем по аналогии с версией 3.x. Почти все тоже самое, в основном поменялся порядок опций, все новое опишу потом.
Буду объяснять сразу в примерах.
Создаем статическую страницу (!обязательно переключаемся в режим HTML или текст вверху справа 2 вкладчики), пишем заголовок “Добавить Объявление” с текст:

[AdsForm] [ads_breadcrumbs] Заголовок:[ads_input name=post_title terms=$ emsg=»Требуется заголовок!»/] Текст: [ads_textarea name = post_content cols=50 rows=10 terms=»strlen($)>20″ emsg=»Текст описания должен быть больше 20 символов!» ] Цена: [ads_input name=»ads_price» size=5 terms=»is_numeric($)» emsg=»введите цену!»] С условиями согласен: [ads_input name=’ads_ok’ type=»checkbox» terms=»$» emsg=»Надо принять условия !» /] Загрузка файлов: [ads_file name=0] [ads_file name=1] [ads_file name=2] [ads_buttons] [/AdsForm]

123456789101112131415161718192021222324252627 [AdsForm][ads_breadcrumbs] Заголовок:[ads_input name=post_title terms=$ emsg=«Требуется заголовок!»/] Текст: [ads_textarea name = post_content cols=50 rows=10terms=«strlen($)>20»emsg=«Текст описания должен быть больше 20 символов!» ] Цена: [ads_input name=«ads_price» size=5 terms=«is_numeric($)» emsg=«введите цену!»] С условиями согласен:[ads_input name=‘ads_ok’ type=«checkbox»terms=«$» emsg=«Надо принять условия !» /] Загрузка файлов: [ads_file name=0] [ads_file name=1] [ads_file name=2] [ads_buttons][/AdsForm]

! Имена тегов должны начинаться с префикса ads_

  • [ads_breadcrumbs] показывает хлебные крошки, какую категорию выбрал юзер на этапе выбора категории.
  • Заголовок:[ads_input name=post_title…/] элемент преобразуется во всем известный тег ввода все атрибуты указанные в [ads_input] автоматом транслируются в html код. Поэтому все делаем по аналогии задаем type=
    checkbox|password|radio|text по умолчанию text, задаем размер size=123 если надо, класс и id и тд.

    Имеет дополнительные атрибуты:
    terms=$: проверка значения, об условиях подробнее  напишу ниже, здесь же проверяется, что заголовок не пустой – любое не пустое значение;
    emsg=’Требуется заголовок!’: если проверка не прошла, то выводит текст этого сообщения.

  • Текст:[ads_textarea… преобразуется в html код textarea, точно также все атрибуты кроме специфических условия (terms) и сообщения об ошибке (emsg) транспортируются в html код.
    terms=”strlen($)>20″ проверяем чтобы текст был длиннее 20 символов
  • Цена:[ads_input name=”ads_price” … текстовый элемент. Проверяем условие ввода terms=”is_numeric($)” должно быть цело число.
  • С условиями согласен: [ads_input name=’ads_ok’ type=”checkbox” … пример input в виде checkbox, также есть условие и текст сообщения если пользователь забыл поставить галочку.
  • [ads_file name=0] загрузка файла в качестве имени указывать целые числа от Нуля.
  • [ads_buttons] последний код разворачивается в набор кнопок Опубликовать, Обновить, Удалить … Если форма большая можно продублировать элемент, вставить вверху и внизу страницы.

Условия

Для каждого [шорткода] кроме файлов, можно задавать условия проверки значений и одно сообщение в случае ошибки.
Условие задается с помощью атрибута terms=’условие на мини php’.
Сообщение об ошибке с помощью атрибута emsg=’Текст ошибки!’ – думаю тут все понятно.
В условии можно использовать ограниченный набор слов из списка:

or, xor, and, is_int, is_string, is_numeric, is_float, is_array, strlen, empty, current, count

1 or, xor, and, is_int, is_string, is_numeric, is_float, is_array, strlen, empty, current, count

а также круглые скобки () и символ $. Знак $ в процессе проверки заменяется на значение которое ввел пользователь.
Пример потребуем пользователя ввести год рождения:
[ads_input name=”ads_year” terms=”is_int($) and ($ > 1900) and ($ < 2012)” emsg=”Год рождения неправильная дата!”/]
проверяем что введено целое число is_int($) далее проверяем что число это больше 1900 года и меньше 2012.

Этот способ для простых условий! Более сложные проверки делаем как в старой версии плагина: подключаем свой фильтр на событие ads_check_fields.
И тут уже все карты вам в руки.

[ads_select] – предназначен для создания списка выбора html тега select. Источник данных:  внутреннее содержание, таксономия  category или post_tag,  внешний массив данных.

Пример – источник данных внутренне содержание шорткода:

Действие: [ads_select name=ads_action1 terms=$ emsg=»Выберите действие!»] =>не выбрано sale=>Продажа buy=>Покупка rent=>Сдам в аренду removal=>Сниму в аренду [/ads_select]

12345678 Действие:[ads_select name=ads_action1 terms=$ emsg=«Выберите действие!»]=>не выбраноsale=>Продажаbuy=>Покупкаrent=>Сдам в арендуremoval=>Сниму в аренду[/ads_select]

Источник данных категория и теги:

Категории: [ads_select name=ads_action2 selected=2 terms=$ emsg=»Выберите действие2!» taxonomy=category child_of=actions /]

12345 Категории:[ads_select name=ads_action2 selected=2terms=$ emsg=«Выберите действие2!»taxonomy=category child_of=actions/]

taxonomy=category – указываем источник данных категории
child_of=actions – задаем категорию контейнер (родительскую категорию) ярлык(slug) = action, можно указать просто id категории.

Вообще если задан атрибут taxonomy выпадающий список мы получим с помощью стандартной WordPress функции wp_dropdown_categories, а все атрибуты заданные в шорткоде автоматом передаются в эту функцию. Выбор аргументов тут широчайший, короче читайте манул и пробуйте wp_dropdown_categories

Теги: [ads_select name=ads_tags size=»5″ multiple=»multiple» terms=»(1=count($))» emsg=»Теги не выбраны! Минимум 1, максимум 3!» taxonomy=post_tag /]

12345 Теги:[ads_select name=ads_tags size=«5» multiple=«multiple»terms=«(1=count($))» emsg=«Теги не выбраны! Минимум 1, максимум 3!»taxonomy=post_tag/]

Хороший пример список select раскрытого типа с возможностью мультивыбра – можно выбрать несколько пунктов нажав Shift или Ctrl.
size=”5″ размер по высоте
multiple=”multiple” включаем мультивыбор
Это все стандартные атрибуты html тега select поэтому вопросов тут быть не должно!
terms=”(1=count($))” – пример составного условия поскольку у нас мультивыбор значение $ будет содержать массив. Используем функцию count чтобы узнать сколько выбрано пунктов в списке, кол-во должно быть больше 1 и меньше 3.

Внешний массив:
Предварительно, естественно, необходимо создать этот массиив для этого в самый раз подойдет ads_config.php – создаем этот файл в директории плагина, но можно воспользоваться functions.php в папке текущей темы.

$arr_test_select[]=’пустой’; $arr_test_select[‘one’]=’Один’; $arr_test_select[‘ty’]=’Два’; $arr_test_select[3]=’Три’; $arr_test_select[4]=’Четыре’;

12345 $arr_test_select[]=‘пустой’;$arr_test_select[‘one’]=‘Один’;$arr_test_select[‘ty’]=‘Два’;$arr_test_select[3]=‘Три’;$arr_test_select[4]=‘Четыре’;

Теперь можно использовать это масиив в качестве источника данных в форме

[ads_select name=ads_array selected=2 array=’arr_test_select’ /]

12 [ads_select name=ads_array selected=2array=‘arr_test_select’ /]

selected=2 по умолчанию будет выбран третий! по счету пункт отсчет начинается с 0.
Простой выпадающий список без проверок.

Аналогично работаю [ads_radio_area] и [ads_checkbox_area]:
[ads_radio_area] создает область зависимых переключателей radio. Источник данных : внутренний, категория, теги, внешний массив.
[ads_checkbox_area] создает область независимых переключателей checkbox. Источник данных : внутренний, категория, теги, внешний массив.
Здесь таксономии получаем через функции get_terms($taxonomy, $args) и точно также все аргументы заданные в шорткоде транслируются в в массив $args, что открывает широкие возможности создания различных наборов данных. Манул get_terms

В шорткодах [ads_select], [ads_radio_area] и [ads_checkbox_area] встроена автоматическая проверка на выход за область заданных значений.

ads-wordpress_4.zip

на этом пока все