public function EntityHooks::onNodeUpdate in Entity Reference Hierarchy 8.2
Same name and namespace in other branches
- 3.x modules/entity_hierarchy_microsite/src/EntityHooks.php \Drupal\entity_hierarchy_microsite\EntityHooks::onNodeUpdate()
React to node update.
Parameters
\Drupal\node\NodeInterface $node: Node update.
File
- modules/
entity_hierarchy_microsite/ src/ EntityHooks.php, line 124
Class
- EntityHooks
- Defines a class for entity hooks for the module.
Namespace
Drupal\entity_hierarchy_micrositeCode
public function onNodeUpdate(NodeInterface $node) {
$original = $node->original;
foreach ($this->parentCandidate
->getCandidateFields($node) as $field) {
if ($node
->hasField($field) && (!$node
->get($field)
->isEmpty() || !$original
->get($field)
->isEmpty()) || ($node->{$field}->target_id !== $original->{$field}->target_id || $node->{$field}->weight !== $original->{$field}->weight)) {
if ($microsites = $this->childOfMicrositeLookup
->findMicrositesForNodeAndField($node, $field)) {
foreach ($microsites as $microsite) {
$this
->updateMenuForMicrosite($microsite);
}
continue;
}
if ($microsites = $this->childOfMicrositeLookup
->findMicrositesForNodeAndField($original, $field)) {
// This item is no longer in the microsite, so we need to trigger
// its removal
$plugin_id = 'entity_hierarchy_microsite:' . $original
->uuid();
if ($this->menuLinkManager
->hasDefinition($plugin_id)) {
$this->menuLinkManager
->removeDefinition($plugin_id);
}
}
}
}
}