Commit a1bbc677 authored by Jaime Schmidt's avatar Jaime Schmidt Committed by SUDISHTH KUMAR
Browse files

Issue #2961280 by jaimekristene, netsliver, pameeela, john.money, peterhebert,...

Issue #2961280 by jaimekristene, netsliver, pameeela, john.money, peterhebert, Quentin Massez, paul_serval: Compatibility with optional_end_date
parent e153989e
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -47,9 +47,13 @@ class DateRangeFormatterRangeFormatter extends DateTimeCustomFormatter {
    $elements = [];

    foreach ($items as $delta => $item) {
      if (!empty($item->start_date) && !empty($item->end_date)) {
      // To make this module compatible with optional_end_date
      // Deal with start_date and end date separately.
      if (!empty($item->start_date)) {
        /** @var \Drupal\Core\Datetime\DrupalDateTime $start_date */
        $start_date = $item->start_date->getTimestamp();
        // Process optional end date.
        if (!empty($item->end_date)) {
          /** @var \Drupal\Core\Datetime\DrupalDateTime $end_date */
          $end_date = $item->end_date->getTimestamp();
          if ($start_date !== $end_date) {
@@ -63,7 +67,6 @@ class DateRangeFormatterRangeFormatter extends DateTimeCustomFormatter {
            if (date('d.m.Y', $start_date) === date('d.m.Y', $end_date)) {
              $format = $this->getSetting('one_day');
            }

            $date_str = \Drupal::service('date.formatter')->format($start_date, 'custom', preg_replace('/\{([a-zA-Z])\}/', '{\\\$1}', t($format)));
            $matches = array();
            if (preg_match_all('/\{([a-zA-Z])\}/', $date_str, $matches)) {
@@ -72,10 +75,12 @@ class DateRangeFormatterRangeFormatter extends DateTimeCustomFormatter {
              }
            }
            $elements[$delta] = ['#markup' => '<span class="date-display-range">' . $date_str . '</span>',];

          }
        else {
          $elements[$delta] = ['#markup' => \Drupal::service('date.formatter')->format($start_date, 'custom', t($this->getSetting('one_day')))];
        }
        if (!array_key_exists($delta, $elements)) {
          // No end date provided or end date equals start date use single formatting.
          $single_format = $this->getSetting('single');
          $elements[$delta] = ['#markup' => \Drupal::service('date.formatter')->format($start_date, 'custom', t($single_format))];
        }
      }
    }