[ads_input] – произвольное текстовое поле, переключатель, флажок

[ads_input] – основной шорткод широкого профиля, преобразуется в html элемент input.
Специальные атрибуты:

  1. terms – задает условие
  2. emsg – текст ошибки, если не прошла проверка выводится ошибка

Внимание ! все атрибуты за исключением специфических terms, emsg будут транслироваться в конечный тег input поэтому, если надо прописать css класc, атрибут размера size или событие onclick, любой другой html атрибут – прямо так и пишем в шорткоде:
[ads_input name="ads_myvar" class="myclass_input" size="50" type="text" onclick="myfunction_JS()" /]

В зависимости от атрибута type может создавать множество элементов формы тестовое поле, переключатель, кнопки, скрытые поля, ввод файла и другое. Однако для нас актуальны 3 варианта:

  • текстовое поле type=”text”
  • переключатель type=”radio”
  • флажок type=”checkbox”

По умолчанию type = text.
Создаем простое текстовое поле:

(предпочтительно полная запись, на всякий случай ;) )

Создаем флажок выбора:

для создания элемента выбора из множества флажков (поля флажков)
есть специальной код [ads_checkbox_area]

А вот с зависимыми переключателями получается не совсем красиво – одиночный radio нет смысла использовать, как правило их как минимум 2 и более, поэтому лучше воспользоваться специальны шорткодом для создания группы зависимых переключателей [ads_radio_area].
Но все же для примера рассмотрим переключатель на 3 положения:

Тут все загвоздка в том, для того чтобы создать зависимы переключатель на 3 положения у всех radio должно быть одинаковое имя ads_browser, поэтому ошибка, если пользователь забыл сделать выбор будет подсвечена у каждого элемента (у каждой кнопочки) не очень красиво но в целом все работает правильно.

А теперь фокус

Для создания простых элементов ввода вовсе не обязательно использовать шортокды!
Можно прописывать просто html код для input, главное, чтобы элементы находились внутри основного шорткода [AdsForm]…[/AdsForm] и в редакторе WordPress не забыть переключиться в режим html.
Таким образом любое произвольное поле можно добавить так:

Будет работать автозаполнение поля при редактировании, и у записи появится мета поле ads_url.

! Однако, вы не сможете использовать условия проверки ввода и вывода ошибки terms и emsg это только для шорткодов.

Рекомендую использовать такой вариант когда поле не является обязательным – проверка не нужна.
Ну еще пример для флажочка:

В дополнение к теме произвольных полей во первых правила называния полей ads_ и adp_ и во вторых отображение этих самых полей методом Ads WordPRess и если это не сработает тогда официальный вариант http://codex.wordpress.org/Custom_Fields .

