From ba4b246234e4dd58e23050138455aec6497ac988 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Thu, 22 Jun 2023 17:44:28 -0700 Subject: [PATCH] (REF) MessageTemplate - Apply defaults sooner There's no particular sense to this, except that it should help the next refactoring steps. --- CRM/Core/BAO/MessageTemplate.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CRM/Core/BAO/MessageTemplate.php b/CRM/Core/BAO/MessageTemplate.php index 9089688905..282d2ad796 100644 --- a/CRM/Core/BAO/MessageTemplate.php +++ b/CRM/Core/BAO/MessageTemplate.php @@ -288,7 +288,8 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate implemen 'model' => NULL, // Symbolic name of the workflow step. Matches the value in civicrm_msg_template.workflow_name. - 'workflow' => NULL, + // This field is allowed as an input. However, the default mechanics go through the 'model'. + // 'workflow' => NULL, // additional template params (other than the ones already set in the template singleton) 'tplParams' => [], @@ -345,7 +346,9 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate implemen ]; self::synchronizeLegacyParameters($params); + $params = array_merge($modelDefaults, $viewDefaults, $envelopeDefaults, $params); + self::synchronizeLegacyParameters($params); // Allow WorkflowMessage to run any filters/mappings/cleanups. $model = $params['model'] ?? WorkflowMessage::create($params['workflow'] ?? 'UNKNOWN'); $params = WorkflowMessage::exportAll(WorkflowMessage::importAll($model, $params)); @@ -354,7 +357,6 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate implemen // If you want to expose the model via hook, consider interjecting a new Hook::alterWorkflowMessage($model) between `importAll()` and `exportAll()`. self::synchronizeLegacyParameters($params); - $params = array_merge($modelDefaults, $viewDefaults, $envelopeDefaults, $params); $language = $params['language'] ?? (!empty($params['contactId']) ? Civi\Api4\Contact::get(FALSE)->addWhere('id', '=', $params['contactId'])->addSelect('preferred_language')->execute()->first()['preferred_language'] : NULL); CRM_Utils_Hook::alterMailParams($params, 'messageTemplate'); [$mailContent, $translatedLanguage] = self::loadTemplate((string) $params['workflow'], $params['isTest'], $params['messageTemplateID'] ?? NULL, $params['groupName'] ?? '', $params['messageTemplate'], $params['subject'] ?? NULL, $language); -- 2.25.1