Skip to content

Commit 5d87d17

Browse files
committed
makes module compatible with drupal 9 #32
1 parent 8b726d8 commit 5d87d17

File tree

6 files changed

+31
-34
lines changed

6 files changed

+31
-34
lines changed

src/Plugin/Field/FieldFormatter/ViewModeSelectorFormatter.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
<?php
22

3-
/**
4-
* @file
5-
* Contains \Drupal\view_mode_selector\Plugin\Field\FieldFormatter\ViewModeSelectorFormatter.
6-
*/
7-
83
namespace Drupal\view_mode_selector\Plugin\Field\FieldFormatter;
94

105
use Drupal\text\Plugin\Field\FieldFormatter\TextDefaultFormatter;

src/Plugin/Field/FieldType/ViewModeSelectorItem.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
<?php
22

3-
/**
4-
* @file
5-
* Contains \Drupal\options\Type\ListStringItem.
6-
*/
7-
83
namespace Drupal\view_mode_selector\Plugin\Field\FieldType;
94

105
use Drupal\Core\Field\FieldItemBase;
@@ -80,7 +75,7 @@ public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
8075
$bundle = $this->definition->getFieldDefinition()->getTargetBundle();
8176

8277
// Get all view modes for the current bundle.
83-
$view_modes = \Drupal::entityManager()->getViewModeOptionsByBundle($entity_type, $bundle);
78+
$view_modes = \Drupal::service('entity_display.repository')->getViewModeOptionsByBundle($entity_type, $bundle);
8479

8580
foreach ($view_modes as $view_mode_id => $view_mode_label) {
8681
if (!isset($element['view_modes'])) {

src/Plugin/Field/FieldWidget/ViewModeSelectorIcons.php

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
namespace Drupal\view_mode_selector\Plugin\Field\FieldWidget;
44

5-
use Drupal\Core\Entity\EntityManagerInterface;
5+
use Drupal\Core\Entity\EntityDisplayRepositoryInterface;
6+
use Drupal\Core\Entity\EntityTypeManagerInterface;
67
use Drupal\Core\Field\FieldDefinitionInterface;
78
use Drupal\Core\Field\FieldItemListInterface;
89
use Drupal\Core\Form\FormStateInterface;
9-
use Drupal\Core\Render\Renderer;
1010
use Drupal\Core\Render\RendererInterface;
1111
use Drupal\file\FileInterface;
1212
use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -25,6 +25,11 @@ class ViewModeSelectorIcons extends ViewModeSelectorRadios {
2525
*/
2626
protected $renderer;
2727

28+
/**
29+
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
30+
*/
31+
protected $entityTypeManager;
32+
2833
/**
2934
* ViewModeSelectorIcons constructor.
3035
*
@@ -33,19 +38,20 @@ class ViewModeSelectorIcons extends ViewModeSelectorRadios {
3338
* @param \Drupal\Core\Field\FieldDefinitionInterface $field_definition
3439
* @param array $settings
3540
* @param array $third_party_settings
36-
* @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
41+
* @param \Drupal\Core\Entity\EntityDisplayRepositoryInterface $entity_display_repository
3742
* @param \Drupal\Core\Render\RendererInterface $renderer
3843
*/
39-
public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, array $third_party_settings, EntityManagerInterface $entity_manager, RendererInterface $renderer) {
40-
parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $third_party_settings, $entity_manager);
44+
public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, array $third_party_settings, EntityDisplayRepositoryInterface $entity_display_repository, EntityTypeManagerInterface $entity_type_manager, RendererInterface $renderer) {
45+
parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $third_party_settings, $entity_display_repository);
4146
$this->renderer = $renderer;
47+
$this->entityTypeManager = $entity_type_manager;
4248
}
4349

4450
/**
4551
* {@inheritdoc}
4652
*/
4753
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
48-
return new static($plugin_id, $plugin_definition, $configuration['field_definition'], $configuration['settings'], $configuration['third_party_settings'], $container->get('entity.manager'), $container->get('renderer'));
54+
return new static($plugin_id, $plugin_definition, $configuration['field_definition'], $configuration['settings'], $configuration['third_party_settings'], $container->get('entity_display.repository'), $container->get('entity_type.manager'), $container->get('renderer'));
4955
}
5056

5157
/**
@@ -74,7 +80,7 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
7480

7581
if (!empty($settings['view_modes'][$view_mode]['icon'][0])) {
7682
/** @var FileInterface $icon */
77-
$icon = $this->entityManager->getStorage('file')->load($settings['view_modes'][$view_mode]['icon'][0]);
83+
$icon = $this->entityTypeManager->getStorage('file')->load($settings['view_modes'][$view_mode]['icon'][0]);
7884

7985
if (!$icon) {
8086
continue;

src/Plugin/Field/FieldWidget/ViewModeSelectorWidgetBase.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Drupal\view_mode_selector\Plugin\Field\FieldWidget;
44

5-
use Drupal\Core\Entity\EntityManagerInterface;
5+
use Drupal\Core\Entity\EntityDisplayRepositoryInterface;
66
use Drupal\Core\Field\WidgetBase;
77
use Drupal\Core\Field\FieldDefinitionInterface;
88
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
@@ -21,9 +21,9 @@ abstract class ViewModeSelectorWidgetBase extends WidgetBase implements Containe
2121
protected $viewModes = [];
2222

2323
/**
24-
* @var \Drupal\Core\Entity\EntityManagerInterface
24+
* @var \Drupal\Core\Entity\EntityDisplayRepositoryInterface
2525
*/
26-
protected $entityManager;
26+
protected $entityDisplayRepository;
2727

2828
/**
2929
* ViewModeSelectorWidgetBase constructor.
@@ -33,18 +33,18 @@ abstract class ViewModeSelectorWidgetBase extends WidgetBase implements Containe
3333
* @param \Drupal\Core\Field\FieldDefinitionInterface $field_definition
3434
* @param array $settings
3535
* @param array $third_party_settings
36-
* @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
36+
* @param \Drupal\Core\Entity\EntityDisplayRepositoryInterface $entity_display_repository
3737
*/
38-
public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, array $third_party_settings, EntityManagerInterface $entity_manager) {
38+
public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, array $third_party_settings, EntityDisplayRepositoryInterface $entity_display_repository) {
3939
parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $third_party_settings);
40-
$this->entityManager = $entity_manager;
40+
$this->entityDisplayRepository = $entity_display_repository;
4141

