From c67946065ca333c6c70ffe2053c85ef3f0275a7b Mon Sep 17 00:00:00 2001 From: Alex Pott <alex.a.pott@googlemail.com> Date: Thu, 10 Jul 2014 11:17:09 +0100 Subject: [PATCH] Issue #2035317 by andypost, hussainweb | dawehner: DateTimeDefaultWidget should implement ContainerFactoryPluginInterface. --- .../FieldWidget/DateTimeDefaultWidget.php | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDefaultWidget.php b/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDefaultWidget.php index 9b2f3bdd673d..00426c0f9c64 100644 --- a/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDefaultWidget.php +++ b/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDefaultWidget.php @@ -6,10 +6,13 @@ namespace Drupal\datetime\Plugin\Field\FieldWidget; +use Drupal\Core\Entity\EntityStorageInterface; use Drupal\Core\Field\FieldItemListInterface; use Drupal\Core\Field\WidgetBase; use Drupal\Core\Field\FieldDefinitionInterface; +use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\datetime\Plugin\Field\FieldType\DateTimeItem; +use Symfony\Component\DependencyInjection\ContainerInterface; /** * Plugin implementation of the 'datetime_default' widget. @@ -22,7 +25,7 @@ * } * ) */ -class DateTimeDefaultWidget extends WidgetBase { +class DateTimeDefaultWidget extends WidgetBase implements ContainerFactoryPluginInterface { /** * The date format storage. @@ -34,11 +37,24 @@ class DateTimeDefaultWidget extends WidgetBase { /** * {@inheritdoc} */ - public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, array $third_party_settings) { + public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, array $third_party_settings, EntityStorageInterface $date_storage) { parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $third_party_settings); - // @todo Inject this once https://drupal.org/node/2035317 is in. - $this->dateStorage = \Drupal::entityManager()->getStorage('date_format'); + $this->dateStorage = $date_storage; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { + return new static( + $plugin_id, + $plugin_definition, + $configuration['field_definition'], + $configuration['settings'], + $configuration['third_party_settings'], + $container->get('entity.manager')->getStorage('date_format') + ); } /** -- GitLab