function feeds_xls_feeds_processor_targets_alter in Feeds XLS 7
Implements hook_feeds_processor_targets_alter().
We alter the numeric field types so that fields that are set up with values like:
1|Something 2|Rocking 3|Banana
allow the entry of the text "Something", or "Rocking" instead of "1" or "2".
We alter date field types, so that "days since epoch" values can be imported without changing the format in Excel
File
- ./
feeds_xls.module, line 143
Code
function feeds_xls_feeds_processor_targets_alter(&$targets, $entity_type, $bundle_name) {
$numeric_types = array(
'list_integer',
'list_float',
'list_boolean',
'number_integer',
'number_decimal',
'number_float',
);
foreach (field_info_instances($entity_type, $bundle_name) as $name => $instance) {
$info = field_info_field($name);
if (in_array($info['type'], $numeric_types)) {
$targets[$name]['callback'] = 'feeds_xls_feeds_set_target_numeric';
}
elseif ($info['type'] == 'list_text') {
$targets[$name]['callback'] = 'feeds_xls_feeds_set_target_list_text';
}
elseif (in_array($info['type'], array(
'date',
'datestamp',
'datetime',
))) {
$targets[$name . ':start'] = array(
'name' => t('@name: Start', array(
'@name' => $instance['label'],
)),
'callback' => 'feeds_xls_feeds_set_target_date',
'description' => t('The start date for the @name field. Also use if mapping both start and end.', array(
'@name' => $instance['label'],
)),
'real_target' => $name,
);
$targets[$name . ':end'] = array(
'name' => t('@name: End', array(
'@name' => $instance['label'],
)),
'callback' => 'feeds_xls_feeds_set_target_date',
'description' => t('The end date for the @name field.', array(
'@name' => $instance['label'],
)),
'real_target' => $name,
);
}
}
}