diff --git a/core/modules/datetime_range/src/DateTimeRangeTrait.php b/core/modules/datetime_range/src/DateTimeRangeTrait.php deleted file mode 100644 index 5a34f2c..0000000 --- a/core/modules/datetime_range/src/DateTimeRangeTrait.php +++ /dev/null @@ -1,78 +0,0 @@ -getFieldSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE) { - // A date without time will pick up the current time, use the default. - datetime_date_default_time($date); - } - $this->setTimeZone($date); - - $build = [ - '#plain_text' => $this->formatDate($date), - '#cache' => [ - 'contexts' => [ - 'timezone', - ], - ], - ]; - - return $build; - } - - /** - * Creates a render array from a date object with ISO date attribute. - * - * @param \Drupal\Core\Datetime\DrupalDateTime $date - * A date object. - * - * @return array - * A render array. - */ - protected function buildDateWithIsoAttribute(DrupalDateTime $date) { - if ($this->getFieldSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE) { - // A date without time will pick up the current time, use the default. - datetime_date_default_time($date); - } - - // Create the ISO date in Universal Time. - $iso_date = $date->format("Y-m-d\TH:i:s") . 'Z'; - - $this->setTimeZone($date); - - $build = [ - '#theme' => 'time', - '#text' => $this->formatDate($date), - '#html' => FALSE, - '#attributes' => [ - 'datetime' => $iso_date, - ], - '#cache' => [ - 'contexts' => [ - 'timezone', - ], - ], - ]; - - return $build; - } - -} diff --git a/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeCustomFormatter.php b/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeCustomFormatter.php index a23de51..a1d1683 100644 --- a/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeCustomFormatter.php +++ b/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeCustomFormatter.php @@ -3,9 +3,7 @@ namespace Drupal\datetime_range\Plugin\Field\FieldFormatter; use Drupal\Core\Field\FieldItemListInterface; -use Drupal\Core\Form\FormStateInterface; use Drupal\datetime\Plugin\Field\FieldFormatter\DateTimeCustomFormatter; -use Drupal\datetime_range\DateTimeRangeTrait; /** * Plugin implementation of the 'Custom' formatter for 'daterange' fields. @@ -23,16 +21,7 @@ */ class DateRangeCustomFormatter extends DateTimeCustomFormatter { - use DateTimeRangeTrait; - - /** - * {@inheritdoc} - */ - public static function defaultSettings() { - return [ - 'separator' => '-', - ] + parent::defaultSettings(); - } + use DateRangeFormatterTrait; /** * {@inheritdoc} @@ -64,33 +53,4 @@ public function viewElements(FieldItemListInterface $items, $langcode) { return $elements; } - /** - * {@inheritdoc} - */ - public function settingsForm(array $form, FormStateInterface $form_state) { - $form = parent::settingsForm($form, $form_state); - - $form['separator'] = [ - '#type' => 'textfield', - '#title' => $this->t('Date separator'), - '#description' => $this->t('The string to separate the start and end dates'), - '#default_value' => $this->getSetting('separator'), - ]; - - return $form; - } - - /** - * {@inheritdoc} - */ - public function settingsSummary() { - $summary = parent::settingsSummary(); - - if ($separator = $this->getSetting('separator')) { - $summary[] = $this->t('Separator: %separator', ['%separator' => $separator]); - } - - return $summary; - } - } diff --git a/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeDefaultFormatter.php b/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeDefaultFormatter.php index 7ac4330..a0b8369 100644 --- a/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeDefaultFormatter.php +++ b/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeDefaultFormatter.php @@ -3,9 +3,7 @@ namespace Drupal\datetime_range\Plugin\Field\FieldFormatter; use Drupal\Core\Field\FieldItemListInterface; -use Drupal\Core\Form\FormStateInterface; use Drupal\datetime\Plugin\Field\FieldFormatter\DateTimeDefaultFormatter; -use Drupal\datetime_range\DateTimeRangeTrait; /** * Plugin implementation of the 'Default' formatter for 'daterange' fields. @@ -24,16 +22,7 @@ */ class DateRangeDefaultFormatter extends DateTimeDefaultFormatter { - use DateTimeRangeTrait; - - /** - * {@inheritdoc} - */ - public static function defaultSettings() { - return [ - 'separator' => '-', - ] + parent::defaultSettings(); - } + use DateRangeFormatterTrait; /** * {@inheritdoc} @@ -72,33 +61,4 @@ public function viewElements(FieldItemListInterface $items, $langcode) { return $elements; } - /** - * {@inheritdoc} - */ - public function settingsForm(array $form, FormStateInterface $form_state) { - $form = parent::settingsForm($form, $form_state); - - $form['separator'] = [ - '#type' => 'textfield', - '#title' => $this->t('Date separator'), - '#description' => $this->t('The string to separate the start and end dates'), - '#default_value' => $this->getSetting('separator'), - ]; - - return $form; - } - - /** - * {@inheritdoc} - */ - public function settingsSummary() { - $summary = parent::settingsSummary(); - - if ($separator = $this->getSetting('separator')) { - $summary[] = $this->t('Separator: %separator', ['%separator' => $separator]); - } - - return $summary; - } - } diff --git a/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeFormatterTrait.php b/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeFormatterTrait.php new file mode 100644 index 0000000..43a2ba0 --- /dev/null +++ b/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeFormatterTrait.php @@ -0,0 +1,117 @@ + '-', + ] + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ + public function settingsForm(array $form, FormStateInterface $form_state) { + $form = parent::settingsForm($form, $form_state); + + $form['separator'] = [ + '#type' => 'textfield', + '#title' => $this->t('Date separator'), + '#description' => $this->t('The string to separate the start and end dates'), + '#default_value' => $this->getSetting('separator'), + ]; + + return $form; + } + + /** + * {@inheritdoc} + */ + public function settingsSummary() { + $summary = parent::settingsSummary(); + + if ($separator = $this->getSetting('separator')) { + $summary[] = $this->t('Separator: %separator', ['%separator' => $separator]); + } + + return $summary; + } + + /** + * Creates a render array from a date object. + * + * @param \Drupal\Core\Datetime\DrupalDateTime $date + * A date object. + * + * @return array + * A render array. + */ + protected function buildDate(DrupalDateTime $date) { + if ($this->getFieldSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE) { + // A date without time will pick up the current time, use the default. + datetime_date_default_time($date); + } + $this->setTimeZone($date); + + $build = [ + '#plain_text' => $this->formatDate($date), + '#cache' => [ + 'contexts' => [ + 'timezone', + ], + ], + ]; + + return $build; + } + + /** + * Creates a render array from a date object with ISO date attribute. + * + * @param \Drupal\Core\Datetime\DrupalDateTime $date + * A date object. + * + * @return array + * A render array. + */ + protected function buildDateWithIsoAttribute(DrupalDateTime $date) { + if ($this->getFieldSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE) { + // A date without time will pick up the current time, use the default. + datetime_date_default_time($date); + } + + // Create the ISO date in Universal Time. + $iso_date = $date->format("Y-m-d\TH:i:s") . 'Z'; + + $this->setTimeZone($date); + + $build = [ + '#theme' => 'time', + '#text' => $this->formatDate($date), + '#html' => FALSE, + '#attributes' => [ + 'datetime' => $iso_date, + ], + '#cache' => [ + 'contexts' => [ + 'timezone', + ], + ], + ]; + + return $build; + } + +} diff --git a/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangePlainFormatter.php b/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangePlainFormatter.php index 4842e1f..148c82d 100644 --- a/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangePlainFormatter.php +++ b/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangePlainFormatter.php @@ -3,9 +3,7 @@ namespace Drupal\datetime_range\Plugin\Field\FieldFormatter; use Drupal\Core\Field\FieldItemListInterface; -use Drupal\Core\Form\FormStateInterface; use Drupal\datetime\Plugin\Field\FieldFormatter\DateTimePlainFormatter; -use Drupal\datetime_range\DateTimeRangeTrait; /** * Plugin implementation of the 'Plain' formatter for 'daterange' fields. @@ -23,16 +21,7 @@ */ class DateRangePlainFormatter extends DateTimePlainFormatter { - use DateTimeRangeTrait; - - /** - * {@inheritdoc} - */ - public static function defaultSettings() { - return [ - 'separator' => '-', - ] + parent::defaultSettings(); - } + use DateRangeFormatterTrait; /** * {@inheritdoc} @@ -64,33 +53,4 @@ public function viewElements(FieldItemListInterface $items, $langcode) { return $elements; } - /** - * {@inheritdoc} - */ - public function settingsForm(array $form, FormStateInterface $form_state) { - $form = parent::settingsForm($form, $form_state); - - $form['separator'] = [ - '#type' => 'textfield', - '#title' => $this->t('Date separator'), - '#description' => $this->t('The string to separate the start and end dates'), - '#default_value' => $this->getSetting('separator'), - ]; - - return $form; - } - - /** - * {@inheritdoc} - */ - public function settingsSummary() { - $summary = parent::settingsSummary(); - - if ($separator = $this->getSetting('separator')) { - $summary[] = $this->t('Separator: %separator', ['%separator' => $separator]); - } - - return $summary; - } - }