OfficeHoursListWidget.php in Office Hours 8
File
src/Plugin/Field/FieldWidget/OfficeHoursListWidget.php
View source
<?php
namespace Drupal\office_hours\Plugin\Field\FieldWidget;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\office_hours\OfficeHoursDateHelper;
class OfficeHoursListWidget extends OfficeHoursWidgetBase {
public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
$element = parent::formElement($items, $delta, $element, $form, $form_state);
$item = $items[$delta];
$default_value = [
'day' => '',
'day_delta' => 0,
];
$default_value = isset($item) ? $item
->getValue() + $default_value : $default_value;
$day = isset($default_value['day']) ? $default_value['day'] : '';
if ($day > 6) {
return [];
}
$element['value'] = [
'#type' => 'office_hours_list',
'#default_value' => $default_value,
'#day' => $day,
'#daydelta' => 0,
'#theme_wrappers' => [
'fieldset',
],
'#attributes' => [
'class' => [
'container-inline',
],
],
] + $element['value'];
return $element;
}
public function massageFormValues(array $values, array $form, FormStateInterface $form_state) {
foreach ($values as &$item) {
$item = $item['value'];
}
$values = parent::massageFormValues($values, $form, $form_state);
return $values;
}
}