From 220a1768045fd44c8c17b4eb7afa465bae30bcdb Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Wed, 29 Nov 2023 10:17:49 +1300 Subject: [PATCH] PHP 8.x add getFromEmails() function, remove use of undeclared property --- CRM/Contact/Form/Task/PDFTrait.php | 15 ++++++++++++--- CRM/Contribute/Form/Task/PDF.php | 11 ++++++++++- CRM/Contribute/Form/Task/PDFLetter.php | 2 +- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/CRM/Contact/Form/Task/PDFTrait.php b/CRM/Contact/Form/Task/PDFTrait.php index 9e8219c27d..ae1cef6ffb 100644 --- a/CRM/Contact/Form/Task/PDFTrait.php +++ b/CRM/Contact/Form/Task/PDFTrait.php @@ -169,9 +169,9 @@ trait CRM_Contact_Form_Task_PDFTrait { public function preProcessPDF(): void { $form = $this; $defaults = []; - $form->_fromEmails = CRM_Core_BAO_Email::getFromEmail(); - if (is_numeric(key($form->_fromEmails))) { - $emailID = (int) key($form->_fromEmails); + $fromEmails = $this->getFromEmails(); + if (is_numeric(key($fromEmails))) { + $emailID = (int) key($fromEmails); $defaults = CRM_Core_BAO_Email::getEmailSignatureDefaults($emailID); } if (!Civi::settings()->get('allow_mail_from_logged_in_contact')) { @@ -181,6 +181,15 @@ trait CRM_Contact_Form_Task_PDFTrait { $form->setTitle(ts('Print/Merge Document')); } + /** + * Get an array of email IDS from which the back-office user may select the from field. + * + * @return array + */ + protected function getFromEmails(): array { + return CRM_Core_BAO_Email::getFromEmail(); + } + /** * Returns the filename for the pdf by striping off unwanted characters and limits the length to 200 characters. * diff --git a/CRM/Contribute/Form/Task/PDF.php b/CRM/Contribute/Form/Task/PDF.php index df39acc994..b48c98da10 100644 --- a/CRM/Contribute/Form/Task/PDF.php +++ b/CRM/Contribute/Form/Task/PDF.php @@ -95,7 +95,7 @@ AND {$this->_componentClause}"; $this->add('checkbox', 'receipt_update', ts('Update receipt dates for these contributions'), FALSE); $this->add('checkbox', 'override_privacy', ts('Override privacy setting? (Do not email / Do not mail)'), FALSE); - $this->add('select', 'from_email_address', ts('From Email'), $this->_fromEmails, FALSE); + $this->add('select', 'from_email_address', ts('From Email'), $this->getFromEmails(), FALSE); $this->addButtons([ [ @@ -110,6 +110,15 @@ AND {$this->_componentClause}"; ]); } + /** + * Get an array of email IDS from which the back-office user may select the from field. + * + * @return array + */ + public function getFromEmails(): array { + return CRM_Core_BAO_Email::getFromEmail(); + } + /** * Set default values. */ diff --git a/CRM/Contribute/Form/Task/PDFLetter.php b/CRM/Contribute/Form/Task/PDFLetter.php index 1718cca1a7..9a9f2b063f 100644 --- a/CRM/Contribute/Form/Task/PDFLetter.php +++ b/CRM/Contribute/Form/Task/PDFLetter.php @@ -80,7 +80,7 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task { $this->assign('suppressForm', FALSE); // Contribute PDF tasks allow you to email as well, so we need to add email address to those forms - $this->add('select', 'from_email_address', ts('From Email Address'), $this->_fromEmails, TRUE); + $this->add('select', 'from_email_address', ts('From Email Address'), $this->getFromEmails(), TRUE); $this->addPDFElementsToForm(); // specific need for contributions -- 2.25.1