Приветствую всех!
Возникла задача - сделать форму обратной связи, для чего предполагаю использовать webform, ссылку на форму нужно расположить в типе материала (карточка продукции, в виде - "задайте вопрос о товаре") в каждой карточке, создав дополнительное поле для этого типа материала. пока не получилось сделать так, чтобы виден был только заголовок (задайте вопрос..), она видна полностью
вопрос, на который я пока даже не предполагаю ответа - как возможно проследить, из какой карточки товара был отправлен запрос через форму обр. связи? и возможно ли это?
Комментарии
в вебформу добавить скрытый computed field, который будет сохранять id ноды?
форма скрывается через css, показывается при помощи jquery
тогда ссылка, ведущая на форму заказа будет такая? - node/123?product=<?php print drupal_get_title() ?>&id=<?php print arg(1); ?>">Задать вопрос по товару - если так, то придется добавлять поле id,заполненное - %get[id],
а если обойтись без этого, создав поле с -
http://sitename/node/%get[product] ?
Я как понял свернутая форма будет на каждой странице товара, нет?
да, на каждой странице нужно
Я не понял что-то в чем проблема? Поле формы же может автоматом заполняться номером ноды или тайтлом? Вроде может, а тогда незачем трогать ссылки
...проблема в том, что в 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 первый раз работаю, приходится учиться на ошибках)..
А, до меня тока дошло что надо
У тебя есть cck computed field в ноде товара, который сохраняет сгенерированную ссылку на форму с параметром ?product=id как-то вот так:
// 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>'
?>
Или ссылка генерируется в шаблоне:
Это в ноде продукта. Cама форма тоже имеет поле, которое имеет Default Value
%get[product]
, то есть принимает переданный через URL параметр product.Должно работать
cck computed field нет, уууууууууу буду думать
предыдущий textfield %get[product], странное получает значение из url - просто /node без конкретики
не получается у мну..
поставь, дело не долгое
попррробую)
А ссылка id содержит? А то непонятно где проблема, если ссылка генерируется и id в url передается, то не надо никаких computed полей, значит прием параметра в форме не работает.
Хотя мне кажется проблема именно в том, что ссылка без id генерируется
делаю так, видимо что-то не так делаю..
да без id, о чем и говорю..
Вот так работает, только что попробовал
Для cck Computed Field
Computed Code:
$node_field[0]['value'] = $node->nid;
Display Format:
'webform' ,
'http://www.site.ru/form' ,
array('html' => true, 'query' => 'product=' . $node_field_item['value'])
);
что я делаю не так - не могу разобраться
в Computed Code и Display Format забиваю эти значения,а вот
Store using the database settings below (required for Views use)не отмечаю, быть может там еще нужны какие-ниб настройки, даж спрашивать уже не прилично)
У меня там 'text' выбрано, но и без этого работает.
Что поле вообще выдает? Ничего или ссылку без id?
upd
И там кстати каждый раз когда меняешь чего в computed field'е нужно ноду пересохранить, чтобы поле значение пересчитало, возможно ты код поля меняешь, а в ноде еще до этого расчитанное и сохраненное значение остается, старое.
The ID for excluding or including this element is webform@node/189.edit-submitted-vash-vopros.
id формы есть, а вот ноды нет
на почту приходит следующее
Маркер (hidden):
http://www.site.ru/node/
/Маркер -эт так поле называется произвольно у меня
все пересохранено
***
не получилось пока с id
В смысле ноды нет? Я честно не совсем понимаю что и как ты делаешь.
Ссылка на форму говоришь прямо в шаблоне ноды товара генерируется? Если в шаблоне, то там вообще достаточно написать
и не нужно ни с какими полями мучаться. Если все таки в поле нужно ссылку хранить, то то что выше работает. Что форма шлет мне пока не интересно, ты посмотри в ноде товара ссылка с помощью computed field сгенерирована правильно? Если да, то тогда уже форму ковырять надо, а то так не понятно что где не работает
Короче вот я тут поставил себе webform
Идем добавляем в ноду товара computed field, заполняем его как показано выше или вот ниже
Создаем ноду или пересохраняем старую, смотрим на ссылку. У меня это пятая нода (а форма шестая), ссылка на месте
Смотрим, параметр на месте, все ok
Теперь идем в форму и создаем там скрытое поле
Затем переходим на форму с ноды товара, смотрим в адресную строку для уверенности
Заполняем форму, смотрим результат
На почту тоже все пришло
Надеюсь поможет
Огромное тебе спасибо ))