public function CerHandler::update in Corresponding Entity References 7.2
Implements CerHandlerInterface::update().
Overrides CerHandlerInterface::update
File
- ./
handler.inc, line 190 - Contains base code for CER handlers, which are objects responsible for creating, updating and deleting corresponding references between entities.
Class
- CerHandler
- @class Generic CER handler with rudimentary language handling.
Code
public function update() {
$original = isset($this->entity->original) ? $this->entity->original : $this->entity;
$deleted = array_diff($this
->getReferenceIDs($original, $this->local), $this
->getLocalReferenceIDs());
if ($deleted) {
$entities = entity_load($this->remote['entity_type'], $deleted);
foreach ($entities as $referenced_entity) {
$this
->dereference($referenced_entity);
_cer_update($this->remote['entity_type'], $referenced_entity);
}
}
$added = array_diff($this
->getLocalReferenceIDs(), $this
->getReferenceIDs($original, $this->local));
if (!empty($added)) {
$this
->insert($added);
}
}