diff options
Diffstat (limited to 'modules/contact/contact.module')
-rw-r--r-- | modules/contact/contact.module | 33 |
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; |