Mercurial > hg > isophonics-drupal-site
annotate core/modules/datetime_range/src/DateTimeRangeTrait.php @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 4c8ae668cc8c |
children |
rev | line source |
---|---|
Chris@0 | 1 <?php |
Chris@0 | 2 |
Chris@0 | 3 namespace Drupal\datetime_range; |
Chris@0 | 4 |
Chris@0 | 5 use Drupal\Core\Field\FieldItemListInterface; |
Chris@0 | 6 |
Chris@0 | 7 /** |
Chris@0 | 8 * Provides friendly methods for datetime range. |
Chris@0 | 9 */ |
Chris@0 | 10 trait DateTimeRangeTrait { |
Chris@0 | 11 |
Chris@0 | 12 /** |
Chris@0 | 13 * {@inheritdoc} |
Chris@0 | 14 */ |
Chris@0 | 15 public function viewElements(FieldItemListInterface $items, $langcode) { |
Chris@0 | 16 $elements = []; |
Chris@0 | 17 $separator = $this->getSetting('separator'); |
Chris@0 | 18 |
Chris@0 | 19 foreach ($items as $delta => $item) { |
Chris@0 | 20 if (!empty($item->start_date) && !empty($item->end_date)) { |
Chris@0 | 21 /** @var \Drupal\Core\Datetime\DrupalDateTime $start_date */ |
Chris@0 | 22 $start_date = $item->start_date; |
Chris@0 | 23 /** @var \Drupal\Core\Datetime\DrupalDateTime $end_date */ |
Chris@0 | 24 $end_date = $item->end_date; |
Chris@0 | 25 |
Chris@0 | 26 if ($start_date->getTimestamp() !== $end_date->getTimestamp()) { |
Chris@0 | 27 $elements[$delta] = [ |
Chris@0 | 28 'start_date' => $this->buildDateWithIsoAttribute($start_date), |
Chris@0 | 29 'separator' => ['#plain_text' => ' ' . $separator . ' '], |
Chris@0 | 30 'end_date' => $this->buildDateWithIsoAttribute($end_date), |
Chris@0 | 31 ]; |
Chris@0 | 32 } |
Chris@0 | 33 else { |
Chris@0 | 34 $elements[$delta] = $this->buildDateWithIsoAttribute($start_date); |
Chris@0 | 35 |
Chris@0 | 36 if (!empty($item->_attributes)) { |
Chris@0 | 37 $elements[$delta]['#attributes'] += $item->_attributes; |
Chris@0 | 38 // Unset field item attributes since they have been included in the |
Chris@0 | 39 // formatter output and should not be rendered in the field template. |
Chris@0 | 40 unset($item->_attributes); |
Chris@0 | 41 } |
Chris@0 | 42 } |
Chris@0 | 43 } |
Chris@0 | 44 } |
Chris@0 | 45 |
Chris@0 | 46 return $elements; |
Chris@0 | 47 } |
Chris@0 | 48 |
Chris@0 | 49 } |