public function TimeFieldDefaultFormatter::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/ TimeFieldDefaultFormatter.php, line 65
Class
- TimeFieldDefaultFormatter
- Plugin for the 'timefield_default_formatter' field formatter.
Namespace
Drupal\timefield\Plugin\Field\FieldFormatterCode
public function viewElements(FieldItemListInterface $items, $langcode) {
$settings = $this
->getSettings();
$field_settings = $this
->getFieldSettings();
$label_hidden = $this->label == 'hidden';
foreach ($items as $delta => $item) {
$item = $items
->get($delta);
if (!empty($item->value)) {
$value = $item
->getValue('value');
$value['value'] = trim(timefield_integer_to_time($settings['display_format'], $item->value));
$value['value2'] = trim(timefield_integer_to_time($settings['display_format'], $item->value2));
$days = isset($items[$delta]->value) ? _timefield_weekly_summary_days_map($items[$delta]) : [];
$value['days'] = array_intersect_key(_timefield_weekly_summary_days(), array_filter($days));
$item
->setValue($value);
$items
->set($delta, $value);
}
}
$element = [
'#theme' => 'timefield_formatter',
'#label' => $this->fieldDefinition
->get('label'),
'#label_display' => $this->label,
'#label_hidden' => $label_hidden,
'#items' => $items,
'#settings' => $field_settings,
'#format' => 'default',
'#attributes' => new Attribute([
'class' => 'timefield',
]),
];
return $element;
}