plugin-8.x-2.8/plugin.module

plugin.module
<?php

/**
 * @file
 * Contains hook implementations.
 */

use Drupal\field\FieldStorageConfigInterface;
use Drupal\plugin\Plugin\Field\FieldType\PluginCollectionItemInterface;

function plugin_field_info_alter(array &$field_type_definitions) {
  if (isset($field_type_definitions['plugin:block'])) {
    $field_type_definitions['plugin:block']['default_formatter'] = 'plugin_block_built';
  }
}

/**
 * Implements hook_field_formatter_info_alter().
 */
function plugin_field_formatter_info_alter(array &$field_formatter_definitions) {
  $field_formatter_definitions['plugin_label']['field_types'] = _plugin_collection_field_type_ids();
}

/**
 * Implements hook_field_widget_info_alter().
 */
function plugin_field_widget_info_alter(array &$field_widget_definitions) {
  $field_type_ids = _plugin_collection_field_type_ids();
  foreach ($field_widget_definitions as $plugin_id => $field_widget_definition) {
    if (strpos($plugin_id, 'plugin_selector:') === 0) {
      $field_widget_definitions[$plugin_id]['field_types'] = $field_type_ids;
    }
  }
}

/**
 * Implements hook_views_data_alter().
 */
function plugin_views_data_alter(array &$data) {
  /** @var \Drupal\plugin\ViewsData $views_data */
  $views_data = \Drupal::service('plugin.views_data');
  $views_data->alterViewsData($data);
}

/**
 * Implements hook_field_views_data_alter().
 */
function plugin_field_views_data_alter(array &$data, FieldStorageConfigInterface $field_storage) {
  /** @var \Drupal\plugin\ViewsData $views_data */
  $views_data = \Drupal::service('plugin.views_data');
  $views_data->alterFieldViewsData($data, $field_storage);
}

/**
 * Gets the IDs of plugin item collection field types.
 *
 * @return string[]
 */
function _plugin_collection_field_type_ids() {
  $supported_field_type_ids = [];
  /** @var \Drupal\Component\Plugin\PluginManagerInterface $field_type_manager */
  $field_type_manager = \Drupal::service('plugin.manager.field.field_type');
  foreach ($field_type_manager->getDefinitions() as $plugin_id => $plugin_definition) {
    if (is_subclass_of($plugin_definition['class'], PluginCollectionItemInterface::class)) {
      $supported_field_type_ids[] = $plugin_id;
    }
  }

  return $supported_field_type_ids;
}

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

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