You are here

public function OgBehaviorHandler::delete in Organic groups 7.2

Implements EntityReference_BehaviorHandler_Abstract::Delete()

CRUD memberships from field, or if entity is marked for deleteing, delete all the OG membership related to it.

Overrides EntityReference_BehaviorHandler_Abstract::delete

See also

og_entity_delete().

File

plugins/entityreference/behavior/OgBehaviorHandler.class.php, line 74

Class

OgBehaviorHandler
OG behavior handler.

Code

public function delete($entity_type, $entity, $field, $instance, $langcode, &$items) {
  if (!empty($entity->skip_og_membership)) {
    return;
  }
  if (!empty($entity->delete_og_membership)) {

    // Delete all OG memberships related to this entity.
    $og_memberships = array();
    foreach (og_get_entity_groups($entity_type, $entity) as $group_type => $ids) {
      $og_memberships = array_merge($og_memberships, array_keys($ids));
    }
    if ($og_memberships) {
      og_membership_delete_multiple($og_memberships);
    }
  }
  else {
    $this
      ->OgMembershipCrud($entity_type, $entity, $field, $instance, $langcode, $items);
  }
}