public function AutocompleteTagsWidget::elementValidate in Entity reference 8
Implements Drupal\entityreference\Plugin\field\widget\DefaultAutocompleteWidget::elementValidate()
Overrides AutocompleteWidgetBase::elementValidate
File
- lib/
Drupal/ entityreference/ Plugin/ field/ widget/ AutocompleteTagsWidget.php, line 52 - Definition of Drupal\entityreference\Plugin\field\widget\AutocompleteTagsWidget.
Class
- AutocompleteTagsWidget
- Plugin implementation of the 'entityreference autocomplete-tags' widget.
Namespace
Drupal\entityreference\Plugin\field\widgetCode
public function elementValidate($element, &$form_state) {
$value = array();
// If a value was entered into the autocomplete.
if (!empty($element['#value'])) {
$entities = drupal_explode_tags($element['#value']);
$value = array();
foreach ($entities as $entity) {
// Take "label (entity id)', match the id from parenthesis.
if (preg_match("/.+\\((\\d+)\\)/", $entity, $matches)) {
$value[] = array(
'target_id' => $matches[1],
);
}
else {
// Try to get a match from the input string when the user didn't use the
// autocomplete but filled in a value manually.
$instance = field_info_instance($element['#entity_type'], $element['#field_name'], $element['#bundle']);
$handler = entityreference_get_selection_handler($field, $instance);
$value[] = array(
'target_id' => $handler
->validateAutocompleteInput($entity, $element, $form_state, $form),
);
}
}
}
form_set_value($element, $value, $form_state);
}