Как можно в Webform добавить поле, чтобы в нем отображалась название ноды с которой перешли в эту форму?

Главные вкладки

Аватар пользователя sser sser 7 марта 2013 в 19:28

Всем привет любое время суток!
Подскажите люди, кто разбирается. Как можно в Webform добавить такое поле, чтобы в нем отображалась название ноды с которой перешли в эту форму.
Пересмотрел подставочные ноды, но не вижу нужного. Возможно я его не правильно понимаю или его нету. Очень нехорошо, потому что придется много форм создавать. До каждой ноды.
Drupal 7.
За ранее спасибо за любой ответ!

Комментарии

Аватар пользователя IPlayer IPlayer 7 марта 2013 в 20:35

В ссылке, по которой будет открываться эта форма, нужно передать параметр с заголовком ноды. А у нужного поля формы указать дефолтное значение. Там прям примеры есть:
%get[ключ] - Tokens may be populated from the URL by creating URLs of the form http://example.com/my-form?foo=bar. Using the token %get[foo] would print "bar".

Ссылку на форму надо генерить в препроцессинге ноды и вставлять в нужное место в шаблоне ноды.

Аватар пользователя sser sser 8 марта 2013 в 12:23

IPlayer wrote:
В ссылке, по которой будет открываться эта форма, нужно передать параметр с заголовком ноды. А у нужного поля формы указать дефолтное значение. Там прям примеры есть:
%get[ключ] - Tokens may be populated from the URL by creating URLs of the form http://example.com/my-form?foo=bar. Using the token %get[foo] would print "bar".

Ссылку на форму надо генерить в препроцессинге ноды и вставлять в нужное место в шаблоне ноды.


Да я видел это пример, и пробовал, но у меня не получилось вывести заголовок ноды в поле формы. Потратил немало времени. Но увы безрезультатно. Возможно что-то не так прописывал. Поэтому и обратился на форум.

Аватар пользователя sser sser 8 марта 2013 в 1:31

Да я видел это пример, и пробовал, но у меня не получилось вывести заголовок ноды в поле формы. Потратил немало времени. Но увы безрезультатно. Возможно что-то не так прописывал. Поэтому и обратился на форум.

Аватар пользователя WebRemake WebRemake 8 марта 2013 в 17:28

- создать в форме поле Type=Textfield
- в настройках поля прописать Default value = [current-page:title] (или любой другой токен, который вам больше подходит)
- чтоб при заполнении формы пользователь не мог изменить значения этого поля включить чекбокс Disabled

Аватар пользователя sser sser 10 марта 2013 в 0:27

WebRemake wrote:
- создать в форме поле Type=Textfield
- в настройках поля прописать Default value = [current-page:title] (или любой другой токен, который вам больше подходит)
- чтоб при заполнении формы пользователь не мог изменить значения этого поля включить чекбокс Disabled

Спасибо что откликнулись.
Так, все это с Type=Textfield, Default value и Disabled я знаю. Вот меня и интересует как правильно прописать Default value. Потому что token [current-page:title] выводить заголовок даной формы. А мне нужно предыдущей ноды. Как правильно прописать этот token.
Это, как мне кажется, связано с токеном %get[ключ] - Tokens may be populated from the URL by creating URLs of the form http://example.com/my-form?foo=bar. Using the token %get[foo] would print "bar". Только я не пойму как правильно нужно это прописать.

Аватар пользователя WebRemake WebRemake 10 марта 2013 в 1:44

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

Аватар пользователя AlexeyBorisenko AlexeyBorisenko 24 апреля 2013 в 15:46

а я понял, делаем ссылку примерно такого плана:
zapros.htm?name=$node->title
zapros.htm - это страницы веб формы
$node->title дает Название ноды в которой мы находимся, и откуда нажимаем кнопку.
а в поле делаем %get[name]
и получаем в веб форму автоподстановку наименования предыдущей ноды.

Аватар пользователя sandman81 sandman81 22 августа 2013 в 17:36

AlexeyBorisenko wrote:
а я понял, делаем ссылку примерно такого плана:
zapros.htm?name=$node->title
zapros.htm - это страницы веб формы
$node->title дает Название ноды в которой мы находимся, и откуда нажимаем кнопку.
а в поле делаем %get[name]
и получаем в веб форму автоподстановку наименования предыдущей ноды.

а если webform работает в блоке и загружается через ajax и нод на странице много то что выводятся через Views, как тогда загрузить заголовок и как узнать с какой именно ноды нажали на кнопку вызывающую webform

Аватар пользователя vitaboss vitaboss 10 мая 2013 в 2:19

"sser" wrote:
Потому что token [current-page:title] выводить заголовок даной формы. А мне нужно предыдущей ноды. Как правильно прописать этот token.

В Webform можно включить режим отображения в блоке, блок отображать только на определенных нодах, получается все четко (в заказе приходит урл страницы с которой сделали заказ). Есть какой-то модуль, не помню уже, который аяксом блок подгружает, поэтому можно сделать кнопку под нодой "Заказать" - разворачивается блок с Webform на этой же странице и чел видит, то что заказывает. Пойдет?

Аватар пользователя Antoniy Antoniy 10 мая 2013 в 2:41

"vitaboss" wrote:
В Webform можно включить режим отображения в блоке

