component_library-1.0.x-dev/modules/gcomponent_library/src/BaseFields.php

modules/gcomponent_library/src/BaseFields.php
<?php

declare(strict_types=1);

namespace Drupal\gcomponent_library;

use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\Core\StringTranslation\TranslatableMarkup;

final class BaseFields {

  public const COLLECTION_FIELD = 'library_collection';
  public const OVERRIDE_FIELD = 'style_overrides';

  /**
   * Return the base field info.
   *
   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
   *   The entity type.
   *
   * @return \Drupal\Core\Field\FieldStorageDefinitionInterface[]
   *   The field storage definitions.
   */
  public function baseFieldInfo(EntityTypeInterface $entity_type): array {
    $fields = [];

    if ($entity_type->id() === 'group') {
      $fields[self::COLLECTION_FIELD] = BaseFieldDefinition::create('entity_reference')
        ->setName('Component library collection')
        ->setTargetEntityTypeId($entity_type->id())
        ->setTranslatable(FALSE)
        ->setRevisionable(FALSE)
        ->setCardinality(1)
        ->setSetting('target_type', 'gcomponent_library_collection')
        ->setLabel(new TranslatableMarkup('Component library collection'))
        ->setDisplayConfigurable('form', TRUE)
        ->setDescription(new TranslatableMarkup('The collection of related design components.'))
        ->setRequired(TRUE);
      $fields[self::OVERRIDE_FIELD] = BaseFieldDefinition::create('map')
        ->setLabel(new TranslatableMarkup('Style overrides'))
        ->setDisplayOptions('form', [
          'type' => 'gcomponent_library_style_overrides',
        ])
        ->setDisplayConfigurable('form', TRUE);
    }

    return $fields;
  }

}

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

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