function EntityDisplayModeController::viewModeTypeSelection

Same name 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. 11.x 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.