Ejemplo n.º 1
0
 /**
  * Fetch the template text/html messages
  */
 public static function template()
 {
     $templateId = CRM_Utils_Type::escape($_POST['tid'], 'Integer');
     $messageTemplate = new CRM_Core_DAO_MessageTemplate();
     $messageTemplate->id = $templateId;
     $messageTemplate->selectAdd();
     $messageTemplate->selectAdd('msg_text, msg_html, msg_subject, pdf_format_id');
     $messageTemplate->find(TRUE);
     $messages = array('subject' => $messageTemplate->msg_subject, 'msg_text' => $messageTemplate->msg_text, 'msg_html' => $messageTemplate->msg_html, 'pdf_format_id' => $messageTemplate->pdf_format_id);
     $documentInfo = CRM_Core_BAO_File::getEntityFile('civicrm_msg_template', $templateId);
     foreach ((array) $documentInfo as $info) {
         list($messages['document_body']) = CRM_Utils_PDF_Document::docReader($info['fullPath'], $info['mime_type']);
     }
     CRM_Utils_JSON::output($messages);
 }
Ejemplo n.º 2
0
 /**
  * Part of the post process which prepare and extract information from the template.
  *
  *
  * @param array $formValues
  *
  * @return array
  *   [$categories, $html_message, $messageToken, $returnProperties]
  */
 public static function processMessageTemplate($formValues)
 {
     $html_message = CRM_Utils_Array::value('html_message', $formValues);
     // process message template
     if (!empty($formValues['saveTemplate']) || !empty($formValues['updateTemplate'])) {
         $messageTemplate = array('msg_text' => NULL, 'msg_html' => $formValues['html_message'], 'msg_subject' => NULL, 'is_active' => TRUE);
         $messageTemplate['pdf_format_id'] = 'null';
         if (!empty($formValues['bind_format']) && $formValues['format_id']) {
             $messageTemplate['pdf_format_id'] = $formValues['format_id'];
         }
         if (!empty($formValues['saveTemplate']) && $formValues['saveTemplate']) {
             $messageTemplate['msg_title'] = $formValues['saveTemplateName'];
             CRM_Core_BAO_MessageTemplate::add($messageTemplate);
         }
         if (!empty($formValues['updateTemplate']) && $formValues['template'] && $formValues['updateTemplate']) {
             $messageTemplate['id'] = $formValues['template'];
             unset($messageTemplate['msg_title']);
             CRM_Core_BAO_MessageTemplate::add($messageTemplate);
         }
     } elseif (CRM_Utils_Array::value('template', $formValues) > 0) {
         if (!empty($formValues['bind_format']) && $formValues['format_id']) {
             $query = "UPDATE civicrm_msg_template SET pdf_format_id = {$formValues['format_id']} WHERE id = {$formValues['template']}";
         } else {
             $query = "UPDATE civicrm_msg_template SET pdf_format_id = NULL WHERE id = {$formValues['template']}";
         }
         CRM_Core_DAO::executeQuery($query);
         $documentInfo = CRM_Core_BAO_File::getEntityFile('civicrm_msg_template', $formValues['template']);
         foreach ((array) $documentInfo as $info) {
             list($html_message, $formValues['document_type']) = CRM_Utils_PDF_Document::docReader($info['fullPath'], $info['mime_type']);
             $formValues['document_file_path'] = $info['fullPath'];
         }
     } elseif (!empty($formValues['document_file'])) {
         list($html_message, $formValues['document_type']) = CRM_Utils_PDF_Document::docReader($formValues['document_file']['name'], $formValues['document_file']['type']);
         $formValues['document_file_path'] = $formValues['document_file']['name'];
     }
     if (!empty($formValues['update_format'])) {
         $bao = new CRM_Core_BAO_PdfFormat();
         $bao->savePdfFormat($formValues, $formValues['format_id']);
     }
     $tokens = array();
     CRM_Utils_Hook::tokens($tokens);
     $categories = array_keys($tokens);
     //time being hack to strip ' '
     //from particular letter line, CRM-6798
     self::formatMessage($html_message);
     $messageToken = CRM_Utils_Token::getTokens($html_message);
     $returnProperties = array();
     if (isset($messageToken['contact'])) {
         foreach ($messageToken['contact'] as $key => $value) {
             $returnProperties[$value] = 1;
         }
     }
     return array($formValues, $categories, $html_message, $messageToken, $returnProperties);
 }