diff --git a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateRangeCustomFormatter.php b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateRangeCustomFormatter.php index 2be820b..aa31a48 100644 --- a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateRangeCustomFormatter.php +++ b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateRangeCustomFormatter.php @@ -48,14 +48,13 @@ public function viewElements(FieldItemListInterface $items, $langcode) { if ($start_date->format('U') !== $end_date->format('U')) { $elements[$delta] = [ - $this->buildDate($start_date), - ['#plain_text' => ' ' . $separator . ' '], - $this->buildDate($end_date), - $this->defaultCacheContext(), + 'start_date' => $this->buildDate($start_date), + 'separator' => ['#plain_text' => ' ' . $separator . ' '], + 'end_date' => $this->buildDate($end_date), ]; } else { - $elements[$delta] = $this->buildDate($start_date) + $this->defaultCacheContext(); + $elements[$delta] = $this->buildDate($start_date); } } } diff --git a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateRangeDefaultFormatter.php b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateRangeDefaultFormatter.php index 2655315..d798927 100644 --- a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateRangeDefaultFormatter.php +++ b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateRangeDefaultFormatter.php @@ -49,14 +49,13 @@ public function viewElements(FieldItemListInterface $items, $langcode) { if ($start_date->format('U') !== $end_date->format('U')) { $elements[$delta] = [ - $this->buildDate($start_date), - ['#plain_text' => ' ' . $separator . ' '], - $this->buildDate($end_date), - $this->defaultCacheContext(), + 'start_date' => $this->buildDate($start_date), + 'separator' => ['#plain_text' => ' ' . $separator . ' '], + 'end_date' => $this->buildDate($end_date), ]; } else { - $elements[$delta] = $this->buildDate($start_date) + $this->defaultCacheContext(); + $elements[$delta] = $this->buildDate($start_date); } if (!empty($item->_attributes)) { diff --git a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateRangePlainFormatter.php b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateRangePlainFormatter.php index e110c4d..622135c 100644 --- a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateRangePlainFormatter.php +++ b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateRangePlainFormatter.php @@ -47,14 +47,13 @@ public function viewElements(FieldItemListInterface $items, $langcode) { if ($start_date->format('U') !== $end_date->format('U')) { $elements[$delta] = [ - $this->buildDate($start_date), - ['#plain_text' => ' ' . $separator . ' '], - $this->buildDate($end_date), - $this->defaultCacheContext(), + 'start_date' => $this->buildDate($start_date), + 'separator' => ['#plain_text' => ' ' . $separator . ' '], + 'end_date' => $this->buildDate($end_date), ]; } else { - $elements[$delta] = $this->buildDate($start_date) + $this->defaultCacheContext(); + $elements[$delta] = $this->buildDate($start_date); } } } diff --git a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeCustomFormatter.php b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeCustomFormatter.php index f68bbe3..97141a3 100644 --- a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeCustomFormatter.php +++ b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeCustomFormatter.php @@ -38,7 +38,7 @@ public function viewElements(FieldItemListInterface $items, $langcode) { foreach ($items as $delta => $item) { if (!empty($item->date)) { /** @var \Drupal\Core\Datetime\DrupalDateTime $date */ - $elements[$delta] = $this->buildDate($item->date) + $this->defaultCacheContext(); + $elements[$delta] = $this->buildDate($item->date); } } @@ -66,7 +66,7 @@ protected function buildDate($date) { $build = [ '#plain_text' => $this->formatDate($date), - ]; + ] + $this->defaultCacheContext(); return $build; } diff --git a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php index 0d3d2e8..a9b1698 100644 --- a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php +++ b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php @@ -39,7 +39,7 @@ public function viewElements(FieldItemListInterface $items, $langcode) { if (!empty($item->date)) { /** @var \Drupal\Core\Datetime\DrupalDateTime $date */ // Display the date using theme datetime. - $elements[$delta] = $this->buildDate($item->date) + $this->defaultCacheContext(); + $elements[$delta] = $this->buildDate($item->date); if (!empty($item->_attributes)) { $elements[$delta]['#attributes'] += $item->_attributes; @@ -84,7 +84,7 @@ protected function buildDate($date) { '#attributes' => [ 'datetime' => $iso_date, ], - ]; + ] + $this->defaultCacheContext(); return $build; } diff --git a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeFormatterBase.php b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeFormatterBase.php index 2546969..024eb40 100644 --- a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeFormatterBase.php +++ b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeFormatterBase.php @@ -131,20 +131,6 @@ public function settingsSummary() { /** * Creates a render array from a data object. * - * Note: the caller is responsible for setting the proper cache context, which - * is typically - * @code - * [ - * '#cache' => [ - * 'contexts' => [ - * 'timezone', - * ], - * ] - * ] - * @endcode - * This is to allow this method to be used multiple times to create a render - * array, without creating redundant cache contexts for each element. - * * @param \Drupal\Core\Datetime\DrupalDateTime $date * A date object. * diff --git a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php index 0ee0da7..1a7bd4d 100644 --- a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php +++ b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php @@ -27,7 +27,7 @@ public function viewElements(FieldItemListInterface $items, $langcode) { foreach ($items as $delta => $item) { if (!empty($item->date)) { /** @var \Drupal\Core\Datetime\DrupalDateTime $date */ - $elements[$delta] = $this->buildDate($item->date) + $this->defaultCacheContext(); + $elements[$delta] = $this->buildDate($item->date); } } @@ -55,7 +55,7 @@ protected function buildDate($date) { $build = [ '#plain_text' => $this->formatDate($date), - ]; + ] + $this->defaultCacheContext(); return $build; }