Не получится. Если Webform создавался отдельно, в отдельном типе материала, то он будет понимать только те токены, которые у него отображаются в файлдсете "Token values" при редактировании поля.

А вот если форма Webform сделана в том же типе материала, который нужно "заказать", то может быть. Но создавать к каждой ноде свой вебформ это не айс.

Аватар пользователя vitaboss vitaboss 10 мая 2013 в 2:53

"Kremenetskiy" wrote:
Не получится.

Получится!!!

У меня работает, когда-то на поиск решения убил наверное неделю. Модуль Webform глючил, какую-то строчку приходилось каждый раз в модуле править после обновления, токен не передавал значение. Сейчас работает все в текущей версии модуля. Только токен нужно использовать скорее всего [current-page:url]. Это самое простое решение. Вот что еще вспомнил, то ли в отображении полей, то ли в css скрыл это поле от заказчика.

"Kremenetskiy" wrote:
Но создавать к каждой ноде свой вебформ это не айс.

"Kremenetskiy" wrote:
«Джинса» на Drupal или как «заказывать» материалы http://www.drupal.ru/node/23886[/quote]
тоже не айс!

Аватар пользователя Antoniy Antoniy 10 мая 2013 в 3:00

"vitaboss" wrote:
Получится!!!

Очень хотелось бы увидеть ваше решение в расписанном виде. Потому что даже если поставить в блоковом webform токен %title (который и означает тайтл текущей ноды), то будет отображаться тайтл ноды webform, а не того материала, который нужно заказать.

Токен [current-page:url] и ему подобные a la токены pathauto, отображаются в полях webform, как есть. А вот обработка GET и POST запросов в виде токенов webform работает на ура.

Аватар пользователя vitaboss vitaboss 10 мая 2013 в 12:24

"Kremenetskiy" wrote:
Очень хотелось бы увидеть ваше решение в расписанном виде.

Расписываю... Smile

Установлены модули Webform Tokens, Token, Entity tokens - все ли они нужны для этого или нет не знаю, да и не помню уже.

Все то, что я написал выше + посмотрел реально какой токен установлен в поле. Оказалось что там у меня вот так http://moysite.ru/[current-page:query:q]

Может [site:url][current-page:query:q] тоже будет работать, но почему-то у меня именно как выше написал.

Где я взял это, не спрашивайте, не помню, может где-то здесь сп***л. Но все работает уже года 2, гарантирую!

Аватар пользователя Antoniy Antoniy 10 мая 2013 в 16:01

"vitaboss" wrote:
Расписываю...

Спасибо! Но вы не упомянули, что эти токены работают с Webform 4-ой версии. Текущая версия на сей момент Webforn 7.x-4.0-alpha6

А модуль Webform Tokens тут не причем, он нужен для интеграции с такими модулями, как FillPDF, о чем и написано на странице модуля Webform Tokens.

Эх, надо было раньше попробовать Webform 4-ой версии. О возможности предоставления в этой версии прогрессивных токенов же давно велась речь на орге.

Аватар пользователя Antoniy Antoniy 10 мая 2013 в 16:55

Вот только токенов по текущей ноде пока маловато:
[current-page:page-number]
[current-page:query:?]
[current-page:url]
[current-page:title]

Но хотя можно и тут лазейки найти. Мне надо было, что бы выводилось значение поля, токена для которого нет в current-page. Но значение этого поля используется для построения алиасов в виде последнего значения в паттерне Pathauto. Я использовал [current-page:url:args:last] и вуаля - значение поля выводится, но только не из самого поля, а из URL.

Аватар пользователя vitaboss vitaboss 10 мая 2013 в 17:00

"Kremenetskiy" wrote:
Но вы не упомянули, что эти токены работают с Webform 4-ой версии. Текущая версия на сей момент Webforn 7.x-4.0-alpha6

Я и сам не знал этого, внимания даже не обратил. Извиняйте.

"Kremenetskiy" wrote:
Топикастер может ставить в теме [Решено], если будет использовать Webforn 7.x-4.0-alpha6

"sser (Топикастер)" wrote:
Немного изменил саму задачу и сам функционал. Так что это больше не было нужно

Аватар пользователя Antoniy Antoniy 10 мая 2013 в 17:02

"vitaboss" wrote:
Так что это больше не было нужно

Но вещь все равно клевая. Если 4-я версия Webform будет развиваться в плане токенов, то будет вообще замечательно.

Аватар пользователя Antoniy Antoniy 10 июня 2013 в 0:20

Не пойму, как Webform 4.x обрабатывает POST-запросы, например по safe_key. Раньше ставишь в default-значение %post[key] и ОК.

Аватар пользователя Tear Tear 18 апреля 2016 в 21:12

Создал views. Добавил поле "заголовок", перезаписал его в вид <a class="colorbox-node" href="/node/260?width=600&height=530&foo=[title]">Заказать</a>.
В форме создал поле текстовое
Значение [title] передается в ссылку, а вот в форме отображается просто текст "%get[foo]".
Не пойму в чем проблема.

Аватар пользователя GoodNight GoodNight 10 августа 2016 в 16:35

1. создаете текстовое поле в вебформе. (можно отключить редактирование или спрятать через css)
2. значение по умолчанию [current-page:query:aaa]
3. ссылка на форму ?aaa=something
4. модуль token должен быть установлен
5. замените тему на [решено]