Стоит задача добавить пару полей в стандартную форму контактов (например, телефон).
Ни каких готовых решений, к сожалению, найти не удалось. Выходит, что придется менять модуль Contacts. Но если в 5-м друпале у меня это получилось сразу, то в 6-м не могу сходу сообразить, куда чего дописать. Возможно, кто либо сталкивался с такой проблемой?
Спасибо заранее.
Комментарии
Попробуйте модуль webform. Он позволяет конструировать формы, а как один из вариантов обработки есть отправка на емейл.
Либо посмотрите блог Neochief - у него есть про изменение форм
hook_form_alter
я сделал свой модуль (у меня drupal 7)
он добавляет поле с номером телефона
и изменяет шаблон письма при отправки контактной формы сайта
<?php
$message['body']=array();
<?
function lotcontact_form_contact_site_form_alter(&$form, &$form_state)
{
$form['phone']=array(
'#type' => 'textfield',
'#title' => t('Your phone number'),
'#maxlength' => 100,
'#default_value' => '',
'#weight' => 2,
);
$form['name']['#weight']=0;
$form['mail']['#weight']=1;
$form['subject']['#weight']=3;
$form['cid']['#weight']=4;
$form['message']['#weight']=5;
$form['copy']['#weight']=6;
}
function lotcontact_mail_alter(&$message)
{
if($message['module']=='contact'&&($message['key']=='page_mail'||$message['key']=='page_copy'))
{
$language=$message['language'];
$variables=array( '!site-name' => variable_get('site_name', 'Drupal'),
'!sender-name' => $message['params']['name'],
'!sender-phone' => $message['params']['phone'],
'!sender-mail' => $message['params']['mail'],
);
$message['body'][]=t("A new message from the site !site-name", $variables, array('langcode' => $language->language));
$message['body'][]=t("Contact person: !sender-name\nPhone number: !sender-phone\nE-mail: !sender-mail", $variables, array('langcode' => $language->language));
$message['body'][]=$message['params']['message'];
}
}
?>
Как вариант - можно и в template.php