X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FContact%2FImport%2FForm%2FMapField.php;h=e6f03f3f203c22758f255a305a01dc56318d4eb2;hb=51ccfbbea3adab11200800e01f1233cddc7e5272;hp=195d36649fe11e28ff5677427efa5e49f5558d3a;hpb=a765d024b0c845ee1233b1811277a9e8ab7ba01a;p=civicrm-core.git diff --git a/CRM/Contact/Import/Form/MapField.php b/CRM/Contact/Import/Form/MapField.php index 195d36649f..a6e0823133 100644 --- a/CRM/Contact/Import/Form/MapField.php +++ b/CRM/Contact/Import/Form/MapField.php @@ -1,9 +1,9 @@ get('dataSource'); @@ -151,9 +150,16 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField { } } } - + // retrieve and highlight required custom fields + $formattedFieldNames = $this->formatCustomFieldName($this->_mapperFields); + self::$customFields = CRM_Core_BAO_CustomField::getFields($this->_contactType); + foreach(self::$customFields as $key => $attr) { + if (!empty($attr['is_required'])) { + $highlightedFields[] = "custom_$key"; + } + } $this->assign('highlightedFields', $highlightedFields); - $this->_formattedFieldNames[$contactType] = $this->_mapperFields = array_merge($this->_mapperFields, $this->formatCustomFieldName($this->_mapperFields)); + $this->_formattedFieldNames[$contactType] = $this->_mapperFields = array_merge($this->_mapperFields, $formattedFieldNames); $columnNames = array(); //get original col headers from csv if present. @@ -190,10 +196,9 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField { } /** - * Function to actually build the form + * Build the form object * * @return void - * @access public */ public function buildQuickForm() { //to save the current mappings @@ -309,7 +314,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField { //CRM-5125 for contact subtype specific relationshiptypes $cSubType = NULL; - if (CRM_Utils_Array::value("contact_sub_type_{$second}", $contactRelationCache[$id])) { + if (!empty($contactRelationCache[$id]["contact_sub_type_{$second}"])) { $cSubType = $contactRelationCache[$id]["contact_sub_type_{$second}"]; } @@ -335,7 +340,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField { } //fix to append custom group name to field name, CRM-2676 - if (!CRM_Utils_Array::value($cType, $this->_formattedFieldNames) || $cType == $this->_contactType) { + if (empty($this->_formattedFieldNames[$cType]) || $cType == $this->_contactType) { $this->_formattedFieldNames[$cType] = $this->formatCustomFieldName($values); } @@ -343,8 +348,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField { //Modified the Relationship fields if the fields are //present in dedupe rule - if ($this->_onDuplicate != CRM_Import_Parser::DUPLICATE_NOCHECK && - CRM_Utils_Array::value($cType, $this->_dedupeFields) && + if ($this->_onDuplicate != CRM_Import_Parser::DUPLICATE_NOCHECK && !empty($this->_dedupeFields[$cType]) && is_array($this->_dedupeFields[$cType]) ) { static $cTypeArray = array(); @@ -614,17 +618,17 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField { } /** - * global validation rules for the form + * Global validation rules for the form * - * @param array $fields posted values of the form + * @param array $fields + * Posted values of the form. * * @return array list of errors to be posted back to the form * @static - * @access public */ - static function formRule($fields) { + public static function formRule($fields) { $errors = array(); - if (CRM_Utils_Array::value('saveMapping', $fields)) { + if (!empty($fields['saveMapping'])) { $nameField = CRM_Utils_Array::value('saveMappingName', $fields); if (empty($nameField)) { $errors['saveMappingName'] = ts('Name is required to save Import Mapping'); @@ -637,7 +641,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField { } } $template = CRM_Core_Smarty::singleton(); - if (CRM_Utils_Array::value('saveMapping', $fields)) { + if (!empty($fields['saveMapping'])) { $template->assign('isCheked', TRUE); } @@ -657,7 +661,6 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField { * preview the file and extract some summary statistics * * @return void - * @access public */ public function postProcess() { $params = $this->controller->exportValues('MapField'); @@ -696,11 +699,15 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField { ); //set respective mapper params to array. - foreach (array_keys($mapperParams) as $mapperParam)$$mapperParam = array(); + foreach (array_keys($mapperParams) as $mapperParam) { + $$mapperParam = array(); + } for ($i = 0; $i < $this->_columnCount; $i++) { //set respective mapper value to null - foreach (array_values($mapperParams) as $mapperParam)$$mapperParam = NULL; + foreach (array_values($mapperParams) as $mapperParam) { + $$mapperParam = NULL; + } $fldName = CRM_Utils_Array::value(0, $mapperKeys[$i]); $selOne = CRM_Utils_Array::value(1, $mapperKeys[$i]); @@ -793,7 +800,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField { $this->set('loadMappingId', CRM_Utils_Array::value('mappingId', $params)); //Updating Mapping Records - if (CRM_Utils_Array::value('updateMapping', $params)) { + if (!empty($params['updateMapping'])) { $locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id'); @@ -810,7 +817,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField { for ($i = 0; $i < $this->_columnCount; $i++) { $updateMappingFields = new CRM_Core_DAO_MappingField(); - $updateMappingFields->id = CRM_Utils_Array::value($i,$mappingFieldsId); + $updateMappingFields->id = CRM_Utils_Array::value($i, $mappingFieldsId); $updateMappingFields->mapping_id = $params['mappingId']; $updateMappingFields->column_number = $i; @@ -862,7 +869,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField { } //Saving Mapping Details and Records - if (CRM_Utils_Array::value('saveMapping', $params)) { + if (!empty($params['saveMapping'])) { $mappingParams = array( 'name' => $params['saveMappingName'], 'description' => $params['saveMappingDesc'], @@ -969,13 +976,14 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField { } /** - * format custom field name. + * Format custom field name. * combine group and field name to avoid conflict. * + * @param $fields + * * @return void - * @access public */ - function formatCustomFieldName(&$fields) { + public function formatCustomFieldName(&$fields) { //CRM-2676, replacing the conflict for same custom field name from different custom group. $fieldIds = $formattedFieldNames = array(); foreach ($fields as $key => $value) { @@ -999,4 +1007,3 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField { return $formattedFieldNames; } } -