public static function sendMessage($p = array('to' => false, 'type' => false, 'code' => false))
{
$logger = Pommo::$_logger;
// retrieve messages
$dbvalues = Pommo_Api::configGet('messages');
$messages = unserialize($dbvalues['messages']);
$type = $p['type'];
$output = false;
switch ($type) {
case 'subscribe':
case 'unsubscribe':
$output = $messages[$type]['web'];
// break out of switch statement if subscribe/unsubscribe emails are disabled
if (!$messages[$type]['email']) {
break;
}
case 'activate':
$output = $output ? $output : sprintf(Pommo::_T('An actvation mail has been sent to %s. Please follow its instructions to access your records.'), $p['to']);
case 'confirm':
case 'password':
case 'update':
$output = $output ? $output : sprintf(Pommo::_T('A confirmation mail has been sent to %s. Please follow its instructions to complete your request.'), $p['to']);
// fetch subject, body
$subject = $messages[$type]['sub'];
$body = $messages[$type]['msg'];
// personalize body
$url = $type == 'activate' ? Pommo::$_http . Pommo::$_baseUrl . 'update.php?email=' . $p['to'] . '&code=' . $p['code'] : Pommo::$_http . Pommo::$_baseUrl . 'confirm.php?code=' . $p['code'];
$body = preg_replace('@\\[\\[URL\\]\\]@i', $url, $body);
if (empty($subject) || empty($body)) {
$logger->addErr('Pommo_Helper_Messages::sendMessage() - subject or body empty');
return false;
}
require_once Pommo::$_baseDir . 'classes/Pommo_Mailer.php';
$mail = new Pommo_Mailer();
// allow mail to be sent, even if demo mode is on
$mail->toggleDemoMode("off");
// send the confirmation mail
$mail->prepareMail($subject, $body);
if (!$mail->bmSendmail($p['to'])) {
$logger->addErr(Pommo::_T('Error sending mail'));
return false;
}
// reset demo mode to default
$mail->toggleDemoMode();
break;
default:
$logger->addErr('unknown type passed');
return false;
}
$logger->addMsg($output);
return true;
}