You are here

public static function EntityReferenceRevisionsItem::getPreconfiguredOptions in Entity Reference Revisions 8

Returns preconfigured field options for a field type.

Note that if you want to give modules an opportunity to alter the result of this method, you should call \Drupal\Core\Field\FieldTypePluginManagerInterface::getPreconfiguredOptions() instead.

Return value

mixed[][] A multi-dimensional array with string keys and the following structure:

  • label: The label to show in the field type selection list.
  • category: (optional) The category in which to put the field label. Defaults to the category of the field type.
  • field_storage_config: An array with the following supported keys:
    • cardinality: The field cardinality.
    • settings: Field-type specific storage settings.
  • field_config: An array with the following supported keys:
    • required: Indicates whether the field is required.
    • settings: Field-type specific settings.
  • entity_form_display: An array with the following supported keys:
    • type: The widget to be used in the 'default' form mode.
  • entity_view_display: An array with the following supported keys:
    • type: The formatter to be used in the 'default' view mode.

Overrides EntityReferenceItem::getPreconfiguredOptions

See also

\Drupal\field\Entity\FieldStorageConfig

\Drupal\field\Entity\FieldConfig

\Drupal\Core\Entity\Display\EntityDisplayInterface::setComponent()

\Drupal\Core\Field\FieldTypePluginManagerInterface::getPreconfiguredOptions()

File

src/Plugin/Field/FieldType/EntityReferenceRevisionsItem.php, line 72

Class

EntityReferenceRevisionsItem
Defines the 'entity_reference_revisions' entity field type.

Namespace

Drupal\entity_reference_revisions\Plugin\Field\FieldType

Code

public static function getPreconfiguredOptions() {
  $options = array();

  // Add all the commonly referenced entity types as distinct pre-configured
  // options.
  $entity_types = \Drupal::entityTypeManager()
    ->getDefinitions();
  $common_references = array_filter($entity_types, function (EntityTypeInterface $entity_type) {
    return $entity_type
      ->get('common_reference_revisions_target') && $entity_type
      ->isRevisionable();
  });

  /** @var \Drupal\Core\Entity\EntityTypeInterface $entity_type */
  foreach ($common_references as $entity_type) {
    $options[$entity_type
      ->id()] = [
      'label' => $entity_type
        ->getLabel(),
      'field_storage_config' => [
        'settings' => [
          'target_type' => $entity_type
            ->id(),
        ],
      ],
    ];
    $default_reference_settings = $entity_type
      ->get('default_reference_revision_settings');
    if (is_array($default_reference_settings)) {
      $options[$entity_type
        ->id()] = array_merge($options[$entity_type
        ->id()], $default_reference_settings);
    }
  }
  return $options;
}