Webform - вывод в любом месте ноды, передача адреса страницы

14 декабря 2012 в 16:04
Аватар пользователя Ampleev Ampleev 0 10

Здравствуйте!

Не могу решить вроде простую проблему. Сайт делал не я, но приходиться всё менять самому.

На нодах с типом материала brokerazh_charter выводилась форма (webform-6-01) ввода e-mail для получения более подробной информации о предложении. Причем форма выводилась на tabset в пустом месте, справа от текста.
Вот пример - http://www.nauticboats.ru/offer/charter/princess-95-my - справа от ТХ было поле для ввода e-mail.

Но модуль работал нестабильно, то Confirmation message не показывал, то мне e-mail не отправлял. Я обновился до webform_patched-6.3.18, но теперь опросника нет, где он должен быть это раз.
Я сделал опросник в Left sidebar, но при Submit'е указываю - перезагрузить текущую страницу - редиректит на сам опросник. И %get[q] (в поле hidden) выводит не ID текущей ноды, а ID ноды опросника.

Попробовал поставить непатченный модуль, но ничего не меняется.

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

Заранее спасибо!
Читал "Джинса для Webform", но ссылка мне не походит, нужно, чтобы опросник был уже на странице.

Самое интересное, что вчера вечером, после обновления, все прекрасно работало, даже после очистки кэша и запуска cron, сегодня... Уже голову сломал.

Комментарии

Нашел такое решение http://dovbysh.com/ru/blogs/kodo/webform-ispolzovanie-tokenov-title-i-nid, патч

diff --git a/webform.module b/webform.module
index 612adb0..ac6b654 100644
--- a/webform.module
+++ b/webform.module
@@ -2587,6 +2587,14 @@ function _webform_fetch_draft_sid($nid, $uid) {
function _webform_filter_values($string, $node = NULL, $submission = NULL, $email = NULL, $strict = TRUE, $allow_anonymous = FALSE) {
global $user;
static $replacements;
+
+ // Use the current node as a fallback if it wasn't passed in.
+ if ($node == NULL) {
+ $q = $_GET['q'];
+ $q = explode('/',$q);
+ $qid = (int)$q[1];
+ $node = node_load($qid);
+ }

// Don't do any filtering if the string is empty.
if (strlen(trim($string)) == 0) {

куда это вставлять?

14 декабря 2012 в 17:12

не знаю, с вебформой всё выводится нормально и всё передаётся, что мешает сделать в ссылке get=блабла

14 декабря 2012 в 18:20

Мешает то, что мне нужна не ссылка, а webform, расположенный прямо на ноде, либо в блоке.
Ну, пусть будет ссылка. Как сделать, чтобы в "get" передавать текущий %title страницы?

14 декабря 2012 в 20:11

делаю так:
a class="popups" href="http://www.site.ru/node/626&adr=$title" >TEXT

В опроснике есть текстовое поле со значением по-умолчанию %get[adr]

node/626 - опросник webform

adr=... - что тут должно быть, чтобы передавать id любой ноды, где пользователь вызвал Webform?

14 декабря 2012 в 20:12

заработало так
a class="popups" href="http://www.nauticboats.ru/node/626&adr=<?php print arg(1); ?>"

но: 1. как сделать тоже самое без всяких ссылок, просто вывод webform в блоке и передачей ид ноды
2. после нажмтия на Submit popup-окно не закрывается и в него грузится нода, с которой был отправлен запрос

что посоветуете?

14 декабря 2012 в 21:31

попробовал webform_patched, но токены [[page-title]] и [[current-page-url]] все равно выводят пустое значение.
В общем два варианта с проблемами:
1. Либо Webform в блоке, мыло отправляется, страница корректно перезагружается, но не передается node id
2. Либо Webform сделан Popup'ным, любые параметры можно передать, но после Submit popup-окно не закрывается, и дальше всё грузится прямо в него.

17 декабря 2012 в 10:23