Добавить поле в форме контактов

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

Аватар пользователя steklobiz steklobiz 16 апреля 2009 в 23:26

Стоит задача добавить пару полей в стандартную форму контактов (например, телефон).
Ни каких готовых решений, к сожалению, найти не удалось. Выходит, что придется менять модуль Contacts. Но если в 5-м друпале у меня это получилось сразу, то в 6-м не могу сходу сообразить, куда чего дописать. Возможно, кто либо сталкивался с такой проблемой?

Спасибо заранее.

Комментарии

Аватар пользователя ankheg ankheg 17 апреля 2009 в 0:30

Попробуйте модуль webform. Он позволяет конструировать формы, а как один из вариантов обработки есть отправка на емейл.

Аватар пользователя lot lot 21 ноября 2011 в 13:42

я сделал свой модуль (у меня drupal 7)

он добавляет поле с номером телефона
и изменяет шаблон письма при отправки контактной формы сайта

<?php
<?
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']=array();
    
$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