передайте значение электронной почты cck в блок веб-формы
В настоящее время у меня есть 2 веб-формы, отображаемые на странице - они динамически вставляются из node.tpl.php файл.
Однако у меня также есть поле cck на текущем узле для адреса электронной почты - я хотел бы иметь возможность передавать это значение электронной почты непосредственно в поле "Адрес электронной почты" веб-формы.
Это создаст нового получателя электронной почты в зависимости от того, какой узел вы просматривали. Например:
Страница "О нас" содержала поле "Электронная почта: [email protected] " - поэтому веб-форма, загруженная на боковой панели, будет отправлена по этому адресу.
Страница "Местоположение" содержит поле "Электронная почта: [email protected] " - теперь это будет адрес электронной почты, на который будут отправляться любые материалы с этой страницы.
Идея состоит в том, чтобы иметь 1 веб-форму и динамически изменять отправленное электронное письмо на основе поля cck. Возможно ли это вообще?
Спасибо, Гарри.
2 answers
В своей веб-форме добавьте "поле электронной почты" для получателя (скажем
email_recipient
).Перейдите к
node/123/webform/emails
, чтобы указать получателя в качестве ранее созданного поля.-
Создайте hook_form_alter, чтобы указать адрес электронной почты в поле веб-формы.
<?php function CUSTOM_form_alter(&$form, &$form_state, $form_id) { //you need to set up a CUSTOM module to store this. //use devel with dsm($form); to figure the name of each field if ($form['#id'] == 'webform-client-form-123') { //load the node from the url if (arg(0) == 'node' && is_numeric(arg(1))) { $node_email = node_load(arg(1)); //set your webform field to your email $form['submitted']['con_email_recipient']['#default_value'] = $node_email->field_email_recipient[0]['value']; } } } ?>
Добавьте немного CSS, чтобы скрыть поле, и оно должно работать, код не проверен, но я довольно уверен в шагах, также взгляните на Работа со значениями по умолчанию.
Я знаю, что это устарело, но на случай, если кто-то еще столкнется с этой проблемой, проблема заключается в следующей строке:
if (arg(0) = 'node' && is_numeric(arg(1))) {
Должно быть
if (arg(0) == 'node' && is_numeric(arg(1))) {