dev/core#766 fix failure to save custom data on template-based-event
authoreileen <emcnaughton@wikimedia.org>
Sat, 2 Jan 2021 21:07:22 +0000 (10:07 +1300)
committereileen <emcnaughton@wikimedia.org>
Sat, 2 Jan 2021 21:07:53 +0000 (10:07 +1300)
CRM/Event/BAO/Event.php
CRM/Event/Form/ManageEvent/EventInfo.php

index 6adb77093dafebf41f94983e0f2683e5da58b579..750d2d372b22fd8814c0cf7072da2c7f3d18adc6 100644 (file)
@@ -2297,6 +2297,13 @@ LEFT  JOIN  civicrm_price_field_value value ON ( value.id = lineItem.price_field
       'template_title',
     ];
     $defaults = array_diff_key($defaults, array_flip($fieldsToExclude));
+    foreach ($defaults as $key => $value) {
+      $customFieldInfo = CRM_Core_BAO_CustomField::getKeyID($key, TRUE);
+      if (!empty($customFieldInfo[1])) {
+        $defaults[str_replace($customFieldInfo[1], '-' . $customFieldInfo[1], $key)] = $value;
+        unset($defaults[$key]);
+      }
+    }
     return $defaults;
   }
 
index 4a16a37fb46020a940dc55d047f83495b47b0efc..9e1c5dfbf3068ce19c7e0d179761cb1ec0ce8972 100644 (file)
@@ -228,13 +228,6 @@ class CRM_Event_Form_ManageEvent_EventInfo extends CRM_Event_Form_ManageEvent {
     //merge params with defaults from templates
     if (!empty($params['template_id'])) {
       $params = array_merge(CRM_Event_BAO_Event::getTemplateDefaultValues($params['template_id']), $params);
-      foreach ($params as $key => $value) {
-        $customFieldInfo = CRM_Core_BAO_CustomField::getKeyID($key, TRUE);
-        if (!empty($customFieldInfo[1])) {
-          $params[str_replace($customFieldInfo[1], '-' . $customFieldInfo[1], $key)] = $value;
-          unset($params[$key]);
-        }
-      }
     }
 
     $params['custom'] = CRM_Core_BAO_CustomField::postProcess($params,