protected function ActivityFactory::getAggregationRelatedActivities in Open Social 8.7
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.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.0.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 241
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 = \Drupal::entityTypeManager()
->getStorage('comment');
$comment = $comment_storage
->load($related_object['target_id']);
$commented_entity = $comment
->getCommentedEntity();
// Get all comments of commented entity.
$comment_query = \Drupal::entityQuery('comment');
$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 = \Drupal::entityQuery('activity');
$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;
}