govcms-2.x-dev/modules/deprecated/govcms8_foundations/modules/govcms8_calendar_item/src/Plugin/Field/FieldFormatter/CalendarItemDateFormatter.php

modules/deprecated/govcms8_foundations/modules/govcms8_calendar_item/src/Plugin/Field/FieldFormatter/CalendarItemDateFormatter.php
<?php

namespace Drupal\govcms8_calendar_item\Plugin\Field\FieldFormatter;

use Drupal\Core\Field\FieldItemInterface;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Field\FormatterBase;

/**
 * Plugin implementation of the 'calendar_item_date_formatter' formatter.
 *
 * @FieldFormatter(
 *   id = "calendar_item_date_formatter",
 *   label = @Translation("Calendar Item Date"),
 *   field_types = {
 *     "daterange",
 *     "datetime"
 *   }
 * )
 */
class CalendarItemDateFormatter extends FormatterBase {

  /**
   * {@inheritdoc}
   */
  public function viewElements(FieldItemListInterface $items, $langcode) {
    $elements = [];

    foreach ($items as $delta => $item) {
      $elements[$delta] = $this->viewValue($item);
    }

    return $elements;
  }

  /**
   * Generate the output appropriate for one field item.
   *
   * @param \Drupal\Core\Field\FieldItemInterface $item
   *   One field item.
   *
   * @return array
   *   The textual output generated.
   */
  protected function viewValue(FieldItemInterface $item) {
    $field = $item->getFieldDefinition();
    if ($field->get('field_type') == 'daterange') {
      $value = $item->start_date;
    }
    else {
      $value = $item->date;
    }
    $build = [
      '#theme' => 'calendar_item_date',
      '#datetime' => $value,
      '#attached' => [
        'library' => [
          'govcms8_calendar_item/calendar_item',
        ],
      ],
    ];
    return $build;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc