Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\field_ui\Controller;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\Core\Controller\ControllerBase;
|
Chris@0
|
6 use Drupal\Core\Url;
|
Chris@0
|
7
|
Chris@0
|
8 /**
|
Chris@0
|
9 * Provides methods for entity display mode routes.
|
Chris@0
|
10 */
|
Chris@0
|
11 class EntityDisplayModeController extends ControllerBase {
|
Chris@0
|
12
|
Chris@0
|
13 /**
|
Chris@0
|
14 * Provides a list of eligible entity types for adding view modes.
|
Chris@0
|
15 *
|
Chris@0
|
16 * @return array
|
Chris@0
|
17 * A list of entity types to add a view mode for.
|
Chris@0
|
18 */
|
Chris@0
|
19 public function viewModeTypeSelection() {
|
Chris@0
|
20 $entity_types = [];
|
Chris@18
|
21 foreach ($this->entityTypeManager()->getDefinitions() as $entity_type_id => $entity_type) {
|
Chris@0
|
22 if ($entity_type->get('field_ui_base_route') && $entity_type->hasViewBuilderClass()) {
|
Chris@0
|
23 $entity_types[$entity_type_id] = [
|
Chris@0
|
24 'title' => $entity_type->getLabel(),
|
Chris@0
|
25 'url' => Url::fromRoute('entity.entity_view_mode.add_form', ['entity_type_id' => $entity_type_id]),
|
Chris@0
|
26 'localized_options' => [],
|
Chris@0
|
27 ];
|
Chris@0
|
28 }
|
Chris@0
|
29 }
|
Chris@0
|
30 return [
|
Chris@0
|
31 '#theme' => 'admin_block_content',
|
Chris@0
|
32 '#content' => $entity_types,
|
Chris@0
|
33 ];
|
Chris@0
|
34 }
|
Chris@0
|
35
|
Chris@0
|
36 /**
|
Chris@0
|
37 * Provides a list of eligible entity types for adding form modes.
|
Chris@0
|
38 *
|
Chris@0
|
39 * @return array
|
Chris@0
|
40 * A list of entity types to add a form mode for.
|
Chris@0
|
41 */
|
Chris@0
|
42 public function formModeTypeSelection() {
|
Chris@0
|
43 $entity_types = [];
|
Chris@18
|
44 foreach ($this->entityTypeManager()->getDefinitions() as $entity_type_id => $entity_type) {
|
Chris@0
|
45 if ($entity_type->get('field_ui_base_route') && $entity_type->hasFormClasses()) {
|
Chris@0
|
46 $entity_types[$entity_type_id] = [
|
Chris@0
|
47 'title' => $entity_type->getLabel(),
|
Chris@0
|
48 'url' => Url::fromRoute('entity.entity_form_mode.add_form', ['entity_type_id' => $entity_type_id]),
|
Chris@0
|
49 'localized_options' => [],
|
Chris@0
|
50 ];
|
Chris@0
|
51 }
|
Chris@0
|
52 }
|
Chris@0
|
53 return [
|
Chris@0
|
54 '#theme' => 'admin_block_content',
|
Chris@0
|
55 '#content' => $entity_types,
|
Chris@0
|
56 ];
|
Chris@0
|
57 }
|
Chris@0
|
58
|
Chris@0
|
59 }
|