<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.3 |
+ | CiviCRM version 4.5 |
+--------------------------------------------------------------------+
- | 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$
*
*/
/**
* This class gets the name of the file to upload
*/
-class CRM_Member_Import_Form_MapField extends CRM_Core_Form {
+class CRM_Member_Import_Form_MapField extends CRM_Import_Form_MapField {
- /**
- * cache of preview data values
- *
- * @var array
- * @access protected
- */
- protected $_dataValues;
-
- /**
- * mapper fields
- *
- * @var array
- * @access protected
- */
- protected $_mapperFields;
-
- /**
- * loaded mapping ID
- *
- * @var int
- * @access protected
- */
- protected $_loadedMappingId;
-
- /**
- * number of columns in import file
- *
- * @var int
- * @access protected
- */
- protected $_columnCount;
- /**
- * column headers, if we have them
- *
- * @var array
- * @access protected
- */
- protected $_columnHeaders;
-
- /**
- * an array of booleans to keep track of whether a field has been used in
- * form building already.
- *
- * @var array
- * @access protected
- */
- protected $_fieldUsed;
/**
* to store contactType
*/
static $_contactType = NULL;
- /**
- * Attempt to match header labels with our mapper fields
- *
- * @param header
- * @param mapperFields
- *
- * @return string
- * @access public
- */
- public function defaultFromHeader($header, &$patterns) {
- foreach ($patterns as $key => $re) {
- // Skip empty key/patterns
- if (!$key || !$re || strlen("$re") < 5) {
- continue;
- }
-
- // Scan through the headerPatterns defined in the schema for a match
- if (preg_match($re, $header)) {
- $this->_fieldUsed[$key] = TRUE;
- return $key;
- }
- }
- return '';
- }
-
- /**
- * Guess at the field names given the data and patterns from the schema
- *
- * @param patterns
- * @param index
- *
- * @return string
- * @access public
- */
- public function defaultFromData(&$patterns, $index) {
- $best = '';
- $bestHits = 0;
- $n = count($this->_dataValues);
-
- foreach ($patterns as $key => $re) {
- // Skip empty key/patterns
- if (!$key || !$re || strlen("$re") < 5) {
- continue;
- }
-
- // if ($this->_fieldUsed[$key])
- // continue;
-
- /* Take a vote over the preview data set */
-
- $hits = 0;
- for ($i = 0; $i < $n; $i++) {
- if (preg_match($re, $this->_dataValues[$i][$index])) {
- $hits++;
- }
- }
-
- if ($hits > $bestHits) {
- $bestHits = $hits;
- $best = $key;
- }
- }
-
- if ($best != '') {
- $this->_fieldUsed[$best] = TRUE;
- }
- return $best;
- }
/**
* Function to set variables up before form is built
$this->_dataValues = $this->get('dataValues');
$this->assign('dataValues', $this->_dataValues);
- $skipColumnHeader = $this->controller->exportValue('UploadFile', 'skipColumnHeader');
+ $skipColumnHeader = $this->controller->exportValue('DataSource', 'skipColumnHeader');
$this->_onDuplicate = $this->get('onDuplicate', isset($onDuplicate) ? $onDuplicate : "");
$highlightedFields = array();
*
* @param array $fields posted values of the form
*
+ * @param $files
+ * @param $self
+ *
* @return array list of errors to be posted back to the form
* @static
* @access public
}
- 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');
return;
}
- $fileName = $this->controller->exportValue('UploadFile', 'uploadFile');
- $skipColumnHeader = $this->controller->exportValue('UploadFile', 'skipColumnHeader');
+ $fileName = $this->controller->exportValue('DataSource', 'uploadFile');
+ $skipColumnHeader = $this->controller->exportValue('DataSource', 'skipColumnHeader');
$config = CRM_Core_Config::singleton();
$seperator = $config->fieldSeparator;
$mapper[$i] = $this->_mapperFields[$mapperKeys[$i][0]];
$mapperKeysMain[$i] = $mapperKeys[$i][0];
- if (CRM_Utils_Array::value(1, $mapperKeys[$i]) && is_numeric($mapperKeys[$i][1])) {
+ if (!empty($mapperKeys[$i][1]) && is_numeric($mapperKeys[$i][1])) {
$mapperLocType[$i] = $mapperKeys[$i][1];
}
else {
$mapperLocType[$i] = NULL;
}
- if (CRM_Utils_Array::value(2, $mapperKeys[$i]) && (!is_numeric($mapperKeys[$i][2]))) {
+ if (!empty($mapperKeys[$i][2]) && (!is_numeric($mapperKeys[$i][2]))) {
$mapperPhoneType[$i] = $mapperKeys[$i][2];
}
else {
$this->set('mapper', $mapper);
// store mapping Id to display it in the preview page
- if (CRM_Utils_Array::value('mappingId', $params)) {
+ if (!empty($params['mappingId'])) {
$this->set('loadMappingId', $params['mappingId']);
}
//Updating Mapping Records
- if (CRM_Utils_Array::value('updateMapping', $params)) {
+ if (!empty($params['updateMapping'])) {
$mappingFields = new CRM_Core_DAO_MappingField();
$mappingFields->mapping_id = $params['mappingId'];
$mappingFields->find();
}
//Saving Mapping Details and Records
- if (CRM_Utils_Array::value('saveMapping', $params)) {
+ if (!empty($params['saveMapping'])) {
$mappingParams = array(
'name' => $params['saveMappingName'],
'description' => $params['saveMappingDesc'],
// add all the necessary variables to the form
$parser->set($this);
}
-
- /**
- * Return a descriptive name for the page, used in wizard header
- *
- * @return string
- * @access public
- */
- public function getTitle() {
- return ts('Match Fields');
- }
}