You are here

function social_event_type_preprocess_node in Open Social 8.4

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_event/modules/social_event_type/social_event_type.module \social_event_type_preprocess_node()
  2. 8 modules/social_features/social_event/modules/social_event_type/social_event_type.module \social_event_type_preprocess_node()
  3. 8.2 modules/social_features/social_event/modules/social_event_type/social_event_type.module \social_event_type_preprocess_node()
  4. 8.3 modules/social_features/social_event/modules/social_event_type/social_event_type.module \social_event_type_preprocess_node()
  5. 8.5 modules/social_features/social_event/modules/social_event_type/social_event_type.module \social_event_type_preprocess_node()
  6. 8.6 modules/social_features/social_event/modules/social_event_type/social_event_type.module \social_event_type_preprocess_node()
  7. 8.7 modules/social_features/social_event/modules/social_event_type/social_event_type.module \social_event_type_preprocess_node()
  8. 8.8 modules/social_features/social_event/modules/social_event_type/social_event_type.module \social_event_type_preprocess_node()
  9. 10.3.x modules/social_features/social_event/modules/social_event_type/social_event_type.module \social_event_type_preprocess_node()
  10. 10.0.x modules/social_features/social_event/modules/social_event_type/social_event_type.module \social_event_type_preprocess_node()
  11. 10.1.x modules/social_features/social_event/modules/social_event_type/social_event_type.module \social_event_type_preprocess_node()
  12. 10.2.x modules/social_features/social_event/modules/social_event_type/social_event_type.module \social_event_type_preprocess_node()

Preprocess event node.

Parameters

array $variables: Array with variables of a node.

File

modules/social_features/social_event/modules/social_event_type/social_event_type.module, line 61
The Social event type module.

Code

function social_event_type_preprocess_node(array &$variables) {

  /* @var \Drupal\node\NodeInterface $node */
  $node = $variables['node'];
  if ($node
    ->getType() === 'event') {
    $event_type = $node
      ->get('field_event_type');
    $event_type_entities = $event_type
      ->referencedEntities();
    if (count($event_type_entities) === 1) {

      /** @var \Drupal\node\Entity\Node $event */
      foreach ($event_type_entities as $event) {
        $variables['metadata'] = t('in @event', [
          '@event' => $event
            ->link(),
        ]);

        // Set event type link.
        $now = strtotime("now");
        $end = strtotime($node
          ->get('field_event_date_end')
          ->getString());

        // 1 are upcoming events.
        // 2 are ones that have started or are finished.
        $datetype = $now > $end ? 2 : 1;
        $event_type_url = Url::fromRoute('view.upcoming_events.page_community_events', [
          'field_event_date_value' => $datetype,
          'event_type_id' => $event
            ->id(),
        ]);
        $event_type_link = Link::fromTextAndUrl($event
          ->label(), $event_type_url)
          ->toString();
        $variables['event_type'] = $event_type_link;
      }
    }
    else {
      $variables['metadata'] = NULL;
      $variables['event_type'] = NULL;
    }
  }
}