Commit | Line | Data |
---|---|---|
2d3e3c7b | 1 | <?php |
2 | ||
3 | /** | |
4 | * This class provides the common functionality for creating PDF letter for | |
5 | * members | |
6 | */ | |
7 | class CRM_Member_Form_Task_PDFLetterCommon extends CRM_Contact_Form_Task_PDFLetterCommon { | |
8 | ||
9 | /** | |
fe482240 | 10 | * Process the form after the input has been submitted and validated. |
2d3e3c7b | 11 | * @todo this is horrible copy & paste code because there is so much risk of breakage |
12 | * in fixing the existing pdfLetter classes to be suitably generic | |
2d3e3c7b | 13 | * |
c490a46a | 14 | * @param CRM_Core_Form $form |
77b97be7 EM |
15 | * @param $membershipIDs |
16 | * @param $skipOnHold | |
17 | * @param $skipDeceased | |
18 | * @param $contactIDs | |
2d3e3c7b | 19 | */ |
00be9182 | 20 | public static function postProcessMembers(&$form, $membershipIDs, $skipOnHold, $skipDeceased, $contactIDs) { |
2d3e3c7b | 21 | |
e7483cbe J |
22 | list($formValues, $categories, $html_message, $messageToken, $returnProperties) |
23 | = self::processMessageTemplate($form); | |
53e258d3 | 24 | |
e7483cbe J |
25 | $html |
26 | = self::generateHTML( | |
53e258d3 DL |
27 | $membershipIDs, |
28 | $returnProperties, | |
29 | $skipOnHold, | |
30 | $skipDeceased, | |
31 | $messageToken, | |
32 | $html_message, | |
33 | $categories | |
34 | ); | |
2d3e3c7b | 35 | self::createActivities($form, $html_message, $contactIDs); |
36 | ||
37 | CRM_Utils_PDF_Utils::html2pdf($html, "CiviLetter.pdf", FALSE, $formValues); | |
38 | ||
39 | $form->postProcessHook(); | |
40 | ||
41 | CRM_Utils_System::civiExit(1); | |
42 | } | |
2d3e3c7b | 43 | |
44 | /** | |
fe482240 | 45 | * Generate htmlfor pdf letters. |
fd31fa4c | 46 | * |
e3946c7f EM |
47 | * @param array $membershipIDs |
48 | * @param array $returnProperties | |
49 | * @param bool $skipOnHold | |
50 | * @param bool $skipDeceased | |
07945b3c | 51 | * @param array $messageToken |
fd31fa4c EM |
52 | * @param $html_message |
53 | * @param $categories | |
54 | * | |
07945b3c | 55 | * @return array |
2d3e3c7b | 56 | */ |
00be9182 | 57 | public static function generateHTML($membershipIDs, $returnProperties, $skipOnHold, $skipDeceased, $messageToken, $html_message, $categories) { |
2d3e3c7b | 58 | $memberships = CRM_Utils_Token::getMembershipTokenDetails($membershipIDs); |
07945b3c | 59 | $html = array(); |
2d3e3c7b | 60 | |
995fc677 E |
61 | foreach ($membershipIDs as $membershipID) { |
62 | $membership = $memberships[$membershipID]; | |
2d3e3c7b | 63 | // get contact information |
64 | $contactId = $membership['contact_id']; | |
65 | $params = array('contact_id' => $contactId); | |
66 | //getTokenDetails is much like calling the api contact.get function - but - with some minor | |
b44e3f84 | 67 | // special handlings. It precedes the existence of the api |
2d3e3c7b | 68 | list($contacts) = CRM_Utils_Token::getTokenDetails( |
69 | $params, | |
70 | $returnProperties, | |
71 | $skipOnHold, | |
72 | $skipDeceased, | |
73 | NULL, | |
74 | $messageToken, | |
75 | 'CRM_Contribution_Form_Task_PDFLetterCommon' | |
76 | ); | |
77 | ||
78 | $tokenHtml = CRM_Utils_Token::replaceContactTokens($html_message, $contacts[$contactId], TRUE, $messageToken); | |
79 | $tokenHtml = CRM_Utils_Token::replaceEntityTokens('membership', $membership, $tokenHtml, $messageToken); | |
0cc4a61d | 80 | $tokenHtml = CRM_Utils_Token::replaceHookTokens($tokenHtml, $contacts[$contactId], $categories, TRUE); |
81 | $tokenHtml = CRM_Utils_Token::parseThroughSmarty($tokenHtml, $contacts[$contactId]); | |
2d3e3c7b | 82 | |
83 | $html[] = $tokenHtml; | |
84 | ||
85 | } | |
86 | return $html; | |
87 | } | |
96025800 | 88 | |
2d3e3c7b | 89 | } |