[ads_cat]

[ads_cat] – в зависимости от категории, выбранной на первом этапе, скрывает или показывает часть формы.
Код имеет спец. атрибута для установки категорий:

  1. id – задает id категории\категорий (через запятую), если пользователь выбрал эту категорию, содержимое кода будет показано
  2. slug – задает ярлык (slug) категории\категорий (через запятую)
  3. cat_name – задает название рубрики или список рубрик через запятую, в которых будет показано содержимое контейнера

Обратное условие ! если перед любым значение поставить знак ! условие будет инвертировано (как PHP) содержимое контейнера будет показано только в том случае, если пользователь не выбрал указанную категорию.
Использовать можно только один атрибут все остальные будут проигнорированы. Прямое и обратное условие объединяются через оператор ИЛИ то есть если для одной категории задать одновременно прямое и обратное условие то мы получим в результате TRUE – блок будут показан всегда.

Рассмотрим примеры использования.

Для этого предположим, что на сайте у нас используется рубрикация как на сайте доска объявлений г.Ильичевска
возьмем фрагмент списка :

  • Недвижимость (21:nedvizhimost)
    • квартиры (37:kvartiryi)
    • дома (39:doma)
    • земля/участки (40:zemlya-uchastki)
    • коммерция/бизнес (41:kommertsiya-biznes)
    • новострой (42:novostroy)
    • риелторские услуги/работа (44:rieltorskie-uslugi-rabota)
  • Транспорт (22:transport)
    • автомобили (45:avtomobili)
    • мотоциклы/мопеды (46:mototsiklyi-mopedyi)
    • грузовые/автобусы (47:gruzovyie-avtobusyi)
    • катера и другое (48:katera-i-drugoe)
    • запчасти/аксессуары (49:selhoz-cpetstehnika)
    • автосервис/работа (50:avtoservis-rabota)
    • запчасти/аксессуары (51:zapchasti-aksessuaryi)

В скобках указан ID категории и ярлык (slug).

Допустим если пользователь выбрал категорию квартиры или дома потребуем ввести пользователя общую площадь в м.кв.

Другой пример : добавим поле цена ads_price, оценить можно много чего однако в рубриках риелторские услуги/работа и автосервис/работа цена не уместна – тут предполагается размещать только сведения об услугах из соответствующей области.
тогда фрагмент формы может быть таким:

Поле цена будет доступно везде кроме рубрик с id 44 и 50.

Вложение тегов

Очень печально, что Shortcode API не поддерживает полноценное вложение тегов. Нельзя вкладывать код сам в себя, поэтому пришлось придумать обходной маневр – с каждым вложением добавляем префикс _cat

В категории Транспорт добавляем поля ввода Объем двигателя и Год выпуска но в категориях запчасти/аксессуары и автосервис/работа запрещаем выводить эти поля.

Строго говоря предыдущий пример с ценой неправильный, ведь кроме недвижимости и транспорта есть другие рубрики и под рубрики поэтому, нам надо сделать сложно подчиненое условие

Первый блок ads_cat сработает только в категории nedvizhimost или transport. Второй блок ads_cat_cat сработает везде кроме категорий rieltorskie-uslugi-rabota и avtoservis-rabota

Рекомендую использовать ярлыки категорий вместо id или имени, тогда вы всегда сможите поменять имя категории. Ну не понравилось вам мое название риелторские услуги/работа, захотите просто услуги агентов недвижимости – нет проблем меняете название, ярлык остается – форму трогать уже не надо. Привязка к id – тоже не лучший вариант, если придется переносить сайт с одного хостинга на другой при импорте БД все ID поменяются опять переделывать форму. Ярлык не меняется.

