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

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

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

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

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

На нодах с типом материала 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, сегодня... Уже голову сломал.

Комментарии

Аватар пользователя Ampleev Ampleev 14 декабря 2012 в 17:12

Нашел такое решение 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) {

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

Аватар пользователя Enemy Enemy 14 декабря 2012 в 18:20

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

Аватар пользователя Ampleev Ampleev 14 декабря 2012 в 20:11

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

Аватар пользователя Ampleev Ampleev 14 декабря 2012 в 20:12

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

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

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

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

Аватар пользователя Ampleev Ampleev 14 декабря 2012 в 21:31

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

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

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

Аватар пользователя Ampleev Ampleev 17 декабря 2012 в 10:23

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