public function CerHandler::dereference in Corresponding Entity References 7.2
Implements CerHandlerInterface::dereference().
Overrides CerHandlerInterface::dereference
2 calls to CerHandler::dereference()
- CerHandler::delete in ./
handler.inc - Implements CerHandlerInterface::delete().
- CerHandler::update in ./
handler.inc - Implements CerHandlerInterface::update().
File
- ./
handler.inc, line 294 - 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 dereference($entity) {
if ($this
->references($entity)) {
$id = $this
->getRemoteEntityID($entity);
foreach ($this->entity->{$this->local['field_name']} as $language => $references) {
foreach ($references as $delta => $reference) {
if ($reference['target_id'] == $id) {
unset($this->entity->{$this->local['field_name']}[$language][$delta]);
}
}
}
}
if ($this
->referencedBy($entity)) {
foreach ($entity->{$this->remote['field_name']} as $language => $references) {
foreach ($references as $delta => $reference) {
if ($reference['target_id'] == $this->id) {
unset($entity->{$this->remote['field_name']}[$language][$delta]);
}
}
}
}
}