date_recur-8.x-2.2/date_recur.module
date_recur.module
<?php /** * @file * Contains hooks for date_recur module. */ declare(strict_types=1); use Drupal\Core\Render\Element; use Drupal\date_recur\DateRecurCachedHooks; use Drupal\date_recur\DateRecurViewsHooks; use Drupal\field\FieldStorageConfigInterface; /** * Implements hook_theme(). */ function date_recur_theme(array $existing, string $type, string $theme, string $path): array { /** @var \Drupal\date_recur\DateRecurCachedHooks $cachedHooks */ $cachedHooks = \Drupal::classResolver(DateRecurCachedHooks::class); return $cachedHooks->hookTheme($existing, $type, $theme, $path); } /** * Implements hook_field_info_alter(). */ function date_recur_field_info_alter(array &$info): void { /** @var \Drupal\date_recur\DateRecurCachedHooks $cachedHooks */ $cachedHooks = \Drupal::classResolver(DateRecurCachedHooks::class); $cachedHooks->fieldInfoAlter($info); } /** * Implements hook_field_views_data(). */ function date_recur_field_views_data(FieldStorageConfigInterface $fieldDefinition): array { /** @var \Drupal\date_recur\DateRecurViewsHooks $viewsHooks */ $viewsHooks = \Drupal::classResolver(DateRecurViewsHooks::class); return $viewsHooks->fieldViewsData($fieldDefinition); } /** * Implements hook_views_data(). */ function date_recur_views_data(): array { /** @var \Drupal\date_recur\DateRecurViewsHooks $viewsHooks */ $viewsHooks = \Drupal::classResolver(DateRecurViewsHooks::class); return $viewsHooks->viewsData(); } /** * Implements hook_views_data_alter(). */ function date_recur_views_data_alter(array &$data): void { /** @var \Drupal\date_recur\DateRecurViewsHooks $viewsHooks */ $viewsHooks = \Drupal::classResolver(DateRecurViewsHooks::class); $viewsHooks->viewsDataAlter($data); } /** * Template preprocessor for 'date_recur_settings_frequency_table'. * * @param array $variables * An associative array containing: * - element: An associative array containing a Form API structure to be * rendered as a table. */ function template_preprocess_date_recur_settings_frequency_table(array &$variables): void { $partTitles = []; // Transfer elements to 'table' key so they can be iterated on without // clashing with '#' elements. $variables['table'] = []; foreach (Element::children($variables['element']) as $key) { $variables['table'][$key] = $variables['element'][$key]; $row = &$variables['table'][$key]; foreach (Element::children($row['parts']) as $rowKey) { $row['parts']['parts'][$rowKey] = $row['parts'][$rowKey]; unset($row['parts'][$rowKey]); foreach ($row['parts']['parts'] as $part) { $partTitles[] = $part['#title']; } } unset($variables['element'][$key]); } $variables['all_parts'] = array_unique($partTitles); }