Fix setting outBound_option readonly in UI
authorMatthew Wire <mjw@mjwconsult.co.uk>
Sat, 14 Mar 2020 17:04:29 +0000 (17:04 +0000)
committerMatthew Wire <mjw@mjwconsult.co.uk>
Sat, 14 Mar 2020 17:04:29 +0000 (17:04 +0000)
CRM/Admin/Form/Setting/Smtp.php

index a3590b3ca2e61c48c8a7043f2946c632ffb762e2..da909c7f0877817e205df640f1c17df749179c8e 100644 (file)
@@ -28,17 +28,7 @@ class CRM_Admin_Form_Setting_Smtp extends CRM_Admin_Form_Setting {
    * Build the form object.
    */
   public function buildQuickForm() {
-
-    $outBoundOption = [
-      CRM_Mailing_Config::OUTBOUND_OPTION_MAIL => ts('mail()'),
-      CRM_Mailing_Config::OUTBOUND_OPTION_SMTP => ts('SMTP'),
-      CRM_Mailing_Config::OUTBOUND_OPTION_SENDMAIL => ts('Sendmail'),
-      CRM_Mailing_Config::OUTBOUND_OPTION_DISABLED => ts('Disable Outbound Email'),
-      CRM_Mailing_Config::OUTBOUND_OPTION_REDIRECT_TO_DB => ts('Redirect to Database'),
-    ];
-    $this->addRadio('outBound_option', ts('Select Mailer'), $outBoundOption);
-
-    $props = array();
+    $props = [];
     $settings = Civi::settings()->getMandatory('mailing_backend') ?? [];
     //Load input as readonly whose values are overridden in civicrm.settings.php.
     foreach ($settings as $setting => $value) {
@@ -48,6 +38,15 @@ class CRM_Admin_Form_Setting_Smtp extends CRM_Admin_Form_Setting {
       }
     }
 
+    $outBoundOption = [
+      CRM_Mailing_Config::OUTBOUND_OPTION_MAIL => ts('mail()'),
+      CRM_Mailing_Config::OUTBOUND_OPTION_SMTP => ts('SMTP'),
+      CRM_Mailing_Config::OUTBOUND_OPTION_SENDMAIL => ts('Sendmail'),
+      CRM_Mailing_Config::OUTBOUND_OPTION_DISABLED => ts('Disable Outbound Email'),
+      CRM_Mailing_Config::OUTBOUND_OPTION_REDIRECT_TO_DB => ts('Redirect to Database'),
+    ];
+    $this->addRadio('outBound_option', ts('Select Mailer'), $outBoundOption, $props['outBound_option'] ?? []);
+
     CRM_Utils_System::setTitle(ts('Settings - Outbound Mail'));
     $this->add('text', 'sendmail_path', ts('Sendmail Path'));
     $this->add('text', 'sendmail_args', ts('Sendmail Argument'));