From 71cdd8fb92a7d9ae3da66ed3114969ae402391ec Mon Sep 17 00:00:00 2001 From: Michael McAndrew Date: Fri, 27 Jan 2023 15:24:43 +0000 Subject: [PATCH] Add setting to disable Smarty in scheduled reminders dev/core#4100 --- CRM/Admin/Form/Preferences/Mailing.php | 1 + CRM/Core/BAO/ActionSchedule.php | 2 +- CRM/Upgrade/Incremental/php/FiveSixty.php | 12 ++++++++++++ settings/Mailing.setting.php | 14 ++++++++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/CRM/Admin/Form/Preferences/Mailing.php b/CRM/Admin/Form/Preferences/Mailing.php index 726a31dd4e..23cc19a9b8 100644 --- a/CRM/Admin/Form/Preferences/Mailing.php +++ b/CRM/Admin/Form/Preferences/Mailing.php @@ -35,6 +35,7 @@ class CRM_Admin_Form_Preferences_Mailing extends CRM_Admin_Form_Preferences { 'auto_recipient_rebuild' => CRM_Core_BAO_Setting::MAILING_PREFERENCES_NAME, 'url_tracking_default' => CRM_Core_BAO_Setting::MAILING_PREFERENCES_NAME, 'open_tracking_default' => CRM_Core_BAO_Setting::MAILING_PREFERENCES_NAME, + 'scheduled_reminder_smarty' => CRM_Core_BAO_Setting::MAILING_PREFERENCES_NAME, ]; public function postProcess() { diff --git a/CRM/Core/BAO/ActionSchedule.php b/CRM/Core/BAO/ActionSchedule.php index 04c08c59a0..8307501bb6 100644 --- a/CRM/Core/BAO/ActionSchedule.php +++ b/CRM/Core/BAO/ActionSchedule.php @@ -631,7 +631,7 @@ FROM civicrm_action_schedule cas 'controller' => __CLASS__, 'actionSchedule' => $schedule, 'actionMapping' => $mapping, - 'smarty' => TRUE, + 'smarty' => Civi::settings()->get('scheduled_reminder_smarty'), 'schema' => ['contactId'], ]); $tp->addMessage('body_text', $schedule->body_text, 'text/plain'); diff --git a/CRM/Upgrade/Incremental/php/FiveSixty.php b/CRM/Upgrade/Incremental/php/FiveSixty.php index 977d68b077..e9a690896c 100644 --- a/CRM/Upgrade/Incremental/php/FiveSixty.php +++ b/CRM/Upgrade/Incremental/php/FiveSixty.php @@ -29,6 +29,18 @@ class CRM_Upgrade_Incremental_php_FiveSixty extends CRM_Upgrade_Incremental_Base */ public function upgrade_5_60_alpha1($rev): void { $this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev); + $this->addTask('Add scheduled_reminder_smarty setting', 'addScheduledReminderSmartySetting'); + } + + public function setPostUpgradeMessage(&$postUpgradeMessage, $rev): void { + if ($rev === '5.60.alpha1') { + $postUpgradeMessage .= '

' . ts('You can now choose whether to use Smarty in Scheduled Reminders at Administer >> CiviMail >> CiviMail Component Settings. The setting is disabled by default on new installations but we have enabled it during this upgrade to preserve the existing behavior. More information in this lab ticket.', [1 => 'href="https://lab.civicrm.org/dev/core/-/issues/4100" target="_blank"']) . '

'; + } + } + + public static function addScheduledReminderSmartySetting(): bool { + Civi::settings()->set('scheduled_reminder_smarty', TRUE); + return TRUE; } } diff --git a/settings/Mailing.setting.php b/settings/Mailing.setting.php index 97904cad54..434e78a7ee 100644 --- a/settings/Mailing.setting.php +++ b/settings/Mailing.setting.php @@ -393,4 +393,18 @@ return [ 'description' => ts('The frequency that CiviMail updates its sent mail database.'), 'help_text' => NULL, ], + 'scheduled_reminder_smarty' => [ + 'group_name' => 'Mailing Preferences', + 'group' => 'mailing', + 'name' => 'scheduled_reminder_smarty', + 'type' => 'Boolean', + 'html_type' => 'checkbox', + 'default' => 0, + 'title' => ts('Use Smarty in scheduled reminders'), + 'add' => '5.60', + 'is_domain' => 1, + 'is_contact' => 0, + 'description' => ts('Controls whether scheduled reminders will attempt to process smarty tokens.'), + 'help_text' => NULL, + ], ]; -- 2.25.1