Комментарии 33 к “[ads_cat]”

  1. slik:

    Добрый вечер, добавляю поля из примера

    Общая площадь: [ads_input name=”ads_area” ….
    на странице выдает:
    Общая площадь: Warning: Not specified tag name for ads_input!

    Почему так?

  2. slik:

    В итоге все что было заведено при заполнении объявления внутри [ads_cat id=24] Объем двигателя и тд [/ads_cat] не показывается на странице с готовым объявлением. Только цена и описание… то, что было за скобками. Есть идеи?

  3. Здравствуйте! А как сделать “действие”(покупка, продажа) в форме ввода? И чтоб посетители могли выбирать при просмотре объявлений типы объявлений?

  4. Ответ на этот вопрс нашел)) У меня другой вопрос. А как скрыть часть формы на HTML, т.е. на “form_default_template”, там шорткоды неработают)

    • admin:

      но зато там работает обычный php код поэтому все в вашем распоряжении
      проверяете условие и выводите соответствующий блок

    • Буян здравствуйте! Подскажите ответ как вы сделали выбор “Действия”. Я уже измучился, не могу найти решение проблемы. Я тоже хочу что-бы пользователь мог сделать выбор Действия. Сайт sol.crimea.ua

  5. а что если убрать ссылки на объявление внизу каждого поста? Для чего это вообще сделано?

  6. Буян:

    Здравствуйте! Шорткоды мне не нравятся, незнаю почему. Как сделать в php чтобы тип объявления менялась в зависимости от выбранной категории? (т.е. в категории недвижимость – продажа, покупка, сдам, сниму, обмен. А в категории транспорт – только продажа, покупка, обмен) Помогите пож-ста.

    я пробовал так но не получается.

    Тип объявления*

    —-
    Продажа (продам)
    Покупка (куплю)
    Сдам в аренду
    Сниму в аренду
    Обмен

    Тип объявления*

    —-
    Продажа (продам)
    Покупка (куплю)
    Обмен

    Как сделать так чтобы тип объявления менялась в зависимости от выбранной категории?

  7. Буян:

    Здравствуйте! Шорткоды мне не нравятся, незнаю почему. Как сделать в php чтобы тип объявления менялась в зависимости от выбранной категории? (т.е. в категории недвижимость – продажа, покупка, сдам, сниму, обмен. А в категории транспорт – только продажа, покупка, обмен) Помогите пож-ста.

    я пробовал так но не получается.

    Тип объявления*

    —-
    Продажа (продам)
    Покупка (куплю)
    Сдам в аренду
    Сниму в аренду
    Обмен

    Тип объявления*

    —-
    Продажа (продам)
    Покупка (куплю)
    Обмен

  8. Бэн:

    Здравствуйте. Простите за повтор вопроса, но я новичёк и уже измучался следующей проблемой. Подскажите пожалуйста, как сделать «действие» (покупка, продажа) в форме ввода? Чтоб при заполнении объявления посетитель мог выбирать.

  9. Почитайте внимательно этот пост:http://wp.od.ua/?p=581 Источник данных – таксономии : категории, метки. С помощью шорткода это сделать несложно. Я лично делал с помощью шаблонов. Я новичок и пришлось недели две помучаться, пока понял что нужно сделать.

    • Бэн:

      Спасибо огромное. Разобрался! Заработало как надо, ныряю дальше =)
      Разработчику респект и уважуха, плагин отличный. Успеха в дальнейших разработках!

      • Да действительно плагин хороший. Он как конструктор. В принципе можно создать форму любой сложности. И что немаловажно объявления публикуются как обыкновенные посты, и при каждом проходе поискового робота они попадают в индекс. Я пробовал пару других плагинов – ерунда. К одному плагину нужен другой плагин для оптимизации объявлений. А сейчас моему сайту меньше месяца, а google ему уже единичку PR присвоил. Яндекс пока в индекс только главную страничку внёс. Но это скорее от недоверия к молодому ресурсу.

  10. Alex:

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

    • admin:

      это называется динамические списки ajax, пока нет такого, пару раз на заказ делал, но как стандартный компонент пока не созрел еще

  11. Юрий:

    Очень интересные возможности. Но [ads_cat slug=transport]
    [ads_cat_cat slug=!avtoservis-rabota,!zapchasti-aksessuaryi]
    Вы выбрали категорию Транспорт! Поэтому надо ввести некоторые детали!
    Объем двигателя: [ads_input name="ads_volume"/]
    Год выпуска: [ads_input name="ads_year"/]
    [/ads_cat_cat]
    [/ads_cat] появляются поля после отправки обьявления.Если удастся,подскажите

  12. Юрий:

    День добрый! Убрал выбор категорий ,через select- работает.А как ,чтобы функционировало при выборе категорий выпадающим списком ?

    • admin:

      ads_cat – так он не будет работать, ведь чтобы вырезать часть формы надо узнать какую категорию пользователь выбрал на предыдущем шаге, а select это не получится, пока не нажмешь кнопку опубликовать мы не узнаем что он выбрал

  13. Добрый день,при заполнении формы через сайт выдает- Запрещеные слова в условии. Разрешено:or, xor, and, OR, XOR, AND, int, is_string, is_numeric, is_float, is_array, strlen, empty, current, count не могу ввести данные

  14. Алексе:

    Как показывать блоки в форме, в зависимости от выбранной категории, используя php форму?
    На сайте не нашел примера.
    Например [code][ads_cat slug=privet][/code] – какой аналог на php?

    • admin:

      [ads_cat] – работают только в шоткод
      если используешь php шаблон не работают

      • Алексе:

        Подскажи другой способ вывести блоки, в зависимости от выбранной категории.
        Может проверку какую на php можно сделать.
        Нужно, чтобы работало именно через slug.
        Спасибо.

      • Алексе:

        Сделал.
        Что-то я не додумался сначала.
        В дефолтной форме объявляется $cat. Из него выдернул slug и сделал проверку на категорию.
        Теперь в необходимой категории выводятся необходимые поля.

  15. Здравствуйте!
    Добавил в рубрику Объявления подрубрику Поздравления. Как и где для рубрики Поздравления ID=134 из формы ввода исключить(в PHP) поля – Расположение и Контактные данные

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

Ваш 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]