ui_patterns-8.x-1.4/modules/ui_patterns_field_group/ui_patterns_field_group.module

modules/ui_patterns_field_group/ui_patterns_field_group.module
<?php

/**
 * @file
 * Contains module file.
 */

use Drupal\Core\Form\FormStateInterface;
use Drupal\ui_patterns\Element\PatternContext;

/**
 * Implements hook_module_implements_alter().
 */
function ui_patterns_field_group_module_implements_alter(&$implementations, $hook) {
  switch ($hook) {
    // Ensure ui_patterns_field_group_form_entity_view_display_edit_form_alter,
    // is executed after field_group_form_entity_view_display_edit_form_alter.
    case 'form_alter':
      if (isset($implementations['ui_patterns_field_group'])) {
        $group = $implementations['ui_patterns_field_group'];
        unset($implementations['ui_patterns_field_group']);
        $implementations['ui_patterns_field_group'] = $group;
      }
      break;
  }
}

/**
 * Implements hook_form_FORM_ID_alter() for 'entity_view_display_edit_form'.
 */
function ui_patterns_field_group_form_entity_view_display_edit_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  array_unshift($form['actions']['submit']['#submit'], 'ui_patterns_field_group_field_group_field_overview_submit');
}

/**
 * Form submit callback to fix the field_group configuration.
 *
 * @param array $form
 *   The form.
 * @param \Drupal\Core\Form\FormStateInterface $form_state
 *   The form state.
 */
function ui_patterns_field_group_field_group_field_overview_submit(array $form, FormStateInterface $form_state) {

  $field_group_form_state = $form_state->get('field_group');
  if (!empty($field_group_form_state)) {
    foreach ($form['#fieldgroups'] as $group_name) {
      // Only save updated groups.
      if (!isset($field_group_form_state[$group_name])) {
        continue;
      }

      if (isset($field_group_form_state[$group_name]->format_settings)) {
        // Call static processFormStateValues if the plugin implements it.
        $plugin_definition = \Drupal::service('plugin.manager.field_group.formatters')->getDefinition($field_group_form_state[$group_name]->format_type, FALSE);
        if (method_exists($plugin_definition['class'], 'processFormStateValues')) {
          call_user_func_array([
            $plugin_definition['class'],
            'processFormStateValues',
          ],
            [&$field_group_form_state[$group_name]->format_settings]);
        }
      }
    }

    // Set the form_state so that the submit hook of field_groups can work.
    $form_state->set('field_group', $field_group_form_state);
  }
}

/**
 * Implements hook_ui_patterns_suggestions_alter().
 */
function ui_patterns_field_group_ui_patterns_suggestions_alter(array &$suggestions, array $variables, PatternContext $context) {
  if ($context->isOfType('field_group')) {
    $hook = $variables['theme_hook_original'];
    $variant = $variables["variant"] ?? '';
    $group_name = $context->getProperty('group_name');
    $entity_type = $context->getProperty('entity_type');
    $bundle = $context->getProperty('bundle');
    $view_mode = $context->getProperty('view_mode');

    $suggestions[] = $hook . '__field_group';
    $suggestions[] = $hook . '__field_group__' . $group_name;
    $suggestions[] = $hook . '__field_group__' . $group_name . '__' . $entity_type;
    $suggestions[] = $hook . '__field_group__' . $group_name . '__' . $entity_type . '__' . $bundle;
    $suggestions[] = $hook . '__field_group__' . $group_name . '__' . $entity_type . '__' . $view_mode;
    $suggestions[] = $hook . '__field_group__' . $group_name . '__' . $entity_type . '__' . $bundle . '__' . $view_mode;

    if (!empty($variant)) {
      $suggestions[] = $hook . '__variant_' . $variant . '__field_group';
      $suggestions[] = $hook . '__variant_' . $variant . '__field_group__' . $group_name;
      $suggestions[] = $hook . '__variant_' . $variant . '__field_group__' . $group_name . '__' . $entity_type;
      $suggestions[] = $hook . '__variant_' . $variant . '__field_group__' . $group_name . '__' . $entity_type . '__' . $bundle;
      $suggestions[] = $hook . '__variant_' . $variant . '__field_group__' . $group_name . '__' . $entity_type . '__' . $view_mode;
      $suggestions[] = $hook . '__variant_' . $variant . '__field_group__' . $group_name . '__' . $entity_type . '__' . $bundle . '__' . $view_mode;
    }
  }
}

/**
 * Implements hook_ui_patterns_destination_suggestions_alter().
 */
function ui_patterns_field_group_ui_patterns_destination_suggestions_alter(array &$suggestions, array $variables, PatternContext $context) {
  if ($context->isOfType('field_group')) {
    $hook = $variables['theme_hook_original'];
    $variant = $variables["variant"] ?? '';
    $group_name = $context->getProperty('group_name');
    $entity_type = $context->getProperty('entity_type');
    $bundle = $context->getProperty('bundle');
    $view_mode = $context->getProperty('view_mode');
    $pattern = $context->getProperty('pattern');
    $field = $context->getProperty('field');

    $suggestions[] = $hook . '__field_group__' . $group_name . '__' . $pattern . '__' . $field;
    $suggestions[] = $hook . '__field_group__' . $group_name . '__' . $entity_type . '__' . $pattern . '__' . $field;
    $suggestions[] = $hook . '__field_group__' . $group_name . '__' . $entity_type . '__' . $bundle . '__' . $pattern . '__' . $field;
    $suggestions[] = $hook . '__field_group__' . $group_name . '__' . $entity_type . '__' . $view_mode . '__' . $pattern . '__' . $field;
    $suggestions[] = $hook . '__field_group__' . $group_name . '__' . $entity_type . '__' . $bundle . '__' . $view_mode . '__' . $pattern . '__' . $field;

    if (!empty($variant)) {
      $suggestions[] = $hook . '__variant_' . $variant . '__field_group__' . $group_name . '__' . $pattern . '__' . $field;
      $suggestions[] = $hook . '__variant_' . $variant . '__field_group__' . $group_name . '__' . $entity_type . '__' . $pattern . '__' . $field;
      $suggestions[] = $hook . '__variant_' . $variant . '__field_group__' . $group_name . '__' . $entity_type . '__' . $bundle . '__' . $pattern . '__' . $field;
      $suggestions[] = $hook . '__variant_' . $variant . '__field_group__' . $group_name . '__' . $entity_type . '__' . $view_mode . '__' . $pattern . '__' . $field;
      $suggestions[] = $hook . '__variant_' . $variant . '__field_group__' . $group_name . '__' . $entity_type . '__' . $bundle . '__' . $view_mode . '__' . $pattern . '__' . $field;
    }
  }
}

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

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