Вопрос по форме обратной связи

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

Аватар пользователя Kittyra Kittyra 19 ноября 2010 в 17:44

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

Комментарии

Аватар пользователя k-s k-s 22 ноября 2010 в 1:45

в вебформу добавить скрытый computed field, который будет сохранять id ноды?

форма скрывается через css, показывается при помощи jquery

Аватар пользователя Kittyra Kittyra 24 ноября 2010 в 10:09

тогда ссылка, ведущая на форму заказа будет такая? - node/123?product=<?php print drupal_get_title() ?>&id=<?php print arg(1); ?>">Задать вопрос по товару - если так, то придется добавлять поле id,заполненное - %get[id],

а если обойтись без этого, создав поле с -

http://sitename/node/%get[product] ?

Аватар пользователя k-s k-s 26 ноября 2010 в 2:16

Я не понял что-то в чем проблема? Поле формы же может автоматом заполняться номером ноды или тайтлом? Вроде может, а тогда незачем трогать ссылки

Аватар пользователя Kittyra Kittyra 28 ноября 2010 в 11:02

...проблема в том, что в id не получается получить, на почту информация о нем не приходит

шаги:
создано поле типа markup с

<?php
 
if($node=node_load($_GET['product']))
   print 
'<span class="label">' t('Product') . ': </span>' l($node->title'node/'.$node->nid
?>

создано поле типа hidden
http://www.site.ru/node/%get[product]
это id не дало "по умолчанию"

потом были попытки приделать это(для id):
поле <?php
if($node=node_load($_GET['product']))
print ($node->field_marker2[0]['value'].'http://site.ru/node/%request[product]')
?>
эт поле markup ,ввод тож php-код..

и еще один markup (так..проверить, работает ли)
<?php print base_path(); ?>node/123?product=<?php print drupal_get_title() ?>&id=<?php print arg(1); ?>">Задать вопрос по товару

либо где-то ошибка, либо может, логика не совсем верна
с webform первый раз работаю, приходится учиться на ошибках)..

Аватар пользователя k-s k-s 28 ноября 2010 в 16:45

А, до меня тока дошло что надо Biggrin

У тебя есть cck computed field в ноде товара, который сохраняет сгенерированную ссылку на форму с параметром ?product=id как-то вот так:

<?php

// Computed Code

if (!$node->nid) { node_save($node); }  // чтобы нода имела id если его еще нет
$node_field[0]['value'] = $node->nid;

// Display Format

$display = '<a href="www.site.ru/node/formid?product=' . $node_field_item['value'] . '>webform </a>'

?>

Или ссылка генерируется в шаблоне:

<a href="www.site.ru/node/formid?product=<?php print $node->nid; ?>">webform for <?php print $node->title; ?></a>

Это в ноде продукта. Cама форма тоже имеет поле, которое имеет Default Value  %get[product] , то есть принимает переданный через URL параметр product.

Должно работать

Аватар пользователя Kittyra Kittyra 29 ноября 2010 в 10:44

cck computed field нет, уууууууууу буду думать
предыдущий textfield %get[product], странное получает значение из url - просто /node без конкретики
не получается у мну..

Аватар пользователя k-s k-s 29 ноября 2010 в 12:57

"Kittyra" wrote:
предыдущий textfield %get[product], странное получает значение из url - просто /node без конкретики не получается у мну..

А ссылка id содержит? А то непонятно где проблема, если ссылка генерируется и id в url передается, то не надо никаких computed полей, значит прием параметра в форме не работает.

Хотя мне кажется проблема именно в том, что ссылка без id генерируется

Аватар пользователя Kittyra Kittyra 30 ноября 2010 в 7:27

"k-s" wrote:
<?php

// Computed Code

if (!$node->nid) { node_save($node); } // чтобы нода имела id если его еще нет
$node_field[0]['value'] = $node->nid;

// Display Format

$display = 'webform '

?>

делаю так, видимо что-то не так делаю..

Аватар пользователя k-s k-s 30 ноября 2010 в 15:25

Вот так работает, только что попробовал

Для cck Computed Field

Computed Code:

if (!$node->nid) node_save($node);
$node_field[0]['value'] = $node->nid;

Display Format:

$display = l(
                        'webform' ,
                        'http://www.site.ru/form' ,
                         array('html' => true, 'query' => 'product=' . $node_field_item['value'])
                      );
Аватар пользователя Kittyra Kittyra 30 ноября 2010 в 19:56

что я делаю не так - не могу разобраться
в Computed Code и Display Format забиваю эти значения,а вот
Store using the database settings below (required for Views use)не отмечаю, быть может там еще нужны какие-ниб настройки, даж спрашивать уже не прилично)

Аватар пользователя k-s k-s 30 ноября 2010 в 21:25

У меня там 'text' выбрано, но и без этого работает.

Что поле вообще выдает? Ничего или ссылку без id?

upd
И там кстати каждый раз когда меняешь чего в computed field'е нужно ноду пересохранить, чтобы поле значение пересчитало, возможно ты код поля меняешь, а в ноде еще до этого расчитанное и сохраненное значение остается, старое.

Аватар пользователя Kittyra Kittyra 30 ноября 2010 в 23:25

The ID for excluding or including this element is webform@node/189.edit-submitted-vash-vopros.
id формы есть, а вот ноды нет

на почту приходит следующее

Маркер (hidden):
http://www.site.ru/node/
/Маркер -эт так поле называется произвольно у меня

все пересохранено

***
не получилось пока с id

Аватар пользователя k-s k-s 30 ноября 2010 в 23:26

"Kittyra" wrote:
id формы есть, а вот ноды нет

В смысле ноды нет? Я честно не совсем понимаю что и как ты делаешь.

Ссылка на форму говоришь прямо в шаблоне ноды товара генерируется? Если в шаблоне, то там вообще достаточно написать

'<a href="www.site.ru/node/formid?product=' . $node->nid

и не нужно ни с какими полями мучаться. Если все таки в поле нужно ссылку хранить, то то что выше работает. Что форма шлет мне пока не интересно, ты посмотри в ноде товара ссылка с помощью computed field сгенерирована правильно? Если да, то тогда уже форму ковырять надо, а то так не понятно что где не работает

Аватар пользователя k-s k-s 1 декабря 2010 в 0:25

Короче вот я тут поставил себе webform

Идем добавляем в ноду товара computed field, заполняем его как показано выше или вот ниже


Создаем ноду или пересохраняем старую, смотрим на ссылку. У меня это пятая нода (а форма шестая), ссылка на месте

Смотрим, параметр на месте, все ok

Теперь идем в форму и создаем там скрытое поле

Затем переходим на форму с ноды товара, смотрим в адресную строку для уверенности

Заполняем форму, смотрим результат

На почту тоже все пришло

Надеюсь поможет