<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.3 |
+ | CiviCRM version 4.6 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013 |
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
/**
*
* @package CRM
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
* $Id$
*
*/
/**
- * an array of all contact fields with
+ * An array of all contact fields with
* formatted custom field names.
*
* @var array
- * @access protected
*/
protected $_formattedFieldNames;
/**
- * on duplicate
+ * On duplicate
*
* @var int
*/
protected $_dedupeFields;
+ protected static $customFields;
+
/**
* Attempt to match header labels with our mapper fields
* FIXME: This is essentially the same function as parent::defaultFromHeader
* @param mapperFields
*
* @return string
- * @access public
*/
public function defaultFromColumnName($columnName, &$patterns) {
}
/**
- * Function to set variables up before form is built
+ * Set variables up before form is built
*
* @return void
- * @access public
*/
public function preProcess() {
$dataSource = $this->get('dataSource');
}
}
}
-
+ // 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.
}
/**
- * Function to actually build the form
+ * Build the form object
*
* @return void
- * @access public
*/
public function buildQuickForm() {
//to save the current mappings
//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}"];
}
}
//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);
}
//Modified the Relationship fields if the fields are
//present in dedupe rule
- if ($this->_onDuplicate != CRM_Import_Parser::DUPLICATE_NOCHECK &&
+ if ($this->_onDuplicate != CRM_Import_Parser::DUPLICATE_NOCHECK && !empty($this->_dedupeFields[$cType]) &&
is_array($this->_dedupeFields[$cType])
) {
static $cTypeArray = array();
}
else {
$options = NULL;
- if ($hasLocationTypes[$key]) {
+ if (!empty($hasLocationTypes[$key])) {
$options = $this->_location_types;
}
elseif ($key == 'url') {
}
/**
- * 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');
}
}
$template = CRM_Core_Smarty::singleton();
- if (CRM_Utils_Array::value('saveMapping', $fields)) {
+ if (!empty($fields['saveMapping'])) {
$template->assign('isCheked', TRUE);
}
* preview the file and extract some summary statistics
*
* @return void
- * @access public
*/
public function postProcess() {
$params = $this->controller->exportValues('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]);
$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');
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;
}
//Saving Mapping Details and Records
- if (CRM_Utils_Array::value('saveMapping', $params)) {
+ if (!empty($params['saveMapping'])) {
$mappingParams = array(
'name' => $params['saveMappingName'],
'description' => $params['saveMappingDesc'],
}
/**
- * 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) {
return $formattedFieldNames;
}
}
-