CRM-13089 - Restore numeric suffix for new (default) column names
authorTim Otten <totten@civicrm.org>
Fri, 9 Aug 2013 22:31:02 +0000 (15:31 -0700)
committerTim Otten <totten@civicrm.org>
Fri, 9 Aug 2013 22:39:27 +0000 (15:39 -0700)
----------------------------------------
* CRM-13089: CRM_Core_BAO_CustomField::create overrides user-defined name parameter values
  http://issues.civicrm.org/jira/browse/CRM-13089

CRM/Core/BAO/CustomField.php

index fd9080a4fb23cbf961929bdf3af3b33aaa2f4ab4..274bc84d4ce8d36da10c85df54468a75fe085630 100644 (file)
@@ -130,6 +130,8 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField {
    * @static
    */
   static function create(&$params) {
+    $origParams = array_merge(array(), $params);
+
     if (!isset($params['id'])) {
       if (!isset($params['column_name'])) {
         // if add mode & column_name not present, calculate it.
@@ -285,6 +287,10 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField {
       self::createField($customField, 'modify', $indexExist);
     }
     else {
+      if (!isset($origParams['column_name'])) {
+        $columnName .= "_{$customField->id}";
+        $params['column_name'] = $columnName;
+      }
       $customField->column_name = $columnName;
       $customField->save();
       // make sure all values are present in the object