function simplenews_statistics_mail_alter in Simplenews Statistics 6
Same name and namespace in other branches
- 6.3 simplenews_statistics.module \simplenews_statistics_mail_alter()
- 6.2 simplenews_statistics.module \simplenews_statistics_mail_alter()
- 7.2 simplenews_statistics.module \simplenews_statistics_mail_alter()
- 7 simplenews_statistics.module \simplenews_statistics_mail_alter()
Implemetation of hook_mail_alter().
Adds a hidden image to the body and counts the amount of emails send
Parameters
$message: Mail message array.
File
- ./
simplenews_statistics.module, line 90 - Gathers newsletter statistics.
Code
function simplenews_statistics_mail_alter(&$message) {
if ($message['id'] == 'simplenews_node' && $message['params']['context']['node']->simplenews['s_format'] == 'html') {
global $base_url;
$body = $message['body']['body'];
$nid = $message['params']['context']['node']->nid;
$account = $message['params']['context']['account'];
//expand all local links using mimemail _mimemail_url function
require_once drupal_get_path('module', 'mimemail') . '/mimemail.inc';
$pattern = '/(<a[^>]+href=")([^"]*)/emi';
$body = preg_replace($pattern, '"\\1"._mimemail_url("\\2")', $body);
// replace links
$body = preg_replace($pattern, '"\\1"._simplenews_statistics_replace_url("\\2",$nid,$account->mail)', $body);
// add hidden image
$url = url('simplenews/statistics/view', array(
'absolute' => TRUE,
'query' => array(
'nid' => $nid,
'mail' => $account->mail,
),
));
$body .= '<img src="' . $url . '" width="1" height="1">';
// count
if (!db_fetch_array(db_query("SELECT * FROM {simplenews_statistics} WHERE nid = %d", $nid))) {
db_query("INSERT INTO {simplenews_statistics} (nid, send) VALUES (%d, %d)", $nid, 1);
}
else {
db_query("UPDATE {simplenews_statistics} SET send = send+1 WHERE nid = %d", $nid);
}
// set new body
$message['body']['body'] = $body;
}
}