CRM-14856 - CRM_Profile_Form - Restore behavior of add_to_group_id when there are...
authorTim Otten <totten@civicrm.org>
Tue, 24 Jun 2014 03:14:09 +0000 (20:14 -0700)
committerTim Otten <totten@civicrm.org>
Tue, 24 Jun 2014 03:23:30 +0000 (20:23 -0700)
The behavior is to scan a combined list of UFFields, see if each UFField's
parent UFGroup has "add_to_group", and use it if found.  If multiple
UFGroups define "add_to_group", then the value of the last UFField wins.

I don't see this as good behavior -- just compatible behavior.

CRM/Profile/Form.php

index 7bae7ccda647ac1b5a31c32247054293f5324c4b..e01d56768e6a0089f9f62388951770fb29152cdd 100644 (file)
@@ -749,6 +749,10 @@ class CRM_Profile_Form extends CRM_Core_Form {
 
       CRM_Core_BAO_UFGroup::buildProfile($this, $field, $this->_mode);
 
+      if ($field['add_to_group_id']) {
+        $addToGroupId = $field['add_to_group_id'];
+      }
+
       //build array for captcha
       if ($field['add_captcha']) {
         $addCaptcha[$field['group_id']] = $field['add_captcha'];
@@ -793,6 +797,12 @@ class CRM_Profile_Form extends CRM_Core_Form {
     }
     $this->assign("isCaptcha", $this->_isAddCaptcha);
 
+    if ($this->_mode != self::MODE_SEARCH) {
+      if (isset($addToGroupId)) {
+        $this->_ufGroup['add_to_group_id'] = $addToGroupId;
+      }
+    }
+
     // lets do the defaults, so we can use it for the below state country routines
     $this->setDefaultsValues();