IdTagWidget.php in farmOS 2.x
File
modules/core/id_tag/src/Plugin/Field/FieldWidget/IdTagWidget.php
View source
<?php
namespace Drupal\farm_id_tag\Plugin\Field\FieldWidget;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Field\WidgetBase;
use Drupal\Core\Form\FormStateInterface;
class IdTagWidget extends WidgetBase {
public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
$element['#type'] = 'fieldset';
$element['id'] = [
'#type' => 'textfield',
'#title' => $this
->t('Tag ID'),
'#default_value' => isset($items[$delta]->id) ? $items[$delta]->id : NULL,
];
$tag_type = isset($items[$delta]->type) ? $items[$delta]->type : NULL;
$bundle = $form_state
->getStorage()['form_display']
->get('bundle');
$tag_types = farm_id_tag_type_allowed_values($bundle);
$element['type'] = [
'#type' => 'select',
'#title' => $this
->t('Tag type'),
'#options' => [
NULL => '',
] + $tag_types,
'#default_value' => $tag_type,
];
if (!empty($tag_type) && !array_key_exists($tag_type, $tag_types)) {
$element['type']['#type'] = 'textfield';
unset($element['type']['#options']);
}
$element['location'] = [
'#type' => 'textfield',
'#title' => $this
->t('Tag location'),
'#default_value' => isset($items[$delta]->location) ? $items[$delta]->location : NULL,
];
return $element;
}
}