summaryrefslogtreecommitdiff
path: root/modules/contact/contact.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/contact/contact.module')
-rw-r--r--modules/contact/contact.module33
1 files changed, 17 insertions, 16 deletions
diff --git a/modules/contact/contact.module b/modules/contact/contact.module
index 6c343882f..891992703 100644
--- a/modules/contact/contact.module
+++ b/modules/contact/contact.module
@@ -45,6 +45,10 @@ function contact_permission() {
'title' => t('Access site-wide contact form'),
'description' => t('Send e-mails to administrator-defined recipients using the site-wide contact form.'),
),
+ 'access user contact forms' => array(
+ 'title' => t('Access user contact forms'),
+ 'description' => t('Send e-mails to users using their contact forms.'),
+ ),
);
}
@@ -117,8 +121,8 @@ function contact_menu() {
function _contact_personal_tab_access(stdClass $account) {
global $user;
- // Anonymous users cannot use or have contact forms.
- if (!$user->uid || !$account->uid) {
+ // Anonymous users cannot have contact forms.
+ if (!$account->uid) {
return FALSE;
}
@@ -138,7 +142,7 @@ function _contact_personal_tab_access(stdClass $account) {
return FALSE;
}
- return TRUE;
+ return user_access('access user contact forms');
}
/**
@@ -168,38 +172,35 @@ function contact_mail($key, &$message, $params) {
$variables = array(
'!site-name' => variable_get('site_name', 'Drupal'),
'!subject' => $params['subject'],
- '!category' => isset($params['contact']['category']) ? $params['contact']['category'] : '',
+ '!category' => isset($params['category']['category']) ? $params['category']['category'] : '',
'!form-url' => url($_GET['q'], array('absolute' => TRUE, 'language' => $language)),
+ '!sender-name' => $params['sender']->name,
+ '!sender-url' => $params['sender']->uid ? url('user/' . $params['sender']->uid, array('absolute' => TRUE, 'language' => $language)) : $params['sender']->mail,
);
switch ($key) {
case 'page_mail':
case 'page_copy':
- $variables += array(
- '!sender-name' => $params['name'],
- );
$message['subject'] .= t('[!category] !subject', $variables, array('langcode' => $language->language));
- $message['body'][] = t("!sender-name sent a message using the contact form at !form-url.", $variables, array('langcode' => $language->language));
+ $message['body'][] = t("!sender-name (!sender-url) sent a message using the contact form at !form-url.", $variables, array('langcode' => $language->language));
$message['body'][] = $params['message'];
break;
case 'page_autoreply':
$message['subject'] .= t('[!category] !subject', $variables, array('langcode' => $language->language));
- $message['body'][] = $params['contact']['reply'];
+ $message['body'][] = $params['category']['reply'];
break;
case 'user_mail':
case 'user_copy':
$variables += array(
- '!user-name' => $params['account']->name,
- '!user-edit-url' => url('user/' . $params['account']->uid . '/edit', array('absolute' => TRUE, 'language' => $language)),
- '!sender-name' => $params['user']->name,
- '!sender-url' => url('user/' . $params['user']->uid, array('absolute' => TRUE, 'language' => $language)),
+ '!recipient-name' => $params['recipient']->name,
+ '!recipient-edit-url' => url('user/' . $params['recipient']->uid . '/edit', array('absolute' => TRUE, 'language' => $language)),
);
$message['subject'] .= t('[!site-name] !subject', $variables, array('langcode' => $language->language));
- $message['body'][] = t('!user-name,', $variables, array('langcode' => $language->language));
- $message['body'][] = t("!sender-name (!sender-name-url) has sent you a message via your contact form (!form-url) at !site.", $variables, array('langcode' => $language->language));
- $message['body'][] = t("If you don't want to receive such e-mails, you can change your settings at !user-edit-url.", $variables, array('langcode' => $language->language));
+ $message['body'][] = t('!recipient-name,', $variables, array('langcode' => $language->language));
+ $message['body'][] = t("!sender-name (!sender-url) has sent you a message via your contact form (!form-url) at !site-name.", $variables, array('langcode' => $language->language));
+ $message['body'][] = t("If you don't want to receive such e-mails, you can change your settings at !recipient-edit-url.", $variables, array('langcode' => $language->language));
$message['body'][] = t('Message:', array(), array('langcode' => $language->language));
$message['body'][] = $params['message'];
break;