View source
<?php
require_once 'mail_safety.entity.inc';
function mail_safety_menu() {
$menu_items = array();
$menu_items['admin/config/development/mail_safety/dashbard'] = array(
'title' => 'Dashboard',
'type' => MENU_LOCAL_TASK,
'access arguments' => array(
'use mail safety dashboard',
),
'weight' => -10,
);
$menu_items['admin/config/development/mail_safety/%mail_safety_mail/view'] = array(
'title' => 'View Mail',
'page callback' => 'mail_safety_admin_view_mail',
'page arguments' => array(
4,
),
'access arguments' => array(
'use mail safety dashboard',
),
'file' => 'mail_safety.admin.inc',
'type' => MENU_LOCAL_TASK,
);
$menu_items['admin/config/development/mail_safety/%mail_safety_mail/details'] = array(
'title' => 'Details Mail',
'page callback' => 'mail_safety_admin_details_mail',
'page arguments' => array(
4,
),
'access arguments' => array(
'use mail safety dashboard',
),
'file' => 'mail_safety.admin.inc',
'type' => MENU_LOCAL_TASK,
);
$menu_items['admin/config/development/mail_safety/%mail_safety_mail/send_original'] = array(
'title' => 'Send Original',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'mail_safety_admin_send_original_form',
4,
),
'access arguments' => array(
'use mail safety dashboard',
),
'file' => 'mail_safety.admin.inc',
'type' => MENU_LOCAL_TASK,
);
$menu_items['admin/config/development/mail_safety/%mail_safety_mail/send_default'] = array(
'title' => 'Send Default',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'mail_safety_admin_send_default_form',
4,
),
'access arguments' => array(
'use mail safety dashboard',
),
'file' => 'mail_safety.admin.inc',
'type' => MENU_LOCAL_TASK,
);
$menu_items['admin/config/development/mail_safety/%mail_safety_mail/delete'] = array(
'title' => 'Delete Mail',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'mail_safety_admin_delete_form',
4,
),
'access arguments' => array(
'use mail safety dashboard',
),
'file' => 'mail_safety.admin.inc',
'type' => MENU_LOCAL_TASK,
);
$menu_items['admin/config/development/mail_safety/settings'] = array(
'title' => 'Settings',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'mail_safety_admin_settings_form',
),
'access arguments' => array(
'administer mail safety',
),
'file' => 'mail_safety.admin.inc',
'type' => MENU_LOCAL_TASK,
'weight' => -9,
);
return $menu_items;
}
function mail_safety_theme() {
return array(
'mail_safety_mail' => array(
'variables' => array(
'mail_safety_mail' => NULL,
),
),
'mail_safety_details' => array(
'variables' => array(
'mail_safety_mail' => NULL,
),
),
);
}
function mail_safety_mail_alter(&$message) {
if (variable_get('mail_safety_enabled', FALSE)) {
$message['send'] = FALSE;
}
if (variable_get('mail_safety_send_mail_to_dashboard', TRUE)) {
mail_safety_insert_mail($message);
}
if (variable_get('mail_safety_send_mail_to_default_mail', TRUE)) {
$message['to'] = variable_get('mail_safety_default_mail_address', '');
unset($message['headers']['CC']);
unset($message['headers']['BCC']);
$message['send'] = TRUE;
}
}
function mail_safety_permission() {
return array(
'use mail safety dashboard' => array(
'description' => t('Use the Mail Safety dashboard.'),
'title' => t('Use Mail Safety dashboard'),
'restrict access' => TRUE,
),
'administer mail safety' => array(
'title' => t('Administer Mail Safety'),
'description' => t('Enable and configure Mail Safety'),
'restrict access' => TRUE,
),
);
}
function mail_safety_insert_mail($message) {
drupal_alter('mail_safety_pre_insert', $message);
$mail_safety_mail = new stdClass();
$mail_safety_mail->mail_body = implode(' ', $message['body']);
$mail_safety_mail->mail_subject = $message['subject'];
$mail_safety_mail->mail_to = $message['to'];
$mail_safety_mail->mail_cc = '';
$mail_safety_mail->mail_key = $message['key'];
$mail_safety_mail->mail_module = $message['module'];
$mail_safety_mail->mail_serialized = serialize($message);
$mail_safety_mail->created = time();
$mail_safety_mail->sent = time();
mail_safety_mail_save($mail_safety_mail);
}
function mail_safety_delete_mail($mail_id = NULL) {
mail_safety_mail_delete($mail_id);
return TRUE;
}
function mail_safety_module_implements_alter(&$implementations, $hook) {
if ($hook == 'mail_alter' && isset($implementations['mail_safety'])) {
$group = $implementations['mail_safety'];
unset($implementations['mail_safety']);
$implementations['mail_safety'] = $group;
}
}
function theme_mail_safety_mail($variables) {
$mail_safety_mail = $variables['mail_safety_mail'];
$message = $mail_safety_mail->message;
$output = '<h2>' . $message['subject'] . '</h2>';
$output .= '<div class="mail-body">' . $message['body'] . '</div>';
return check_markup($output);
}
function theme_mail_safety_details($variables) {
$mail_safety_mail = $variables['mail_safety_mail'];
$message = $mail_safety_mail->message;
$output = '<h2>' . $message['subject'] . '</h2>';
$output .= '<pre>' . print_r($message, TRUE) . '</pre>';
return check_markup($output);
}