function NodeTerms::cascadeTerms in Taxonomy Facets 8
1 call to NodeTerms::cascadeTerms()
- NodeTerms::findFieldToCascadeTerms in src/NodeTerms.php
- Check node fields for Taxo Faceted fields.
File
- src/NodeTerms.php, line 76
Class
- NodeTerms
Namespace
Drupal\taxonomy_facets
Code
function cascadeTerms($filed_name) {
$terms = $this->node->{$filed_name}
->getValue();
$parents = [];
foreach ($terms as $term) {
$parents = array_merge($parents, $this::getTermParents($term['target_id']));
}
$all_parents = array_unique($parents);
if (count($all_parents) >= 2) {
$old_terms = [];
if ($this->old_node) {
$old_terms = $this->old_node->{$filed_name}
->getValue();
}
$old_terms_array = [];
foreach ($old_terms as $old_term) {
$old_terms_array[] = $old_term['target_id'];
}
$all_parents = array_diff($all_parents, $old_terms_array);
foreach ($all_parents as $per) {
$this->node->{$filed_name}[] = [
'target_id' => $per,
];
}
}
}