From 2042981e601aa44a0ad46b0d6535f95e9670625f Mon Sep 17 00:00:00 2001 From: Martin Anderson-Clutz <46883-mandclu@users.noreply.drupalcode.org> Date: Sat, 23 Mar 2024 16:52:18 +0000 Subject: [PATCH] Issue #3374428: system_time_zones() is deprecated in drupal:10.1.0 --- src/Plugin/Field/FieldType/SmartDateItem.php | 2 +- .../Field/FieldWidget/SmartDateTimezoneWidget.php | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Plugin/Field/FieldType/SmartDateItem.php b/src/Plugin/Field/FieldType/SmartDateItem.php index 171a3d12..96a213e2 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 a21b7b67..70ca9985 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) + ); } /** -- GitLab