function EntityDisplayModeController::viewModeTypeSelection

Same name and namespace in other branches
  1. 9 core/modules/field_ui/src/Controller/EntityDisplayModeController.php \Drupal\field_ui\Controller\EntityDisplayModeController::viewModeTypeSelection()
  2. 8.9.x core/modules/field_ui/src/Controller/EntityDisplayModeController.php \Drupal\field_ui\Controller\EntityDisplayModeController::viewModeTypeSelection()
  3. 10 core/modules/field_ui/src/Controller/EntityDisplayModeController.php \Drupal\field_ui\Controller\EntityDisplayModeController::viewModeTypeSelection()

Provides a list of eligible entity types for adding view modes.

Return value

array A list of entity types to add a view mode for.

1 string reference to 'EntityDisplayModeController::viewModeTypeSelection'
field_ui.routing.yml in core/modules/field_ui/field_ui.routing.yml
core/modules/field_ui/field_ui.routing.yml

File

core/modules/field_ui/src/Controller/EntityDisplayModeController.php, line 20

Class

EntityDisplayModeController
Provides methods for entity display mode routes.

Namespace

Drupal\field_ui\Controller

Code

public function viewModeTypeSelection() {
  $entity_types = [];
  foreach ($this->entityTypeManager()
    ->getDefinitions() as $entity_type_id => $entity_type) {
    if ($entity_type->get('field_ui_base_route') && $entity_type->hasViewBuilderClass()) {
      $entity_types[$entity_type_id] = [
        'title' => $entity_type->getLabel(),
        'url' => Url::fromRoute('entity.entity_view_mode.add_form', [
          'entity_type_id' => $entity_type_id,
        ])->setOption('attributes', [
          'class' => [
            'use-ajax',
          ],
          'data-dialog-type' => 'modal',
          'data-dialog-options' => Json::encode([
            'width' => '880',
          ]),
        ]),
      ];
    }
  }
  // Move content at the top.
  array_splice($entity_types, 0, 0, array_splice($entity_types, array_search('node', array_keys($entity_types)), 1));
  return [
    '#theme' => 'admin_block_content',
    '#content' => $entity_types,
    '#attached' => [
      'library' => [
        'core/drupal.dialog.ajax',
      ],
    ],
  ];
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.