View source
<?php
$plugin = array(
'form' => 'feeds_tamper_rewrite_form',
'callback' => 'feeds_tamper_rewrite_callback',
'name' => 'Rewrite',
'multi' => 'skip',
'category' => 'Other',
);
function feeds_tamper_rewrite_form($importer, $element_key, $settings) {
$form = array();
$is_csv = FALSE;
if (get_class($importer->parser) == 'FeedsCSVParser') {
$is_csv = TRUE;
}
$mappings = $importer->processor->config['mappings'];
$replace = array();
foreach ($mappings as $mapping) {
if ($is_csv) {
$replace[] = '[' . drupal_strtolower($mapping['source']) . ']';
}
else {
$replace[] = '[' . $mapping['source'] . ']';
}
}
$form['text'] = array(
'#type' => 'textarea',
'#title' => t('Replacement pattern'),
'#default_value' => isset($settings['text']) ? $settings['text'] : '',
);
$form['help'] = array(
'#type' => 'fieldset',
'#title' => t('Available replacement patterns'),
'#value' => theme('item_list', $replace),
);
return $form;
}
function feeds_tamper_rewrite_callback($source, $item_key, $element_key, &$field, $settings) {
$trans = array();
$item = $source->batch->items[$item_key];
foreach ($item as $key => $value) {
$trans['[' . $key . ']'] = is_array($value) ? reset($value) : $value;
}
$field = strtr($settings['text'], $trans);
}