CRM-21809: 'Advance search' group by issue
[civicrm-core.git] / CRM / Core / Menu.php
index 55227eac47f7e6c60b8bf3631a2a1c91522d8353..66a4cf593bf92981ca34b1e9d2c3e6a360dd6fb9 100644 (file)
@@ -317,17 +317,22 @@ class CRM_Core_Menu {
 
       $menu->find(TRUE);
 
-      // Move unrecognized fields to $module_data.
-      $module_data = array();
-      foreach (array_keys($item) as $key) {
-        if (!isset($daoFields[$key])) {
-          $module_data[$key] = $item[$key];
-          unset($item[$key]);
+      if (!CRM_Core_Config::isUpgradeMode() ||
+        CRM_Core_DAO::checkFieldExists('civicrm_menu', 'module_data', FALSE)
+      ) {
+        // Move unrecognized fields to $module_data.
+        $module_data = array();
+        foreach (array_keys($item) as $key) {
+          if (!isset($daoFields[$key])) {
+            $module_data[$key] = $item[$key];
+            unset($item[$key]);
+          }
         }
+
+        $menu->module_data = serialize($module_data);
       }
 
       $menu->copyValues($item);
-      $menu->module_data = serialize($module_data);
 
       foreach (self::$_serializedElements as $element) {
         if (!isset($item[$element]) ||