You are here

public function TimeFieldMiniCalendar::viewElements in Timefield 1.0.x

Builds a renderable array for a field value.

Parameters

\Drupal\Core\Field\FieldItemListInterface $items: The field values to be rendered.

string $langcode: The language that should be used to render the field.

Return value

array A renderable array for $items, as an array of child elements keyed by consecutive numeric indexes starting from 0.

Overrides FormatterInterface::viewElements

File

src/Plugin/Field/FieldFormatter/TimeFieldMiniCalendar.php, line 130

Class

TimeFieldMiniCalendar
Plugin for the 'timefield_mini_calendar_formatter' field formatter.

Namespace

Drupal\timefield\Plugin\Field\FieldFormatter

Code

public function viewElements(FieldItemListInterface $items, $langcode) {
  $settings = $this
    ->getSettings();
  $label_hidden = $this->label == 'hidden';
  $header = [];
  $rows = [];
  foreach ($items as $item) {
    if (!empty($item->value)) {
      $header = _timefield_weekly_summary_build_header($settings['first_day']);
      $rows = timefield_weekly_summary_build_rows($items, $header, $settings);
    }
  }
  return [
    '#theme' => 'timefield_mini_calendar',
    '#label' => $this->fieldDefinition
      ->get('label'),
    '#label_display' => $this->label,
    '#label_hidden' => $label_hidden,
    '#header' => $header,
    '#rows' => $rows,
    '#content' => [
      '#header' => $header,
      '#rows' => $rows,
      '#theme' => 'table',
    ],
  ];
}