Merge pull request #17383 from eileenmcnaughton/ids
[civicrm-core.git] / CRM / Mailing / Page / AJAX.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
5 | |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
10 */
11
12 /**
13 *
14 * @package CRM
15 * @copyright CiviCRM LLC https://civicrm.org/licensing
16 */
17
18 /**
19 * This class contains all the function that are called using AJAX
20 */
21 class CRM_Mailing_Page_AJAX {
22
23 /**
24 * Fetch the template text/html messages
25 */
26 public static function template() {
27 $templateId = CRM_Utils_Type::escape($_POST['tid'], 'Integer');
28
29 $messageTemplate = new CRM_Core_DAO_MessageTemplate();
30 $messageTemplate->id = $templateId;
31 $messageTemplate->selectAdd();
32 $messageTemplate->selectAdd('msg_text, msg_html, msg_subject, pdf_format_id');
33 $messageTemplate->find(TRUE);
34 $messages = [
35 'subject' => $messageTemplate->msg_subject,
36 'msg_text' => $messageTemplate->msg_text,
37 'msg_html' => $messageTemplate->msg_html,
38 'pdf_format_id' => $messageTemplate->pdf_format_id,
39 ];
40
41 $documentInfo = CRM_Core_BAO_File::getEntityFile('civicrm_msg_template', $templateId);
42 foreach ((array) $documentInfo as $info) {
43 list($messages['document_body']) = CRM_Utils_PDF_Document::docReader($info['fullPath'], $info['mime_type']);
44 }
45
46 CRM_Utils_JSON::output($messages);
47 }
48
49 /**
50 * Retrieve contact mailings.
51 */
52 public static function getContactMailings() {
53 $params = CRM_Core_Page_AJAX::defaultSortAndPagerParams();
54 $params += CRM_Core_Page_AJAX::validateParams(['contact_id' => 'Integer']);
55
56 // get the contact mailings
57 $mailings = CRM_Mailing_BAO_Mailing::getContactMailingSelector($params);
58
59 CRM_Utils_JSON::output($mailings);
60 }
61
62 }