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);
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc