Revert "Merge pull request #1368 from drumm/CRM-12930-smarty-compile"
authorkurund <kurund@civicrm.org>
Thu, 8 Aug 2013 19:36:14 +0000 (01:06 +0530)
committerkurund <kurund@civicrm.org>
Thu, 8 Aug 2013 19:36:14 +0000 (01:06 +0530)
This reverts commit 30ffbdf089db87d9cf2905939f84348a0b03b5e1, reversing
changes made to 94ee5a7f70c82520c5ff4c736d5e6638ec49e780.

CRM/Core/BAO/ActionSchedule.php
CRM/Core/BAO/MessageTemplates.php

index 97d296a2e67291842f93251bf18d10cb9803f94f..f1ec99fa3e6516f9840ae296310cf64bbd6c35c1 100755 (executable)
@@ -385,13 +385,6 @@ WHERE   cas.entity_value = $id AND
         $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);
 
@@ -430,6 +423,12 @@ WHERE   cas.entity_value = $id AND
       $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,
@@ -455,6 +454,8 @@ WHERE   cas.entity_value = $id AND
       $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',
index 0d4c1b332a9599c26e3180d86832bc85332f4eec..83af344c5160ec33dcacfd5ad3c2e18f2115c22d 100644 (file)
@@ -166,13 +166,6 @@ class CRM_Core_BAO_MessageTemplates extends CRM_Core_DAO_MessageTemplates {
         $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);
 
@@ -224,12 +217,20 @@ class CRM_Core_BAO_MessageTemplates extends CRM_Core_DAO_MessageTemplates {
       $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',
@@ -388,19 +389,6 @@ class CRM_Core_BAO_MessageTemplates extends CRM_Core_DAO_MessageTemplates {
       $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();
@@ -463,6 +451,21 @@ class CRM_Core_BAO_MessageTemplates extends CRM_Core_DAO_MessageTemplates {
       $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;