edit_ui-8.x-1.x-dev/edit_ui.module

edit_ui.module
<?php

/**
 * @file
 * Contains hook implementations for edit_ui module.
 */

declare(strict_types = 1);

use Drupal\Core\Form\FormStateInterface;

/**
 * Implements hook_theme_suggestions_HOOK_alter().
 */
function edit_ui_theme_suggestions_block_alter(array &$suggestions, array $variables) {
  $parts = explode(':', $variables['elements']['#plugin_id']);
  if ($parts[0] === 'system_messages_block') {
    $suggestions[] = 'block__system_messages_block__edit_ui';
  }
}

/**
 * Implements hook_theme().
 */
function edit_ui_theme($existing, $type, $theme, $path) {
  $items['block__system_messages_block__edit_ui'] = [
    'render element' => 'elements',
    'base hook' => 'block',
  ];
  return $items;
}

/**
 * Implements hook_preprocess_HOOK() for region templates.
 */
function edit_ui_preprocess_region(&$variables) {
  $variables['attributes']['class'][] = 'js-edit-ui__region';
  $variables['attributes']['data-edit-ui-region'] = $variables['region'];
}

/**
 * Implements hook_form_FORM_ID_alter().
 */
function edit_ui_form_block_form_alter(&$form, FormStateInterface $form_state) {
  $request = \Drupal::request();
  $module = $request->request->get('module');

  if ($module == 'edit_ui') {
    $weight = $request->query->get('weight');

    $form['module'] = [
      '#type' => 'hidden',
      '#value' => $module,
      '#id' => 'module',
      '#name' => 'module',
    ];

    if (!empty($weight)) {
      $form_state->getFormObject()->getEntity()->setWeight($weight);
      $form['weight'] = [
        '#type' => 'hidden',
        '#value' => $weight,
        '#id' => 'weight',
        '#name' => 'weight',
      ];
    }

    $form['actions']['submit']['#attributes'] = ['class' => ['use-ajax-submit']];
    $form['actions']['submit']['#submit'][] = 'edit_ui_form_submit';
  }
}

/**
 * Edit UI form_block submit callback.
 *
 * @param array $form
 *   The block instance edit form.
 * @param \Drupal\Core\Form\FormStateInterface $form_state
 *   The block instance form state.
 */
function edit_ui_form_submit(array $form, FormStateInterface $form_state) {
  if ($form_state->getValue('module') == 'edit_ui') {
    $block_id = $form_state->getFormObject()->getEntity()->getOriginalId();
    $form_state->setRedirect('edit_ui.block.modal', ['block_id' => $block_id]);
  }
}

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

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