View source
<?php
module_load_include('inc', 'views_contact_form', 'views_contact_form.form');
function views_contact_form_views_api() {
return array(
'api' => 3,
'path' => drupal_get_path('module', 'views_contact_form') . '/views',
);
}
function views_contact_form_mail($key, &$message, $params) {
$language = $message['language'];
$variables = array(
'!site-name' => variable_get('site_name', 'Drupal'),
'!subject' => $params['subject'],
'!form-url' => url($_GET['q'], array(
'absolute' => TRUE,
'language' => $language,
)),
'!sender-name' => format_username($params['sender']),
'!sender-mail' => $params['sender']->mail,
);
if (empty($params['subject'])) {
$subject = t('A message from !sender-name (!sender-mail)', $variables, array(
'langcode' => $language->language,
));
}
else {
$subject = $params['subject'];
}
switch ($key) {
case 'views_contact_form_page_mail':
case 'views_contact_form_page_copy':
$message['subject'] .= $subject;
$message['body'][] = t("Page: !form-url ", $variables, array(
'langcode' => $language->language,
));
$message['body'][] = t("Sender name: !sender-name", $variables, array(
'langcode' => $language->language,
));
$message['body'][] = t("Sender mail: !sender-mail", $variables, array(
'langcode' => $language->language,
));
$message['body'][] = t('Message:');
$message['body'][] = $params['message'];
break;
}
}
function views_contact_form_field_formatter_info() {
$formats = array(
'contact_form' => array(
'label' => t('Contact form'),
'description' => t('Display the default Drupal\'s contact form.'),
'field types' => array(
'email',
),
),
);
return $formats;
}
function views_contact_form_field_formatter_view($object_type, $object, $field, $instance, $langcode, $items, $display) {
$element = array();
switch ($display['type']) {
case 'contact_form':
$data['emails'] = array();
foreach ($items as $email) {
if (valid_email_address($email['email'])) {
$data['emails'][] = $email['email'];
}
}
if (!empty($data['emails'])) {
$element[0] = drupal_get_form('views_contact_form_contact_form', $data);
}
break;
}
return $element;
}