$body_text = CRM_Utils_String::htmlToText($body_html);
}
- // Execute Smarty templates before token replacement, so templates do not
- // interfere and we hit the compiled template cache.
- $smarty = CRM_Core_Smarty::singleton();
- $body_text = $smarty->fetch('string:' . $body_text);
- $body_html = $smarty->fetch('string:' . $body_html);
- $body_subject = $smarty->fetch('string:' . $messageSubject);
-
$params = array(array('contact_id', '=', $contactId, 0, 0));
list($contact, $_) = CRM_Contact_BAO_Query::apiQuery($params);
$html = $body_html;
$text = $body_text;
+ $smarty = CRM_Core_Smarty::singleton();
+ foreach (array(
+ 'text', 'html') as $elem) {
+ $$elem = $smarty->fetch("string:{$$elem}");
+ }
+
$matches = array();
preg_match_all('/(?<!\{|\\\\)\{(\w+\.\w+)\}(?!\})/',
$body_subject,
$messageSubject = CRM_Utils_Token::replaceComponentTokens($messageSubject, $contact, $tokens[$value], TRUE);
$messageSubject = CRM_Utils_Token::replaceHookTokens($messageSubject, $contact, $categories, TRUE);
+ $messageSubject = $smarty->fetch("string:{$messageSubject}");
+
// set up the parameters for CRM_Utils_Mail::send
$mailParams = array(
'groupName' => 'Scheduled Reminder Sender',
$body_text = CRM_Utils_String::htmlToText($body_html);
}
- // Execute Smarty templates before token replacement, so templates do not
- // interfere and we hit the compiled template cache.
- $smarty = CRM_Core_Smarty::singleton();
- $body_text = $smarty->fetch('string:' . $body_text);
- $body_html = $smarty->fetch('string:' . $body_html);
- $body_subject = $smarty->fetch('string:' . $body_subject);
-
$params = array(array('contact_id', '=', $contactId, 0, 0));
list($contact, $_) = CRM_Contact_BAO_Query::apiQuery($params);
$html = $body_html;
$text = $body_text;
+ $smarty = CRM_Core_Smarty::singleton();
+ foreach (array(
+ 'text', 'html') as $elem) {
+ $$elem = $smarty->fetch("string:{$$elem}");
+ }
+
// do replacements in message subject
$messageSubject = CRM_Utils_Token::replaceContactTokens($body_subject, $contact, false, $tokens);
$messageSubject = CRM_Utils_Token::replaceDomainTokens($messageSubject, $domain, true, $tokens);
$messageSubject = CRM_Utils_Token::replaceComponentTokens($messageSubject, $contact, $tokens, true);
$messageSubject = CRM_Utils_Token::replaceHookTokens($messageSubject, $contact, $categories, true);
+ $messageSubject = $smarty->fetch("string:{$messageSubject}");
+
// set up the parameters for CRM_Utils_Mail::send
$mailParams = array(
'groupName' => 'Scheduled Reminder Sender',
$testDao->free();
}
- // Strip whitespace from ends and turn into a single line.
- $subject = "{strip}$subject{/strip}";
-
- // Parse the three elements with Smarty.
- $smarty = CRM_Core_Smarty::singleton();
- foreach ($params['tplParams'] as $name => $value) {
- $smarty->assign($name, $value);
- }
- foreach (array(
- 'subject', 'text', 'html') as $elem) {
- $$elem = $smarty->fetch("string:{$$elem}");
- }
-
// replace tokens in the three elements (in subject as if it was the text body)
$domain = CRM_Core_BAO_Domain::getDomain();
$hookTokens = array();
$html = CRM_Utils_Token::replaceHookTokens($html, $contact, $categories, TRUE);
}
+ // strip whitespace from ends and turn into a single line
+ $subject = "{strip}$subject{/strip}";
+
+ // parse the three elements with Smarty
+
+
+ $smarty = CRM_Core_Smarty::singleton();
+ foreach ($params['tplParams'] as $name => $value) {
+ $smarty->assign($name, $value);
+ }
+ foreach (array(
+ 'subject', 'text', 'html') as $elem) {
+ $$elem = $smarty->fetch("string:{$$elem}");
+ }
+
// send the template, honouring the target user’s preferences (if any)
$sent = FALSE;