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

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

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

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

а также круглые скобки () и символ $. Знак $ в процессе проверки заменяется на значение которое ввел пользователь.
Пример потребуем пользователя ввести год рождения:
[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,  внешний массив данных.

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

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

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

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

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

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

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

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

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

Комментарии 202 к “Ads-WordPress 4 – быстрый старт.”

  1. Еще один симптом
    делаем все тоже самое что в предыдущем комменте
    получаем ошибку.
    после этого, в форме добавления, нажимаем на крестик, чтобы удалить картинку
    - Ошибка: post_parent файла не соответствует текущей записи!
    плюс сбрасывается категория на умолчание.

  2. При редактировании, через форму публикации, сбрасывается в умолчание категория. (

    • admin:

      у меня все нормально категории на месте, проверяй свой код внимательно

      • форма – шорткодами, не кодом. В сем плагин не лез.
        [AdsForm choice_category=off]
        Фото: [ads_file name=0]
        Категория:[ads_select name=ads_basecat taxonomy=category child_of=821 selected=845 not_selected="off" orderby ="name" order ="ASC" terms=$ emsg="Выберите категорию!"/]
        Название: [ads_input name="post_title" size="80"/]
        Описание: [ads_textarea name = post_content cols=80 rows=2 terms='strlen(0)' /]
        Метки: [ads_input name=tags_input size="80" terms=$ emsg="Введите хотя бы одну метку!" /]
        [ads_buttons]
        [/AdsForm]

        • При редактировании через форму стоят настройки
          child_of=821 selected=845
          так вот когда жмем редактировать, то срабатывает этот selected=845
          и меняется категория на эту не получая выбранную

  3. Константин:

    Есть такая проблема. Пользователь жмет “Опубликовать объявление”, но пока сайт грузится нажимает на эту кнопку еще несколько раз. В итоге получаем 100500 опубликованных объявлений :( Сделал временную латку на JS

  4. Пошарился не нашел. Можно сделать, чтобы при выборе категории, выбиралась только выбранная которая дочерняя, а категория верхнего уровня автоматом не выбиралась?

  5. terms=”is_int($)” выдаёт ошибку “неверное условие …”

  6. Игорь:

    Здравствуйте! После создания страницы появилось вот это (и больше ничего):

    Warning: extract() [function.extract]: First argument should be an array in Z:\home\localhost\www\Board\wp-content\plugins\ads-wordpress\ads_antispam.php on line 272

    Warning: extract() [function.extract]: First argument should be an array in Z:\home\localhost\www\Board\wp-content\plugins\ads-wordpress\ads_antispam.php on line 272

    Warning: extract() [function.extract]: First argument should be an array in Z:\home\localhost\www\Board\wp-content\plugins\ads-wordpress\ads_antispam.php on line 557

    Что я сделал не так?

    • admin:

      отключите модуль антиспам !

      • Игорь:

        Отключил, тепер вообще пусто, но появилась надпись “Выберите категорию”. Код я вставил как у вас написано (который [code]
        [AdsForm]
        [ads_breadcrumbs] и т. д.)
        Ещё есть несколько непонятных моментов. Этот код нужно только на одной странице ставить?
        И как вывести поле "добавить объявление" для пользователей сайта?
        А ещё немного непонятно про страницу с кодом [AdsForm] Когда нажимаю на "Новая запись", перекидывает на страницу, где пустота и фраза "Выберите категорию".
        Разместил пробное объявление, но оно выглядит немного примитивно, не так красиво, как показано здесь http://www.internet-technologies.ru/articles/article_1905.html

  7. admin:

    ну ты же сделал страницу, теперь эту страницу надо вывести в меню Внешний вид/меню
    нужно создать в настройках плагина определить категории в которые можно размещать объявления – они будут доступны для выбора пользователя

  8. Решил все-таки сделать я сделать личный кабинет.
    Увеличилось количество просмотров страниц и время пребывания на сайте – народ регистрируется.
    Короче сделал фишку, в личном кабинете в списке объявлений добавил ссылку “поднять в топ”. Это не редактирование объявления средствами плагина, а просто ВП функция по обновлению даты поста на текущую.
    Ну еще добавил статистику кликов “Показать телефон”, “Отправить сообщение” и количество переходов по ссылке.

    Тут немного описываю свои действия и скриншоты есть https://vk.com/biglus

    • admin:

      а я тоже сделал личный кабинет – как отдельный под плагин :)
      с возможностью входа и регистрации пользователя не заходя в админку WP
      чуть позже выложу описание – это будет платный модуль
      http://o-bruse.ru/
      и вот http://catcatalog.ru/ примеры

      • Артем:

        А это у вас регистрация идет сразу вместе с добавлением поста, или это просто дополнительные поля в профиле юзера?

        • admin:

          да, регистрация и добавляется пост-анкета, фишка в том, что пока юзер не заполнить правильно все поля, телефоны, мыло , описание, капчу и тд регистрация не проходит

      • Артем:

        Мне тоже кабинет нужен, когда продавать будете?
        Я посмотрел на крупных досках, там если емайл при публикации добавляешь, то сразу проверка идет – есть такой пользователь или нет, если есть, то всплывает дополнительное поле “введите пароль от кабинета”, а если нету пользователя с таким емайлом, то просто публикация объявы и регистрация.

        • admin:

          о ну если есть спрос, тогда на днях оформлю все описание, принцип работы и выложу
          с ценой пока не определился

1 4 5 6

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url=""> [php]…[/php] [html]…[/html] [css]…[/css] [text]…[/text] [code]…[/code]