diff --git a/src/Plugin/Field/FieldType/SmartDateItem.php b/src/Plugin/Field/FieldType/SmartDateItem.php index 171a3d12cd3753583c9003f49c805a9d3dac25c3..96a213e2826fba21e85f9e396b9cfc88fd29fe79 100644 --- a/src/Plugin/Field/FieldType/SmartDateItem.php +++ b/src/Plugin/Field/FieldType/SmartDateItem.php @@ -76,7 +76,7 @@ class SmartDateItem extends TimestampItem { ->setRequired(FALSE) // @todo: Define this via an options provider once // https://www.drupal.org/node/2329937 is completed. - ->addConstraint('AllowedValues', array_keys(system_time_zones(TRUE, FALSE))); + ->addConstraint('AllowedValues', \DateTimeZone::listIdentifiers()); return $properties; } diff --git a/src/Plugin/Field/FieldWidget/SmartDateTimezoneWidget.php b/src/Plugin/Field/FieldWidget/SmartDateTimezoneWidget.php index a21b7b67415598a56ec839681d4cb673d582da29..70ca9985e484cc15eecd5137d26f882aabd9f1e0 100644 --- a/src/Plugin/Field/FieldWidget/SmartDateTimezoneWidget.php +++ b/src/Plugin/Field/FieldWidget/SmartDateTimezoneWidget.php @@ -2,6 +2,8 @@ namespace Drupal\smart_date\Plugin\Field\FieldWidget; +use Drupal\Component\Utility\DeprecationHelper; +use Drupal\Core\Datetime\TimeZoneFormHelper; use Drupal\Core\Field\FieldItemListInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; @@ -162,7 +164,17 @@ class SmartDateTimezoneWidget extends SmartDateInlineWidget implements Container * Helper function to retrieve available timezones. */ public function getTimezones($grouped = TRUE) { - return system_time_zones(FALSE, $grouped); + if (!class_exists(DeprecationHelper::class)) { + return system_time_zones(FALSE, $grouped); + } + return DeprecationHelper::backwardsCompatibleCall( + \Drupal::VERSION, + '10.1', + static function () use ($grouped) { + return $grouped ? TimeZoneFormHelper::getOptionsListByRegion() : TimeZoneFormHelper::getOptionsList(); + }, + static fn () => system_time_zones(FALSE, $grouped) + ); } /**