CRM_Custom_Import_Parser_Api
class CRM_Custom_Import_Parser_Api extends CRM_Custom_Import_Parser
Class CRM_Custom_Import_Parser_Api
Constants
MAX_WARNINGS |
Settings |
DEFAULT_TIMEOUT |
Settings |
VALID |
Return codes |
WARNING |
Return codes |
ERROR |
Return codes |
CONFLICT |
Return codes |
STOP |
Return codes |
DUPLICATE |
Return codes |
MULTIPLE_DUPE |
Return codes |
NO_MATCH |
Return codes |
UNPARSED_ADDRESS_WARNING |
Return codes |
MODE_MAPFIELD |
Parser modes |
MODE_PREVIEW |
Parser modes |
MODE_SUMMARY |
Parser modes |
MODE_IMPORT |
Parser modes |
DUPLICATE_SKIP |
Codes for duplicate record handling |
DUPLICATE_REPLACE |
Codes for duplicate record handling |
DUPLICATE_UPDATE |
Codes for duplicate record handling |
DUPLICATE_FILL |
Codes for duplicate record handling |
DUPLICATE_NOCHECK |
Codes for duplicate record handling |
CONTACT_INDIVIDUAL |
Contact types |
CONTACT_HOUSEHOLD |
Contact types |
CONTACT_ORGANIZATION |
Contact types |
Properties
protected int | $_totalCount | Total number of non empty lines | from CRM_Import_Parser |
protected int | $_validCount | Running total number of valid lines | from CRM_Import_Parser |
protected int | $_invalidRowCount | Running total number of invalid rows | from CRM_Import_Parser |
protected int | $_maxLinesToProcess | Maximum number of non-empty/comment lines to process | from CRM_Import_Parser |
protected array | $_errors | Array of error lines, bounded by MAX_ERROR | from CRM_Import_Parser |
protected int | $_conflictCount | Total number of conflict lines | from CRM_Import_Parser |
protected array | $_conflicts | Array of conflict lines | from CRM_Import_Parser |
protected int | $_duplicateCount | Total number of duplicate (from database) lines | from CRM_Import_Parser |
protected array | $_duplicates | Array of duplicate lines | from CRM_Import_Parser |
protected int | $_warningCount | Running total number of warnings | from CRM_Import_Parser |
protected int | $_maxWarningCount | Maximum number of warnings to store | from CRM_Import_Parser |
protected array | $_warnings | Array of warning lines, bounded by MAX_WARNING | from CRM_Import_Parser |
protected | $_fields | ||
protected array | $importableFieldsMetadata | Metadata for all available fields, keyed by unique name. | from CRM_Import_Parser |
protected array | $_activeFields | Array of the fields that are actually part of the import process the position in the array also dictates their position in the import file | from CRM_Import_Parser |
protected int | $_activeFieldCount | Cache the count of active fields | from CRM_Import_Parser |
protected array | $_rows | Cache of preview rows | from CRM_Import_Parser |
protected string | $_errorFileName | Filename of error data | from CRM_Import_Parser |
protected string | $_conflictFileName | Filename of conflict data | from CRM_Import_Parser |
protected string | $_duplicateFileName | Filename of duplicate data | from CRM_Import_Parser |
int | $_contactType | Contact type | from CRM_Import_Parser |
int | $_contactSubType | Contact sub-type | from CRM_Import_Parser |
protected | $_tableName | from CRM_Contact_Import_Parser | |
protected int | $_rowCount | Total number of lines in file | from CRM_Contact_Import_Parser |
protected int | $_unMatchCount | Running total number of un-matched Contacts. | from CRM_Contact_Import_Parser |
protected array | $_unMatch | Array of unmatched lines. | from CRM_Contact_Import_Parser |
protected int | $_unparsedAddressCount | Total number of contacts with unparsed addresses | from CRM_Contact_Import_Parser |
protected string | $_misMatchFilemName | Filename of mismatch data | from CRM_Contact_Import_Parser |
protected | $_primaryKeyName | from CRM_Contact_Import_Parser | |
protected | $_statusFieldName | from CRM_Contact_Import_Parser | |
protected | $fieldMetadata | from CRM_Contact_Import_Parser | |
int | $_onDuplicate | On duplicate | from CRM_Contact_Import_Parser |
int | $_dedupeRuleGroupID | Dedupe rule group id to use if set | from CRM_Contact_Import_Parser |
protected | $_fileName | from CRM_Custom_Import_Parser | |
protected int | $_fileSize | Imported file size. | from CRM_Custom_Import_Parser |
protected string | $_separator | Separator being used | from CRM_Custom_Import_Parser |
protected int | $_lineCount | Total number of lines in file | from CRM_Custom_Import_Parser |
protected bool | $_haveColumnHeader | Whether the file has a column header or not | from CRM_Custom_Import_Parser |
protected | $_entity | ||
protected | $_requiredFields | ||
protected | $_dateFields | ||
protected | $_multipleCustomData | ||
protected array | $_params | Params for the current entity being prepared for the api. |
Methods
Get metadata for all importable fields in std getfields style format.
Set metadata for all importable fields in std getfields style format.
Class constructor.
The initializer code, called before the processing
The initializer code, called before the processing
Handle the values in mapField mode.
Handle the values in preview mode.
No description
Handle the values in import mode.
Set and validate field values.
Format the field values for input to the api.
Add progress bar to the import process. Calculates time remaining, status etc.
Remove single-quote enclosures from a value array (row).
Determines the file extension based on error code.
Determines the file name based on error code.
Check if contact is a duplicate .
Parse a field which could be represented by a label or name value rather than the DB value.
No description
Given a list of the importable field keys that the user has selected set the active fields array to this list
Set IM Service Provider type fields.
Set active field for related contact's phone type.
Set IM Service Provider type fields for related contacts.
No description
Export data to a CSV file.
Update the record with PK $id in the import database table.
Format common params data to proper format to store.
Format contact parameters.
Format location block ready for importing.
Get the field metadata for the relevant entity.
Fill in the primary location.
No description
Format Date params.
Set import entity.
Return the field ids and names (with groups) for import purpose.
Details
in CRM_Import_Parser at line 155
array
getImportableFieldsMetadata()
Get metadata for all importable fields in std getfields style format.
in CRM_Import_Parser at line 163
setImportableFieldsMetadata(array $importableFieldsMetadata)
Set metadata for all importable fields in std getfields style format.
at line 27
__construct(array $mapperKeys, null $mapperLocType = NULL, null $mapperPhoneType = NULL)
Class constructor.
at line 47
init()
The initializer code, called before the processing
at line 227
mixed
fini()
The initializer code, called before the processing
at line 69
mixed
mapField(array $values)
Handle the values in mapField mode.
at line 82
mixed
preview(array $values)
Handle the values in preview mode.
at line 96
mixed
summary($values)
at line 147
mixed
import($onDuplicate, $values)
Handle the values in import mode.
in CRM_Import_Parser at line 283
int
setActiveFieldValues(array $elements, $erroneousField)
Set and validate field values.
in CRM_Custom_Import_Parser at line 308
array
getActiveFieldParams()
Format the field values for input to the api.
in CRM_Import_Parser at line 343
NULL|$currTimestamp
progressImport($statusID, bool $startImport = TRUE, $startTimestamp = NULL, $prevTimestamp = NULL, $totalRowCount = NULL)
Add progress bar to the import process. Calculates time remaining, status etc.
in CRM_Import_Parser at line 385
array
getSelectValues()
in CRM_Import_Parser at line 396
array
getSelectTypes()
in CRM_Import_Parser at line 409
array
getHeaderPatterns()
in CRM_Import_Parser at line 422
array
getDataPatterns()
in CRM_Import_Parser at line 438
static void
encloseScrub(array $values, string $enclosure = "'")
Remove single-quote enclosures from a value array (row).
in CRM_Import_Parser at line 455
void
setMaxLinesToProcess(int $max)
Setter function.
in CRM_Import_Parser at line 465
static string
errorFileName($type)
Determines the file extension based on error code.
in CRM_Import_Parser at line 504
static string
saveFileName($type)
Determines the file name based on error code.
in CRM_Import_Parser at line 541
protected array
checkContactDuplicate(array $formatValues)
Check if contact is a duplicate .
in CRM_Import_Parser at line 563
protected mixed
parsePseudoConstantField(string|int|null $submittedValue, array $fieldSpec)
Parse a field which could be represented by a label or name value rather than the DB value.
We will try to match name first or (per https://lab.civicrm.org/dev/core/issues/1285 if we have an id.
but if not available then see if we have a label that can be converted to a name.
in CRM_Custom_Import_Parser at line 77
mixed
run(string $fileName, string $separator = ',', array $mapper, bool $skipColumnHeader = FALSE, int $mode = self::MODE_PREVIEW, int $contactType = self::CONTACT_INDIVIDUAL, int $onDuplicate = self::DUPLICATE_SKIP)
in CRM_Custom_Import_Parser at line 290
setActiveFields(array $fieldKeys)
Given a list of the importable field keys that the user has selected set the active fields array to this list
in CRM_Contact_Import_Parser at line 370
setActiveFieldLocationTypes($elements)
in CRM_Contact_Import_Parser at line 383
setActiveFieldPhoneTypes($elements)
in CRM_Contact_Import_Parser at line 392
setActiveFieldWebsiteTypes($elements)
in CRM_Contact_Import_Parser at line 404
setActiveFieldImProviders(array $elements)
Set IM Service Provider type fields.
in CRM_Contact_Import_Parser at line 413
setActiveFieldRelated($elements)
in CRM_Contact_Import_Parser at line 422
setActiveFieldRelatedContactType($elements)
in CRM_Contact_Import_Parser at line 431
setActiveFieldRelatedContactDetails($elements)
in CRM_Contact_Import_Parser at line 440
setActiveFieldRelatedContactLocType($elements)
in CRM_Contact_Import_Parser at line 451
setActiveFieldRelatedContactPhoneType(array $elements)
Set active field for related contact's phone type.
in CRM_Contact_Import_Parser at line 460
setActiveFieldRelatedContactWebsiteType($elements)
in CRM_Contact_Import_Parser at line 472
setActiveFieldRelatedContactImProvider(array $elements)
Set IM Service Provider type fields for related contacts.
in CRM_Contact_Import_Parser at line 580
array
getColumnPatterns()
in CRM_Contact_Import_Parser at line 597
addField(string $name, $title, int $type = CRM_Utils_Type::T_INT, string $headerPattern = '//', string $dataPattern = '//', bool $hasLocationType = FALSE)
in CRM_Custom_Import_Parser at line 330
set(CRM_Core_Session $store, int $mode = self::MODE_SUMMARY)
Store parser values.
in CRM_Contact_Import_Parser at line 675
static
exportCSV(string $fileName, array $header, array $data)
Export data to a CSV file.
in CRM_Contact_Import_Parser at line 720
updateImportRecord(int $id, array $params)
Update the record with PK $id in the import database table.
in CRM_Contact_Import_Parser at line 754
formatCommonData(array $params, array $formatted, array $contactFields)
Format common params data to proper format to store.
in CRM_Contact_Import_Parser at line 988
protected bool
formatContactParameters(array $values, array $params)
Format contact parameters.
in CRM_Contact_Import_Parser at line 1197
protected bool
formatLocationBlock(array $values, array $params)
Format location block ready for importing.
There is some test coverage for this in CRM_Contact_Import_Parser_ContactTest e.g. testImportPrimaryAddress.
in CRM_Contact_Import_Parser at line 1324
protected array
getMetadataForEntity(string $entity)
Get the field metadata for the relevant entity.
in CRM_Contact_Import_Parser at line 1348
protected
fillPrimary(array $params, array $values, string $entity, int|null $contactID)
Fill in the primary location.
If the contact has a primary address we update it. Otherwise we add an address of the default location type.
at line 32
setFields()
at line 202
formatDateParams()
Format Date params.
Although the api will accept any strtotime valid string CiviCRM accepts at least one date format not supported by strtotime so we should run this through a conversion
at line 217
setEntity(string $entity)
Set import entity.
at line 239
array
getGroupFieldsForImport(int $id)
Return the field ids and names (with groups) for import purpose.