--- plugins/FeedsTermProcessor.inc 2011-05-10 11:40:05.000000000 -0400 +++ plugins/FeedsTermProcessor.inc 2011-05-10 11:42:04.000000000 -0400 @@ -107,6 +107,49 @@ } /** + * Override setTargetElement to operate on a target item that is a term. + */ + public function setTargetElement(FeedsSource $source, $target_node, $target_element, $value) { + switch ($target_element) { + case 'parent': + if (!empty($value[0])) { + $terms = taxonomy_get_term_by_name($value[0]); + $parent_tid = ''; + foreach ($terms as $term) { + if ($term->vid == $target_node->vid) { + $parent_tid = $term->tid; + } + } + + if (!empty($parent_tid)) { + $target_node->parent = $parent_tid; + } + else { + $target_node->parent = 0; + } + } + else { + $target_node->parent = 0; + } + + break; + case 'weight': + if (!empty($value)) { + $weight = intval($value); + } + else { + $weight = 0; + } + $target_node->weight = $weight; + + break; + default: + parent::setTargetElement($source, $target_node, $target_element, $value); + break; + } + } + + /** * Return available mapping targets. */ public function getMappingTargets() { @@ -121,6 +164,16 @@ 'name' => t('Term description'), 'description' => t('Description of the taxonomy term.'), ), + 'parent' => array( + 'name' => t('Parent Term Name'), + 'description' => t('Name of the Parent Term.'), + 'optional_unique' => TRUE, + ), + 'weight' => array( + 'name' => t('Term Weight'), + 'description' => t('Weight of the Term.'), + 'optional_unique' => TRUE, + ), ); // Let implementers of hook_feeds_term_processor_targets() add their targets. try {