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;
  }
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;
  }
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 ; }
Get related activities for activity aggregation.
Get related activities for activity aggregation .