Выкладываю бета версию, плагин еще сырой но вполне рабочий.
Тестируем, про ошибки пишем прямо сюда.
Итак, самое главное – конструировать форму ввода теперь можно используя короткие теги, что такое короткие теги смотрите 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
на этом пока все