You are here

function social_event_max_enroll_views_post_render in Open Social 8.8

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_event/modules/social_event_max_enroll/social_event_max_enroll.module \social_event_max_enroll_views_post_render()
  2. 8.5 modules/social_features/social_event/modules/social_event_max_enroll/social_event_max_enroll.module \social_event_max_enroll_views_post_render()
  3. 8.6 modules/social_features/social_event/modules/social_event_max_enroll/social_event_max_enroll.module \social_event_max_enroll_views_post_render()
  4. 8.7 modules/social_features/social_event/modules/social_event_max_enroll/social_event_max_enroll.module \social_event_max_enroll_views_post_render()
  5. 10.3.x modules/social_features/social_event/modules/social_event_max_enroll/social_event_max_enroll.module \social_event_max_enroll_views_post_render()
  6. 10.0.x modules/social_features/social_event/modules/social_event_max_enroll/social_event_max_enroll.module \social_event_max_enroll_views_post_render()
  7. 10.1.x modules/social_features/social_event/modules/social_event_max_enroll/social_event_max_enroll.module \social_event_max_enroll_views_post_render()
  8. 10.2.x modules/social_features/social_event/modules/social_event_max_enroll/social_event_max_enroll.module \social_event_max_enroll_views_post_render()

Implements hook_views_post_render().

Alter "Event enrollments" views. Add number of spots left.

File

modules/social_features/social_event/modules/social_event_max_enroll/social_event_max_enroll.module, line 18
The Social Event Max Enroll module.

Code

function social_event_max_enroll_views_post_render(ViewExecutable $view, &$output, CachePluginBase $cache) {
  if ($view->current_display === 'event_enrollments' && $view
    ->id() === 'event_enrollments' && isset($output['#rows']) && !empty($view->args[0])) {
    $nid = $view->args[0];
    $node = \Drupal::entityTypeManager()
      ->getStorage('node')
      ->load($nid);
    $event_max_enroll_service = \Drupal::service('social_event_max_enroll.service');

    // Add spots left counter to the block title.
    if ($event_max_enroll_service
      ->isEnabled($node)) {

      // Count how many spots left.
      $left = $event_max_enroll_service
        ->getEnrollmentsLeft($node);
      $title_suffix = \Drupal::translation()
        ->formatPlural($left, '(1 spot left)', '(@count spots left)');
      $view->header['result']->options['content'] .= ' ' . $title_suffix;
    }
  }
}