You are here

protected function ActivityFactory::getAggregationAuthorsCount in Open Social 8.3

Same name and namespace in other branches
  1. 8.9 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationAuthorsCount()
  2. 8 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationAuthorsCount()
  3. 8.2 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationAuthorsCount()
  4. 8.4 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationAuthorsCount()
  5. 8.5 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationAuthorsCount()
  6. 8.6 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationAuthorsCount()
  7. 8.7 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationAuthorsCount()
  8. 8.8 modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationAuthorsCount()
  9. 10.3.x modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationAuthorsCount()
  10. 10.0.x modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationAuthorsCount()
  11. 10.1.x modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationAuthorsCount()
  12. 10.2.x modules/custom/activity_creator/src/ActivityFactory.php \Drupal\activity_creator\ActivityFactory::getAggregationAuthorsCount()

Get unique authors number for activity aggregation.

1 call to ActivityFactory::getAggregationAuthorsCount()
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 314

Class

ActivityFactory
Class ActivityFactory to create Activity items based on ActivityLogs.

Namespace

Drupal\activity_creator

Code

protected function getAggregationAuthorsCount(array $data) {
  $count = 0;
  $related_object = $data['related_object'][0];
  if (isset($related_object['target_type']) && $related_object['target_type'] === 'comment') {

    // Get related entity.
    $related_entity = $this
      ->getActivityRelatedEntity($data);
    if (!empty($related_entity['target_id']) && !empty($related_entity['target_type'])) {
      $query = \Drupal::database()
        ->select('comment_field_data', 'cfd');
      $query
        ->addExpression('COUNT(DISTINCT cfd.uid)');
      $query
        ->condition('cfd.status', 1);
      $query
        ->condition('cfd.entity_type', $related_entity['target_type']);
      $query
        ->condition('cfd.entity_id', $related_entity['target_id']);
      $count = $query
        ->execute()
        ->fetchField();
    }
  }
  return $count;
}