mercury_editor-2.0.x-dev/modules/mercury_editor_demo/mercury_editor_demo.module

modules/mercury_editor_demo/mercury_editor_demo.module
<?php

/**
 * @file
 * Module hooks for Mercury Editor Demo module.
 */

use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;

/**
 * Implements hook_entity_type_alter().
 */
function mercury_editor_demo_entity_type_alter(array &$entity_types) {
  // Add validation constraint to the node entity.
  $entity_types['node']->addConstraint('InvalidTitle');
}

/**
 * Implements hook_library_info_alter().
 */
function mercury_editor_demo_library_info_alter(array &$libraries, $extension) {
  if ($extension === 'mercury_editor' && isset($libraries['menu'])) {
    $libraries['menu']['dependencies'][] = 'mercury_editor_demo/component_menu';
  }
}

/**
 * Creates a paragraph field for the provided entity type and bundle.
 */
function mercury_editor_demo_make_paragraph_field(
  $entity_type,
  $bundle,
  $field_name,
  $field_label,
  $handler_settings = [],
  $widget = 'paragraphs',
  $formatter = 'entity_reference_revisions_entity_view',
  $extra_settings = [],
) {

  if (empty($handler_settings)) {
    $handler_settings = [
      'target_bundles' => NULL,
      'negate' => TRUE,
    ];
  }
  $field_storage = FieldStorageConfig::loadByName($entity_type, $field_name);
  if (!$field_storage) {
    // Add a paragraphs field.
    $field_storage = FieldStorageConfig::create([
      'field_name' => $field_name,
      'entity_type' => $entity_type,
      'type' => 'entity_reference_revisions',
      'cardinality' => '-1',
      'settings' => [
        'target_type' => 'paragraph',
      ],
    ]);
    $field_storage->save();
  }
  $field_config = FieldConfig::loadByName($entity_type, $bundle, $field_name);
  if (!$field_config) {
    $field = FieldConfig::create([
      'field_storage' => $field_storage,
      'bundle' => $bundle,
      'label' => $field_label,
      'settings' => [
        'handler' => 'default:paragraph',
        'handler_settings' => $handler_settings,
      ],
    ]);
    $field->save();
  }

  $form_display = \Drupal::service('entity_display.repository')->getFormDisplay($entity_type, $bundle);
  $form_display->setComponent($field_name, ['type' => $widget] + $extra_settings);
  $form_display->save();

  $view_display = \Drupal::service('entity_display.repository')->getViewDisplay($entity_type, $bundle);
  $view_display->setComponent($field_name, ['type' => $formatter, 'label' => 'hidden'] + $extra_settings);
  $view_display->save();
}

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

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