Комментарии 25 к “[ads_input] – произвольное текстовое поле, переключатель, флажок”

  1. Евгений:

    Прощу прощения, если ответ на вопрос уже звучал.
    Добавил выбор зависимых переключателей, но в посте они не отображаются. Необходимо же их объявить в файле? Подскажите где.
    И каким образом обработать событие для флажка? Где то видел не помню где))
    Тот же вопрос для checkbox.
    Спасибо.

  2. OlegT:

    Подскажите, а как лучше сделать дополнительное поле ввода url и email?

    Практика такова, что у некоторых посетителей оказывается больше одного адреса электронки и больше одного сайта. Но при этом, не очень хочется форму захламлять пустыми полями ввода. Когда они вбивают два адреса сайта в одно поле, получается нерабочая гиперссылка.

    В идеале, хотелось бы видеть одно поле ввода для адреса, при заполнении и потере фокуса которого, или автоматом появлялось дополнительное такое же поле, или была кнопочка “добавить еще адрес”.

    Ну для начала ads_url это предопределенное имя, или можно сделать “ads_url2″ и оно отработает точно также как и первое? Возможно ли в функции например прописать что-то похожее на такой вариант поведения, как я описал, чтобы использовать одно поле ads_url, чтобы в параметрах инпута допустим указывать разделитель, который добавится на выводе, а потом одно поле ads_url выдавало бы два адреса гиперссылками с разделителем между ними?

  3. admin:

    ads_url – нет не предопределенное имя, просто в дефолтном шаблоне template/post_default_template.php забита обработка этого поля
    по примеру можно сделать и ads_url2

    поле ads_mail – это другой случай, функция уведомления на почту отслеживает наличие в этом поле email и отправляет на него письмо
    но если ввести сюда адреса через запятую mail@sdhj.com,mail2@kasjd.com должно все правильно отработать письмо будет отправлено на все адреса
    единственное что надо подправить это вывод в post_default_template.php
    добавить разбивку строки запятыми и вывести в цикле адреса

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

    Есть два необязательных поля: “Тип объявления” и “Способ доставки”.

    В “Типе объявления” есть три варианта: Продаю, Куплю, Обменяю. Это я хочу реализовать на радио, я уже почти понял, как, только не могу понять, какой именно способ (в шорткоде или html) мне больше всего подойдет.

    А во втором поле “Способ доставки” есть пять вариантов: Почта, Самовывоз, Курьерская доставка, Служба доставки и Отправка эл. почтой (если речь идет об электронной копии).

    Теперь по первому полю. Допустим, что не все “продают”. Кто-то “сдает в аренду” или “отдает даром”. В этом то и вопрос: для вариантов Продаю и Куплю надо сделать выпадающие списки: Продаю/Сдаю в аренду/Отдаю Даром и Куплю/Возьму в аренду/Возьму даром соответственно. Третий вариант Обменяю не нуждается в других вариантах, имхо. Вопрос по радио для данного поля: как это правильно реализовать? Подскажите хотя бы для одного из этих полей. Я уверен, что это возможно, но пока не пойму, как именно такое сделать. Если я правильно понял, то необходимо будет прописывать для всех элементов option одинаковый value, который кроме того должен соответствовать value в поле [ads_input type="radio"...], верно?

    Теперь по полю “Способ доставки”. Данное поле будет из чекбоксов. Здесь в вариантах выпадающие списки не нужны, все и так понятно, если бы не одно НО: вариант “Служба доставки”. Здесь я хочу сделать поле для ввода произвольного текста, чтобы рекламодатель мог указать, какой именно службой доставки он хочет доставить (может принять) продаваемый (покупаемый) товар. Как правильно реализовать такой вариант? Здесь у меня даже мыслей нет, ничего не приходит на ум, кроме того же поля value, которое, наверное, также должно соответствовать значению основного поля с чекбоксом.

    Хотя бы объясните: на правильном ли я пути в вариантах со значениями полей value? Я пока ничего не пробовал тестировать, кроме создания набросок кода.

    Очень надеюсь на вашу помощь. Заранее благодарен.

    • admin:

      http://irent.com.ua/?page_id=56 вот посмотри пример
      1 создаешь категорию-контейнер Action (действия):
      Продаю, Куплю, Сдаю в аренду, Отдаю Даром, Возьму в аренду, Возьму даром
      далее делаем выбор действия [ads_select] или [ads_radio_area] указываем taxonomy=category child_of=24 – ну тут понятно

      С доставкой можно сделать тоже самое категорию-контейнер Доствка и там небольшую иерархию задать:
      Почта
      Самовывоз
      Курьерская доставка
      Служба доставки
      Автолюкс
      Нова Почты
      Ночной Экспрес
      Еще одна служба доставки
      …..
      Отправка эл. почтой

      то-есть пункт Служба доставки пользователь выбрать не может ему придется сразу выбирать один из сервисом ну вот и все я бы сделал так

      • Я не совсем понял, как это сделать. Можете кинуть код хотя бы для одного из примеров?

        • admin:

          ну какой тут код, создаешь категорию-контейнер Action в ней создаешь подкатегории: Продаю, Куплю, Сдаю в аренду, Отдаю Даром, Возьму в аренду
          далее настраиваешь шорткод на вывод:
          [ads_radio_area taxonomy=category child_of=24/] 24 id категории Action
          вот и все ну или ads_select можно применить

  5. OlegT:

    Подскажите, а каким образом можно на странице редактирования (в форме, при условии, что запись сохранена, т.е. ей уже присвоен ID) создать ссылку или кнопку, которая открывает другую форму, и в определенное поле вставляет ID, а после сохранения записи из новой формы передает ID новой записи в старую?

    Вот допустим каталог состоит из разных организаций. Параллельно есть каталог проектов разных организаций. На странице организации нажать ссылку или кнопку создания проекта, открывается форма, а в ней уже ID организации проставляется, и на выводе формируется ссылка на созданный проект, в проекте на организацию – исполнитель.

  6. Эльдар:

    Заполнение:
    Газ
    Вывод:
    Газ:
    Выводит:
    Газ: on

    Редактируем запись – убираем галочку с чекбокса ads_gaz, на выводе результат тот же:
    Газ: on

    Где ошибаюсь подскажите пожалуйста.

  7. Павел:

    Подскажите как и где прописать чтобы содержимого определенного произвольного поля при публикации автоматом отправлялось на указанный имеил?

  8. Эмиль:

    Ваш номер телефона:
    [ads_input type="text" size=30 name="adp_phone" value=/] Что ту не правильно?
    и почему при выводе объявления пишет Error in save_form() -> wp_update_post() и если исправить на –
    Ваш номер телефона:
    [ads_input name="ads_myvar" type="text" size=30/], то не выводит после публикации объявления номер телефона. Надеюсь на Вашу помощь

  9. Вечер добрый. Возможно тупой вопрос, но что то ничего в голову не приходит.
    Возможно ли дать пользователю самостоятельно добавлять метки?
    Не выбирать из имеющихся, а именно добавлять новые?

  10. Заранее прошу прощения. ночь, не думаю что пишу.
    проблема не просто метки добавить, а кастомные теги, taxonomy=numbres

    • admin:

      предусмотрена обработка только стандартных меток естественно post_tag WP реагирует только поле tags_input
      в вашем случае taxonomy=numbres добавляете новый фильтр обработки данных на событие ads_after_saving http://wp.od.ua/?p=1041
      ну и там цепляете свои метки к посту http://codex.wordpress.org/Function_Reference/wp_insert_term

      главное сначала не забываем сбросить(обнулить) таксономию для этого поста а потом уже присваиваем по новой
      иначе пользователь ввел метки – они присвоились посту, потом он передумал убрал часть меток – а они все равно останутся
      думаю понятно нюанс объяснил

  11. Дмитрий:

    Здравствуйте.
    Наверное это вопрос больше вообще к вордпрессу относится.

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

    С селект или радио понятно, название поля->несколько значений, где значение в произвольное поле к этому ключу можно записать только одно.

    А вот как быть с чекбоксами? где к одному посту нужно отметить несколько чекбоксов(например несколько названий городов)

  12. вечер добрый.

    Из разряда хочется странного ))
    [code]

    [ads_input name="ads_email2" class="ads-email" type="text" placeholder="    Email *"]
    [/code]

    Две одинаковые конструкции. посмотреть можно тут http://page.nsk.ru/add/

    Первая выводит все как положено, вторая выводит код     Email не преобразовывая его.

    Все бы ничего, можно и первой конструкцией пользоваться если бы не одно но,
    при редактировании материала через форму первая конструкция не получает значение поля, а вторая – получает. Где бы мои ручки поправить?
    Заранее спасибо.

  13. Руки бы мне оторвать (((
    через input плейсхолдер выводится нормально, но теряется значение поля при редактировании
    через шорткод плейсхолдер выводится кодом, но зато нормально возвращает значение введенного поля при редактировании

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

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