function _activity_creator_activity_for_entity_updater in Open Social 8.3
Same name and namespace in other branches
- 8.9 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
- 8.2 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
- 8.4 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
- 8.5 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
- 8.6 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
- 8.7 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
- 8.8 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
- 10.3.x modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
- 10.0.x modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
- 10.1.x modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
- 10.2.x modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
Update and or delete activities for given entity.
@TODO: When group is deleted delete activities where group is recipient. @TODO: When user is deleted delete activities where user is recipient. @TODO: Move this to a service.
Parameters
string $action: A string containing the action. Can be delete or update.
\Drupal\Core\Entity\EntityInterface $entity: The entity object which is updated or deleted.
2 calls to _activity_creator_activity_for_entity_updater()
- activity_creator_entity_delete in modules/
custom/ activity_creator/ activity_creator.module - Implements hook_entity_delete().
- activity_creator_entity_update in modules/
custom/ activity_creator/ activity_creator.module - Implements hook_entity_update().
File
- modules/
custom/ activity_creator/ activity_creator.module, line 267 - Activity Creator module file.
Code
function _activity_creator_activity_for_entity_updater($action, EntityInterface $entity) {
if ($entity !== NULL) {
$entity_type = $entity
->getEntityTypeId();
$entity_id = $entity
->id();
if ($entity_type !== 'activity') {
$entity_query = \Drupal::entityQuery('activity');
$entity_query
->condition('field_activity_entity.target_id', $entity_id, '=');
$entity_query
->condition('field_activity_entity.target_type', $entity_type, '=');
$ids = $entity_query
->execute();
}
if ($entity_type == 'user' || $entity_type == 'group') {
$entity_query = \Drupal::entityQuery('activity');
$entity_query
->condition('field_activity_recipient_' . $entity_type, $entity_id, '=');
$ids = $entity_query
->execute();
}
if ($entity_type == 'group_content') {
/** @var \Drupal\group\Entity\GroupContent $group_content */
$group_content = $entity;
$linked_entity = $group_content
->getEntity();
$group = $group_content
->getGroup();
if ($linked_entity && $linked_entity
->getEntityTypeId() === 'node' && $group
->id()) {
$entity_query = \Drupal::entityQuery('activity');
$entity_query
->condition('field_activity_entity.target_id', $linked_entity
->id(), '=');
$entity_query
->condition('field_activity_entity.target_type', $linked_entity
->getEntityTypeId(), '=');
$entity_query
->condition('field_activity_recipient_group', $group
->id(), '=');
$ids = $entity_query
->execute();
}
}
if (empty($ids)) {
return;
}
if ($action === 'update') {
$tags = [];
foreach ($ids as $id) {
$tags[] = 'activity:' . $id;
}
Cache::invalidateTags($tags);
}
elseif ($action === 'delete') {
entity_delete_multiple('activity', $ids);
}
}
}