public function FeedsTermProcessor::setTargetElement in Feeds 8.2
Override setTargetElement to operate on a target item that is a taxonomy term.
Overrides FeedsProcessor::setTargetElement
File
- lib/
Drupal/ feeds/ Plugin/ feeds/ processor/ FeedsTermProcessor.php, line 106 - FeedsTermProcessor class.
Class
- FeedsTermProcessor
- Defines a taxonomy term processor.
Namespace
Drupal\feeds\Plugin\feeds\processorCode
public function setTargetElement(FeedsSource $source, $target_term, $target_element, $value) {
switch ($target_element) {
case 'parent':
if (!empty($value)) {
$terms = taxonomy_term_load_multiple_by_name($value);
$parent_tid = '';
foreach ($terms as $term) {
if ($term->vid == $target_term->vid) {
$parent_tid = $term->tid;
}
}
if (!empty($parent_tid)) {
$target_term->parent[] = $parent_tid;
}
else {
$target_term->parent[] = 0;
}
}
else {
$target_term->parent[] = 0;
}
break;
case 'parentguid':
// value is parent_guid field value
$query = db_select('feeds_item')
->fields('feeds_item', array(
'entity_id',
))
->condition('entity_type', $this
->entityType());
$parent_tid = $query
->condition('guid', $value)
->execute()
->fetchField();
$target_term->parent[] = $parent_tid ? $parent_tid : 0;
break;
case 'weight':
if (!empty($value)) {
$weight = intval($value);
}
else {
$weight = 0;
}
$target_term->weight = $weight;
break;
default:
parent::setTargetElement($source, $target_term, $target_element, $value);
break;
}
}