CRM-20873 FIx issue where getTree trys to load is_public field before it is added...
authorSeamus Lee <seamuslee001@gmail.com>
Fri, 14 Jul 2017 08:21:22 +0000 (18:21 +1000)
committerdeb.monish <monish.deb@jmaconsulting.biz>
Mon, 17 Jul 2017 09:22:20 +0000 (14:52 +0530)
CRM/Core/BAO/CustomGroup.php

index 8bb14a8fd9f2a8b82870097c4f105bd7417d02cb..a4eba816da5c757090acd0dc510f401ba8651364 100644 (file)
@@ -120,9 +120,11 @@ class CRM_Core_BAO_CustomGroup extends CRM_Core_DAO_CustomGroup {
       'help_pre',
       'help_post',
       'is_active',
-      'is_public',
       'is_multiple',
     );
+    if ($is_public_version) {
+      $fields[] = 'is_public';
+    }
     foreach ($fields as $field) {
       if (isset($params[$field]) || $field == 'is_multiple') {
         $group->$field = CRM_Utils_Array::value($field, $params, FALSE);
@@ -418,9 +420,13 @@ class CRM_Core_BAO_CustomGroup extends CRM_Core_DAO_CustomGroup {
         'extends_entity_column_id',
         'extends_entity_column_value',
         'max_multiple',
-        'is_public',
       ),
     );
+    $current_db_version = CRM_Core_DAO::singleValueQuery("SELECT version FROM civicrm_domain WHERE id = " . CRM_Core_Config::domainID());
+    $is_public_version = $current_db_version >= '4.7.19' ? 1 : 0;
+    if ($is_public_version) {
+      $tableData['custom_group'][] = 'is_public';
+    }
     if (!$toReturn || !is_array($toReturn)) {
       $toReturn = $tableData;
     }
@@ -513,7 +519,7 @@ WHERE civicrm_custom_group.is_active = 1
         );
     }
 
-    if ($showPublicOnly) {
+    if ($showPublicOnly && $is_public_version) {
       $strWhere .= "AND civicrm_custom_group.is_public = 1";
     }