Exemplo n.º 1
0
 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;
             }
         }
     }
 }