function setDefaults(&$groupTree, &$defaults, $viewMode, $inactiveNeeded) { foreach ($groupTree as $group) { $groupId = $group['id']; foreach ($group['fields'] as $field) { if (CRM_Utils_Array::value('customValue', $field) !== null) { $value = $field['customValue']['data']; } else { if (CRM_Utils_Array::value('default_value', $field) !== null) { $value = $viewMode ? null : $field['default_value']; } else { continue; } } $fieldId = $field['id']; $elementName = 'custom_' . $fieldId; switch ($field['html_type']) { case 'CheckBox': if ($viewMode) { $customOption = CRM_Core_BAO_CustomOption::getCustomOption($field['id'], $inactiveNeeded); $customValues = CRM_Core_BAO_CustomOption::getCustomValues($field['id']); $checkedData = explode(CRM_CORE_BAO_CUSTOMOPTION_VALUE_SEPERATOR, $value); $defaults[$elementName] = array(); if (isset($value)) { foreach ($customOption as $val) { if (is_array($customValues)) { if (in_array($val['value'], $checkedData)) { $defaults[$elementName][$val['value']] = 1; } else { $defaults[$elementName][$val['value']] = 0; } } } } } else { $customOption = CRM_Core_BAO_CustomOption::getCustomOption($field['id'], $inactiveNeeded); $defaults[$elementName] = array(); if (isset($field['customValue']['data'])) { $checkedData = explode(CRM_CORE_BAO_CUSTOMOPTION_VALUE_SEPERATOR, $field['customValue']['data']); foreach ($customOption as $val) { if (in_array($val['value'], $checkedData)) { $defaults[$elementName][$val['value']] = 1; } else { $defaults[$elementName][$val['value']] = 0; } } } else { $checkedValue = explode(CRM_CORE_BAO_CUSTOMOPTION_VALUE_SEPERATOR, $value); foreach ($customOption as $val) { if (in_array($val['value'], $checkedValue)) { $defaults[$elementName][$val['value']] = 1; } else { $defaults[$elementName][$val['value']] = 0; } } } } break; //added a case for Multi-Select option //added a case for Multi-Select option case 'Multi-Select': if ($viewMode) { $customOption = CRM_Core_BAO_CustomOption::getCustomOption($field['id'], $inactiveNeeded); $customValues = CRM_Core_BAO_CustomOption::getCustomValues($field['id']); $checkedData = explode(CRM_CORE_BAO_CUSTOMOPTION_VALUE_SEPERATOR, $value); $defaults[$elementName] = array(); if (isset($value)) { foreach ($customOption as $val) { if (is_array($customValues)) { if (in_array($val['value'], $checkedData)) { $defaults[$elementName][$val['value']] = $val['value']; } } } } } else { $customOption = CRM_Core_BAO_CustomOption::getCustomOption($field['id'], $inactiveNeeded); $defaults[$elementName] = array(); if (isset($field['customValue']['data'])) { $checkedData = explode(CRM_CORE_BAO_CUSTOMOPTION_VALUE_SEPERATOR, $field['customValue']['data']); foreach ($customOption as $val) { if (in_array($val['value'], $checkedData)) { //$defaults[$elementName][$val['value']] = 1; $defaults[$elementName][$val['value']] = $val['value']; } } } else { $checkedValue = explode(CRM_CORE_BAO_CUSTOMOPTION_VALUE_SEPERATOR, $value); foreach ($customOption as $val) { if (in_array($val['value'], $checkedValue)) { $defaults[$elementName][$val['value']] = $val['value']; } } } } break; case 'Select Date': if (isset($value)) { $defaults[$elementName] = CRM_Utils_Date::unformat($value, '-'); } break; default: $defaults[$elementName] = $value; } } } }