X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FBAO%2FMessageTemplate.php;h=48518b8be7077b26f11c983d33ff888adaa86457;hb=7a4bb1a116238701d9eac5922bb031d7443e1e85;hp=0182b2eae1115745ff2a95a832b5875eb24fdca1;hpb=681aa547248b9c7d92d368f4879f75f941eba90b;p=civicrm-core.git diff --git a/CRM/Core/BAO/MessageTemplate.php b/CRM/Core/BAO/MessageTemplate.php index 0182b2eae1..48518b8be7 100644 --- a/CRM/Core/BAO/MessageTemplate.php +++ b/CRM/Core/BAO/MessageTemplate.php @@ -3,7 +3,7 @@ +--------------------------------------------------------------------+ | CiviCRM version 4.6 | +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC (c) 2004-2014 | + | Copyright CiviCRM LLC (c) 2004-2015 | +--------------------------------------------------------------------+ | This file is a part of CiviCRM. | | | @@ -23,12 +23,12 @@ | GNU Affero General Public License or the licensing of CiviCRM, | | see the CiviCRM license FAQ at http://civicrm.org/licensing | +--------------------------------------------------------------------+ -*/ + */ /** * * @package CRM - * @copyright CiviCRM LLC (c) 2004-2014 + * @copyright CiviCRM LLC (c) 2004-2015 * $Id$ * */ @@ -41,13 +41,14 @@ require_once 'Mail/mime.php'; class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { /** - * Fetch object based on array of properties + * Fetch object based on array of properties. * - * @param array $params (reference ) an assoc array of name/value pairs - * @param array $defaults (reference ) an assoc array to hold the flattened values + * @param array $params + * (reference ) an assoc array of name/value pairs. + * @param array $defaults + * (reference ) an assoc array to hold the flattened values. * - * @return CRM_Core_BAO_MessageTemplate object - * @static + * @return CRM_Core_BAO_MessageTemplate */ public static function retrieve(&$params, &$defaults) { $messageTemplates = new CRM_Core_DAO_MessageTemplate(); @@ -60,24 +61,26 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { } /** - * Update the is_active flag in the db + * Update the is_active flag in the db. * - * @param int $id id of the database record - * @param boolean $is_active value we want to set the is_active field + * @param int $id + * Id of the database record. + * @param bool $is_active + * Value we want to set the is_active field. * - * @return Object DAO object on sucess, null otherwise - * @static + * @return Object + * DAO object on success, NULL otherwise */ public static function setIsActive($id, $is_active) { return CRM_Core_DAO::setFieldValue('CRM_Core_DAO_MessageTemplate', $id, 'is_active', $is_active); } /** - * Add the Message Templates + * Add the Message Templates. * - * @param array $params reference array contains the values submitted by the form + * @param array $params + * Reference array contains the values submitted by the form. * - * @static * * @return object */ @@ -94,13 +97,10 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { } /** - * Delete the Message Templates - * - * @static + * Delete the Message Templates. * * @param int $messageTemplatesID - * - * @return object + * @return void */ public static function del($messageTemplatesID) { // make sure messageTemplatesID is an integer @@ -123,9 +123,8 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { } /** - * Get the Message Templates + * Get the Message Templates. * - * @static * * @param bool $all * @@ -155,20 +154,20 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { * @param int $messageTemplateID * @param $from * - * @return bool|null + * @return bool|NULL */ public static function sendReminder($contactId, $email, $messageTemplateID, $from) { $messageTemplates = new CRM_Core_DAO_MessageTemplate(); $messageTemplates->id = $messageTemplateID; - $domain = CRM_Core_BAO_Domain::getDomain(); - $result = NULL; + $domain = CRM_Core_BAO_Domain::getDomain(); + $result = NULL; $hookTokens = array(); if ($messageTemplates->find(TRUE)) { - $body_text = $messageTemplates->msg_text; - $body_html = $messageTemplates->msg_html; + $body_text = $messageTemplates->msg_text; + $body_html = $messageTemplates->msg_html; $body_subject = $messageTemplates->msg_subject; if (!$body_text) { $body_text = CRM_Utils_String::htmlToText($body_html); @@ -188,8 +187,8 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { // get tokens to be replaced $tokens = array_merge(CRM_Utils_Token::getTokens($body_text), - CRM_Utils_Token::getTokens($body_html), - CRM_Utils_Token::getTokens($body_subject)); + CRM_Utils_Token::getTokens($body_html), + CRM_Utils_Token::getTokens($body_subject)); // get replacement text for these tokens $returnProperties = array("preferred_mail_format" => 1); @@ -199,11 +198,11 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { } } list($details) = CRM_Utils_Token::getTokenDetails(array($contactId), - $returnProperties, - null, null, false, - $tokens, - 'CRM_Core_BAO_MessageTemplate'); - $contact = reset( $details ); + $returnProperties, + NULL, NULL, FALSE, + $tokens, + 'CRM_Core_BAO_MessageTemplate'); + $contact = reset($details); // call token hook $hookTokens = array(); @@ -216,10 +215,10 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { $bodyType = "body_{$value}"; if ($$bodyType) { CRM_Utils_Token::replaceGreetingTokens($$bodyType, NULL, $contact['contact_id']); - $$bodyType = CRM_Utils_Token::replaceDomainTokens($$bodyType, $domain, true, $tokens, true); - $$bodyType = CRM_Utils_Token::replaceContactTokens($$bodyType, $contact, false, $tokens, false, true); - $$bodyType = CRM_Utils_Token::replaceComponentTokens($$bodyType, $contact, $tokens, true); - $$bodyType = CRM_Utils_Token::replaceHookTokens($$bodyType, $contact , $categories, true); + $$bodyType = CRM_Utils_Token::replaceDomainTokens($$bodyType, $domain, TRUE, $tokens, TRUE); + $$bodyType = CRM_Utils_Token::replaceContactTokens($$bodyType, $contact, FALSE, $tokens, FALSE, TRUE); + $$bodyType = CRM_Utils_Token::replaceComponentTokens($$bodyType, $contact, $tokens, TRUE); + $$bodyType = CRM_Utils_Token::replaceHookTokens($$bodyType, $contact, $categories, TRUE); } } $html = $body_html; @@ -227,15 +226,17 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { $smarty = CRM_Core_Smarty::singleton(); foreach (array( - 'text', 'html') as $elem) { + '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 = 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}"); @@ -255,7 +256,8 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { } if ($html && ($contact['preferred_mail_format'] == 'HTML' || $contact['preferred_mail_format'] == 'Both' - )) { + ) + ) { $mailParams['html'] = $html; } @@ -270,12 +272,12 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { /** * Revert a message template to its default subject+text+HTML state * - * @param integer id id of the template + * @param int $id id of the template * * @return void */ public static function revert($id) { - $diverted = new self; + $diverted = new CRM_Core_BAO_MessageTemplate(); $diverted->id = (int) $id; $diverted->find(1); @@ -283,7 +285,7 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { CRM_Core_Error::fatal(ts('Did not find a message template with id of %1.', array(1 => $id))); } - $orig = new self; + $orig = new CRM_Core_BAO_MessageTemplate(); $orig->workflow_id = $diverted->workflow_id; $orig->is_reserved = 1; $orig->find(1); @@ -300,11 +302,13 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { } /** - * Send an email from the specified template based on an array of params + * Send an email from the specified template based on an array of params. * - * @param array $params a string-keyed array of function params, see function body for details + * @param array $params + * A string-keyed array of function params, see function body for details. * - * @return array of four parameters: a boolean whether the email was sent, and the subject, text and HTML templates + * @return array + * Array of four parameters: a boolean whether the email was sent, and the subject, text and HTML templates */ public static function sendTemplate($params) { $defaults = array( @@ -371,14 +375,17 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { CRM_Core_Error::fatal(ts('No such message template: id=%1.', array(1 => $params['messageTemplateID']))); } else { - CRM_Core_Error::fatal(ts('No such message template: option group %1, option value %2.', array(1 => $params['groupName'], 2 => $params['valueName']))); + CRM_Core_Error::fatal(ts('No such message template: option group %1, option value %2.', array( + 1 => $params['groupName'], + 2 => $params['valueName'], + ))); } } $subject = $dao->subject; - $text = $dao->text; - $html = $dao->html; - $format = $dao->format; + $text = $dao->text; + $html = $dao->html; + $format = $dao->format; $dao->free(); // add the test banner (if requested) @@ -392,18 +399,18 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { $testDao->fetch(); $subject = $testDao->subject . $subject; - $text = $testDao->text . $text; - $html = preg_replace('/html}", $html); + $text = $testDao->text . $text; + $html = preg_replace('/html}", $html); $testDao->free(); } // replace tokens in the three elements (in subject as if it was the text body) - $domain = CRM_Core_BAO_Domain::getDomain(); - $hookTokens = array(); - $mailing = new CRM_Mailing_BAO_Mailing; + $domain = CRM_Core_BAO_Domain::getDomain(); + $hookTokens = array(); + $mailing = new CRM_Mailing_BAO_Mailing(); $mailing->body_text = $text; $mailing->body_html = $html; - $tokens = $mailing->getTokens(); + $tokens = $mailing->getTokens(); CRM_Utils_Hook::tokens($hookTokens); $categories = array_keys($hookTokens); @@ -435,14 +442,13 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { } $subject = CRM_Utils_Token::replaceDomainTokens($subject, $domain, FALSE, $tokens['text'], TRUE); - $text = CRM_Utils_Token::replaceDomainTokens($text, $domain, FALSE, $tokens['text'], TRUE); - $html = CRM_Utils_Token::replaceDomainTokens($html, $domain, TRUE, $tokens['html'], TRUE); + $text = CRM_Utils_Token::replaceDomainTokens($text, $domain, FALSE, $tokens['text'], TRUE); + $html = CRM_Utils_Token::replaceDomainTokens($html, $domain, TRUE, $tokens['html'], TRUE); if ($contactID) { $subject = CRM_Utils_Token::replaceContactTokens($subject, $contact, FALSE, $tokens['text'], FALSE, TRUE); - $text = CRM_Utils_Token::replaceContactTokens($text, $contact, FALSE, $tokens['text'], FALSE, TRUE); - $html = CRM_Utils_Token::replaceContactTokens($html, $contact, FALSE, $tokens['html'], FALSE, TRUE); - + $text = CRM_Utils_Token::replaceContactTokens($text, $contact, FALSE, $tokens['text'], FALSE, TRUE); + $html = CRM_Utils_Token::replaceContactTokens($html, $contact, FALSE, $tokens['html'], FALSE, TRUE); $contactArray = array($contactID => $contact); CRM_Utils_Hook::tokenValues($contactArray, @@ -455,22 +461,23 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { $contact = $contactArray[$contactID]; $subject = CRM_Utils_Token::replaceHookTokens($subject, $contact, $categories, TRUE); - $text = CRM_Utils_Token::replaceHookTokens($text, $contact, $categories, TRUE); - $html = CRM_Utils_Token::replaceHookTokens($html, $contact, $categories, TRUE); + $text = CRM_Utils_Token::replaceHookTokens($text, $contact, $categories, TRUE); + $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) { + 'subject', + 'text', + 'html', + ) as $elem) { $$elem = $smarty->fetch("string:{$$elem}"); } @@ -479,8 +486,8 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { // create the params array $params['subject'] = $subject; - $params['text'] = $text; - $params['html'] = $html; + $params['text'] = $text; + $params['html'] = $html; if ($params['toEmail']) { $contactParams = array(array('email', 'LIKE', $params['toEmail'], 0, 1)); @@ -502,7 +509,7 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { if (empty($params['attachments'])) { $params['attachments'] = array(); } - $params['attachments'][] = CRM_Utils_Mail::appendPDF('Invoice.pdf', $pdfHtml, $format) ; + $params['attachments'][] = CRM_Utils_Mail::appendPDF('Invoice.pdf', $pdfHtml, $format); } $pdf_filename = ''; if ($config->doNotAttachPDFReceipt && @@ -528,4 +535,5 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate { return array($sent, $subject, $text, $html); } + }