From bc6e89929bb96b0c6f9af23756d7cc205ca6c59d Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Tue, 10 Aug 2021 13:46:39 +1200 Subject: [PATCH] [Ref] Move id fetching to the classes --- CRM/Contact/Form/Task/EmailTrait.php | 39 +++++++++++++++++++++++----- CRM/Contribute/Form/Task/Email.php | 11 ++++++++ 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/CRM/Contact/Form/Task/EmailTrait.php b/CRM/Contact/Form/Task/EmailTrait.php index d87cea587c..991b12cfca 100644 --- a/CRM/Contact/Form/Task/EmailTrait.php +++ b/CRM/Contact/Form/Task/EmailTrait.php @@ -257,12 +257,12 @@ trait CRM_Contact_Form_Task_EmailTrait { if ($this->_single) { // also fix the user context stack - if ($this->_caseId) { + if ($this->getCaseID()) { $ccid = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseContact', $this->_caseId, 'contact_id', 'case_id' ); $url = CRM_Utils_System::url('civicrm/contact/view/case', - "&reset=1&action=view&cid={$ccid}&id={$this->_caseId}" + "&reset=1&action=view&cid={$ccid}&id=" . $this->getCaseID() ); } elseif ($this->_context) { @@ -412,7 +412,7 @@ trait CRM_Contact_Form_Task_EmailTrait { } // send the mail - list($sent, $activityIds) = CRM_Activity_BAO_Activity::sendEmail( + [$sent, $activityIds] = CRM_Activity_BAO_Activity::sendEmail( $formattedContactDetails, $this->getSubject($formValues['subject']), $formValues['text_message'], @@ -425,9 +425,9 @@ trait CRM_Contact_Form_Task_EmailTrait { $bcc, array_keys($this->_toContactDetails), $additionalDetails, - $this->getVar('_contributionIds') ?? [], + $this->getContributionIDs(), CRM_Utils_Array::value('campaign_id', $formValues), - $this->getVar('_caseId') + $this->getCaseID() ); if ($sent) { @@ -591,11 +591,12 @@ trait CRM_Contact_Form_Task_EmailTrait { * @param string $subject * * @return string + * @throws \CRM_Core_Exception */ protected function getSubject(string $subject):string { // CRM-5916: prepend case id hash to CiviCase-originating emails’ subjects - if (isset($this->_caseId) && is_numeric($this->_caseId)) { - $hash = substr(sha1(CIVICRM_SITE_KEY . $this->_caseId), 0, 7); + if ($this->getCaseID()) { + $hash = substr(sha1(CIVICRM_SITE_KEY . $this->getCaseID()), 0, 7); $subject = "[case #$hash] $subject"; } return $subject; @@ -661,4 +662,28 @@ trait CRM_Contact_Form_Task_EmailTrait { return empty($errors) ? TRUE : $errors; } + /** + * Get selected contribution IDs. + * + * @return array + */ + protected function getContributionIDs(): array { + return []; + } + + /** + * Get case ID - if any. + * + * @return int|null + * + * @throws \CRM_Core_Exception + */ + protected function getCaseID(): ?int { + $caseID = CRM_Utils_Request::retrieve('caseid', 'String', $this); + if ($caseID) { + return (int) $caseID; + } + return NULL; + } + } diff --git a/CRM/Contribute/Form/Task/Email.php b/CRM/Contribute/Form/Task/Email.php index 509c0e7dc0..db83653ea5 100644 --- a/CRM/Contribute/Form/Task/Email.php +++ b/CRM/Contribute/Form/Task/Email.php @@ -21,6 +21,17 @@ class CRM_Contribute_Form_Task_Email extends CRM_Contribute_Form_Task { use CRM_Contact_Form_Task_EmailTrait; + /** + * Get selected contribution IDs. + * + * @return array + * + * @throws \CRM_Core_Exception + */ + protected function getContributionIDs(): array { + return $this->getIDs(); + } + /** * List available tokens for this form. * -- 2.25.1