Merge remote-tracking branch 'upstream/4.4' into 4.4-4.5-2014-10-14-11-16-10
[civicrm-core.git] / CRM / Core / BAO / MessageTemplate.php
index a0a8fa8f3c7997779a933f079831bdfbd9cfe993..30011f7407ccb7a607553dc7eaef5f74915c3267 100644 (file)
  */
 
 require_once 'Mail/mime.php';
+
+/**
+ * Class CRM_Core_BAO_MessageTemplate
+ */
 class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
 
   /**
@@ -101,6 +105,8 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
    * @access public
    * @static
    *
+   * @param $messageTemplatesID
+   *
    * @return object
    */
   static function del($messageTemplatesID) {
@@ -129,13 +135,16 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
    * @access public
    * @static
    *
+   * @param bool $all
+   *
    * @return object
    */
-  static function getMessageTemplates($all = TRUE) {
+  static function getMessageTemplates($all = TRUE, $isSMS = FALSE) {
     $msgTpls = array();
 
     $messageTemplates = new CRM_Core_DAO_MessageTemplate();
     $messageTemplates->is_active = 1;
+    $messageTemplates->is_sms = $isSMS;
 
     if (!$all) {
       $messageTemplates->workflow_id = 'NULL';
@@ -148,6 +157,14 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
     return $msgTpls;
   }
 
+  /**
+   * @param $contactId
+   * @param $email
+   * @param $messageTemplateID
+   * @param $from
+   *
+   * @return bool|null
+   */
   static function sendReminder($contactId, $email, $messageTemplateID, $from) {
 
     $messageTemplates = new CRM_Core_DAO_MessageTemplate();
@@ -425,8 +442,8 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
       $contact = $contact[$contactID];
     }
 
-    $subject = CRM_Utils_Token::replaceDomainTokens($subject, $domain, TRUE, $tokens['text'], TRUE);
-    $text    = CRM_Utils_Token::replaceDomainTokens($text, $domain, TRUE, $tokens['text'], TRUE);
+    $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);
 
     if ($contactID) {
@@ -493,29 +510,10 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
         $params['PDFFilename'] &&
         $params['html']
       ) {
-        $pdf_filename = $config->templateCompileDir . CRM_Utils_File::makeFileName($params['PDFFilename']);
-
-        //FIXME : CRM-7894
-        //xmlns attribute is required in XHTML but it is invalid in HTML,
-        //Also the namespace "xmlns=http://www.w3.org/1999/xhtml" is default,
-        //and will be added to the <html> tag even if you do not include it.
-        $html = preg_replace('/(<html)(.+?xmlns=["\'].[^\s]+["\'])(.+)?(>)/', '\1\3\4', $params['html']);
-
-        file_put_contents($pdf_filename, CRM_Utils_PDF_Utils::html2pdf($html,
-            $params['PDFFilename'],
-            TRUE,
-            $format
-          )
-        );
-
         if (empty($params['attachments'])) {
           $params['attachments'] = array();
         }
-        $params['attachments'][] = array(
-          'fullPath' => $pdf_filename,
-          'mime_type' => 'application/pdf',
-          'cleanName' => $params['PDFFilename'],
-        );
+        $params['attachments'][] = CRM_Utils_Mail::appendPDF($params['PDFFilename'], $params['html'], $format);
       }
 
       $sent = CRM_Utils_Mail::send($params);
@@ -528,4 +526,3 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
     return array($sent, $subject, $text, $html);
   }
 }
-