protected function ActivityFactory::getAggregationRelatedActivities in Open Social 10.0.x
Same name and namespace in other branches
- 8.9 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationRelatedActivities()
- 8 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationRelatedActivities()
- 8.2 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationRelatedActivities()
- 8.3 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationRelatedActivities()
- 8.4 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationRelatedActivities()
- 8.5 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationRelatedActivities()
- 8.6 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationRelatedActivities()
- 8.7 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationRelatedActivities()
- 8.8 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationRelatedActivities()
- 10.3.x modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationRelatedActivities()
- 10.1.x modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationRelatedActivities()
- 10.2.x modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationRelatedActivities()
Get related activities for activity aggregation.
1 call to ActivityFactory::getAggregationRelatedActivities()
- ActivityFactory::buildAggregatedActivites in modules/
custom/ activity_creator/ src/ ActivityFactory.php - Build the aggregated activities based on a data array.
File
- modules/
custom/ activity_creator/ src/ ActivityFactory.php, line 306
Class
- ActivityFactory
- Class ActivityFactory to create Activity items based on ActivityLogs.
Namespace
Drupal\activity_creatorCode
protected function getAggregationRelatedActivities($data) {
$activities = [];
$related_object = $data['related_object'][0];
if (!empty($related_object['target_id']) && !empty($related_object['target_type'])) {
if ($related_object['target_type'] === 'comment') {
// Get commented entity.
$comment_storage = $this->entityTypeManager
->getStorage('comment');
$comment = $comment_storage
->load($related_object['target_id']);
$commented_entity = $comment
->getCommentedEntity();
// Get all comments of commented entity.
$comment_query = $this->entityTypeManager
->getStorage('comment')
->getQuery();
$comment_query
->condition('entity_id', $commented_entity
->id(), '=');
$comment_query
->condition('entity_type', $commented_entity
->getEntityTypeId(), '=');
$comment_ids = $comment_query
->execute();
// Get all activities provided by comments of commented entity.
if (!empty($comment_ids)) {
$activity_query = $this->entityTypeManager
->getStorage('activity')
->getQuery();
$activity_query
->condition('field_activity_entity.target_id', $comment_ids, 'IN');
$activity_query
->condition('field_activity_entity.target_type', $related_object['target_type'], '=');
// We exclude activities with email, platform_email and notifications
// destinations from aggregation.
$aggregatable_destinations = $this->activityDestinationManager
->getListByProperties('isAggregatable', TRUE);
$activity_query
->condition('field_activity_destinations.value', $aggregatable_destinations, 'IN');
$activity_ids = $activity_query
->execute();
if (!empty($activity_ids)) {
$activities = Activity::loadMultiple($activity_ids);
}
}
}
}
return $activities;
}