<?php /** * @file * Contains oc_activity.page.inc. * * Page callback for Activity entities. */ use Drupal\Core\Render\Element; /** * Prepares variables for Activity templates. * * Default template: oc_activity.html.twig. * * @param array $variables * An associative array containing: * - elements: An associative array containing the user information and any * - attributes: HTML attributes for the containing element. */ function template_preprocess_oc_activity(array &$variables) { // Fetch OCActivity Entity Object. $oc_activity = $variables['elements']['#oc_activity']; $variables['id'] = $oc_activity->get('id')[0]->get('value')->getValue(); // Helpful $content variable for templates. foreach (Element::children($variables['elements']) as $key) { $variables['content'][$key] = $variables['elements'][$key]; } // Separate the fields into two sections to be displayed in two columns. // Remove the name (title) field as this is displayed anyway. $variables['base_fields'] = array(); $variables['other_fields'] = array(); foreach (Element::children($variables['elements']) as $key) { $variables['content'][$key] = $variables['elements'][$key]; if (in_array($key, ['activity_date_time', 'time_taken', 'description', 'user_id', 'actors_involved'])) { $variables['base_fields'][$key] = $variables['elements'][$key]; } else { $variables['other_fields'][$key] = $variables['elements'][$key]; unset($variables['other_fields']['name']); } } }