4242
$field_settings = $field_definition->getSettings();
4343
$entity_type = $field_definition->getTargetEntityTypeId();
4444
$bundle = $field_definition->getTargetBundle();
4545

4646
// Get all view modes for the current bundle.
47-
$view_modes = $this->entityManager->getViewModeOptionsByBundle($entity_type, $bundle);
47+
$view_modes = $this->entityDisplayRepository->getViewModeOptionsByBundle($entity_type, $bundle);
4848

4949
// Reduce options by enabled view modes
5050
foreach (array_keys($view_modes) as $view_mode) {
@@ -56,7 +56,7 @@ public function __construct($plugin_id, $plugin_definition, FieldDefinitionInter
5656

5757
// Show all view modes in widget when no view modes are enabled.
5858
if (!count($view_modes)) {
59-
$view_modes = $this->entityManager->getViewModeOptionsByBundle($entity_type, $bundle);
59+
$view_modes = $this->entityDisplayRepository->getViewModeOptionsByBundle($entity_type, $bundle);
6060
}
6161

6262
$this->viewModes = $view_modes;
@@ -66,6 +66,6 @@ public function __construct($plugin_id, $plugin_definition, FieldDefinitionInter
6666
* {@inheritdoc}
6767
*/
6868
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
69-
return new static($plugin_id, $plugin_definition, $configuration['field_definition'], $configuration['settings'], $configuration['third_party_settings'], $container->get('entity.manager'));
69+
return new static($plugin_id, $plugin_definition, $configuration['field_definition'], $configuration['settings'], $configuration['third_party_settings'], $container->get('entity_display.repository'));
7070
}
7171
}

view_mode_selector.info.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ name: View Mode Selector
22
type: module
33
description: Provides a new field type for changing the view mode of an entity.
44
core: 8.x
5+
core_version_requirement: ^8 || ^9
56
package: Fields

view_mode_selector.module

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function view_mode_selector_entity_view_mode_alter(&$view_mode, EntityInterface
2222
$view_mode = 'default';
2323

2424
// Find the first view mode selector field and change the view mode.
25-
$fields = \Drupal::entityManager()->getFieldDefinitions($entity->getEntityTypeId(), $entity->bundle());
25+
$fields = \Drupal::service('entity_field.manager')->getFieldDefinitions($entity->getEntityTypeId(), $entity->bundle());
2626
foreach ($fields as $field_name => $field) {
2727
if ($field->getType() == 'view_mode_selector' && $field_value = $entity->{$field_name}->value) {
2828
$view_mode = $field_value;
@@ -38,7 +38,7 @@ function view_mode_selector_entity_view_mode_alter(&$view_mode, EntityInterface
3838
*/
3939
function view_mode_selector_entity_view_mode_info_alter(&$view_modes) {
4040
// Load all view mode selector fields.
41-
$storage = \Drupal::entityManager()->getStorage('field_config');
41+
$storage = \Drupal::entityTypeManager()->getStorage('field_config');
4242
$field_ids = \Drupal::entityQuery('field_config')
4343
->condition('field_type', 'view_mode_selector')
4444
->execute();
@@ -51,7 +51,7 @@ function view_mode_selector_entity_view_mode_info_alter(&$view_modes) {
5151
$entity_type = $field->getTargetEntityTypeId();
5252

5353
// Load the view mode selector view mode and add it to the list.
54-
$storage = \Drupal::entityManager()->getStorage('entity_view_mode');
54+
$storage = \Drupal::entityTypeManager()->getStorage('entity_view_mode');
5555
$id = $entity_type . '.view_mode_selector';
5656
$view_mode = $storage->load($id);
5757
if (!$view_mode) {
@@ -79,12 +79,12 @@ function view_mode_selector_form_entity_view_display_edit_form_alter(&$form, For
7979
$view_display = $form_object->getEntity();
8080

8181
if ($view_display->getMode() == 'view_mode_selector') {
82-
drupal_set_message(t('This is a placeholder view mode from the <a href="@view-mode-selector">View Mode Selector</a> module. It will be replaced with a selected view mode.', [
82+
\Drupal::messenger()->addMessage(t('This is a placeholder view mode from the <a href="@view-mode-selector">View Mode Selector</a> module. It will be replaced with a selected view mode.', [
8383
'@view-mode-selector' => Url::fromUri('https://www.drupal.org/project/view_mode_selector')->toUriString(),
84-
]), 'status');
85-
drupal_set_message(t('The field settings have been disabled by the <a href="@view-mode-selector">View Mode Selector</a> module.', [
84+
]));
85+
\Drupal::messenger()->addWarning(t('The field settings have been disabled by the <a href="@view-mode-selector">View Mode Selector</a> module.', [
8686
'@view-mode-selector' => Url::fromUri('https://www.drupal.org/project/view_mode_selector')->toUriString(),
87-
]), 'warning');
87+
]));
8888
$form['fields']['#disabled'] = TRUE;
8989
}
9090
}

0 commit comments

Comments
 (0)