public function ActivityNotifications::getActivityIdsByEntity in Open Social 10.3.x
Same name and namespace in other branches
- 8.9 modules/custom/activity_creator/src/ActivityNotifications.php \Drupal\activity_creator\ActivityNotifications::getActivityIdsByEntity()
- 8.8 modules/custom/activity_creator/src/ActivityNotifications.php \Drupal\activity_creator\ActivityNotifications::getActivityIdsByEntity()
- 10.0.x modules/custom/activity_creator/src/ActivityNotifications.php \Drupal\activity_creator\ActivityNotifications::getActivityIdsByEntity()
- 10.1.x modules/custom/activity_creator/src/ActivityNotifications.php \Drupal\activity_creator\ActivityNotifications::getActivityIdsByEntity()
- 10.2.x modules/custom/activity_creator/src/ActivityNotifications.php \Drupal\activity_creator\ActivityNotifications::getActivityIdsByEntity()
Gets all activity IDs by given entity.
Parameters
\Drupal\Core\Entity\EntityInterface $entity: The entity object.
Return value
array Return array of activity IDs or an empty array.
Throws
\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
\Drupal\Component\Plugin\Exception\PluginNotFoundException
File
- modules/
custom/ activity_creator/ src/ ActivityNotifications.php, line 95
Class
- ActivityNotifications
- Class ActivityNotifications to get Personalised activity items for account.
Namespace
Drupal\activity_creatorCode
public function getActivityIdsByEntity(EntityInterface $entity) : array {
$ids = [];
$entity_id = $entity
->id();
$entity_type = $entity
->getEntityTypeId();
switch ($entity_type) {
case 'user':
case 'group':
$entity_query = $this
->entityTypeManager()
->getStorage('activity')
->getQuery();
$entity_query
->condition('field_activity_recipient_' . $entity_type, $entity_id, '=');
$ids = $entity_query
->execute();
break;
case 'group_content':
/** @var \Drupal\group\Entity\GroupContent $entity */
$group_content = $entity;
$linked_entity = $entity
->getEntity();
$group = $entity
->getGroup();
if ($linked_entity && $linked_entity
->getEntityTypeId() === 'node' && $group
->id()) {
$entity_query = $this
->entityTypeManager()
->getStorage('activity')
->getQuery();
$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();
}
break;
default:
if ($entity_type !== 'activity') {
$entity_query = $this
->entityTypeManager()
->getStorage('activity')
->getQuery();
$entity_query
->condition('field_activity_entity.target_id', $entity_id, '=');
$entity_query
->condition('field_activity_entity.target_type', $entity_type, '=');
$ids = $entity_query
->execute();
}
break;
}
return $ids;
}