/**
  * part of the post process which prepare and extract information from the template
  *
  * @access protected
  *
  * @return array( $categories, $html_message, $messageToken, $returnProperties )
  */
 protected static function processMessageTemplate(&$form)
 {
     $formValues = $form->controller->exportValues($form->getName());
     // process message template
     if (CRM_Utils_Array::value('saveTemplate', $formValues) || CRM_Utils_Array::value('updateTemplate', $formValues)) {
         $messageTemplate = array('msg_text' => NULL, 'msg_html' => $formValues['html_message'], 'msg_subject' => NULL, 'is_active' => TRUE);
         $messageTemplate['pdf_format_id'] = 'null';
         if (CRM_Utils_Array::value('bind_format', $formValues) && $formValues['format_id'] > 0) {
             $messageTemplate['pdf_format_id'] = $formValues['format_id'];
         }
         if (CRM_Utils_Array::value('saveTemplate', $formValues) && $formValues['saveTemplate']) {
             $messageTemplate['msg_title'] = $formValues['saveTemplateName'];
             CRM_Core_BAO_MessageTemplates::add($messageTemplate);
         }
         if (CRM_Utils_Array::value('updateTemplate', $formValues) && $formValues['template'] && $formValues['updateTemplate']) {
             $messageTemplate['id'] = $formValues['template'];
             unset($messageTemplate['msg_title']);
             CRM_Core_BAO_MessageTemplates::add($messageTemplate);
         }
     } elseif (CRM_Utils_Array::value('template', $formValues) > 0) {
         if (CRM_Utils_Array::value('bind_format', $formValues) && $formValues['format_id'] > 0) {
             $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, CRM_Core_DAO::$_nullArray);
     }
     if (CRM_Utils_Array::value('update_format', $formValues)) {
         $bao = new CRM_Core_BAO_PdfFormat();
         $bao->savePdfFormat($formValues, $formValues['format_id']);
     }
     $html = array();
     $tokens = array();
     CRM_Utils_Hook::tokens($tokens);
     $categories = array_keys($tokens);
     $html_message = $formValues['html_message'];
     //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);
 }
Beispiel #2
0
 /**
  * Process the form submission.
  */
 public function postProcess()
 {
     if ($this->_action & CRM_Core_Action::DELETE) {
         // delete PDF Page Format
         CRM_Core_BAO_PdfFormat::del($this->_id);
         CRM_Core_Session::setStatus(ts('Selected PDF Page Format has been deleted.'), ts('Record Deleted'), 'success');
         return;
     }
     $values = $this->controller->exportValues($this->getName());
     $values['is_default'] = isset($values['is_default']);
     $bao = new CRM_Core_BAO_PdfFormat();
     $bao->savePdfFormat($values, $this->_id);
     $status = ts('Your new PDF Page Format titled <strong>%1</strong> has been saved.', array(1 => $values['name']), ts('Saved'), 'success');
     if ($this->_action & CRM_Core_Action::UPDATE) {
         $status = ts('Your PDF Page Format titled <strong>%1</strong> has been updated.', array(1 => $values['name']), ts('Saved'), 'success');
     }
     CRM_Core_Session::setStatus($status);
 }
 /**
  * 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 '&nbsp;'
     //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);
 }