public static function SynonymsEntitySelect::validateEntitySelect in Synonyms 2.0.x
Form element validation handler for synonyms_entity_select elements.
File
- modules/
synonyms_select/ src/ Element/ SynonymsEntitySelect.php, line 123
Class
- SynonymsEntitySelect
- Form element for synonyms-friendly entity select.
Namespace
Drupal\synonyms_select\ElementCode
public static function validateEntitySelect(array &$element, FormStateInterface $form_state, array &$complete_form) {
$value = $form_state
->getValue($element['#parents']);
if (!isset($element['#multiple']) || !$element['#multiple']) {
$value = [
$value,
];
}
$unique = [];
foreach ($value as $v) {
if (!empty($v) || $v == 0) {
if (!is_numeric($v)) {
$v = explode(self::DELIMITER, $v, 2)[0];
}
$unique[$v] = $v;
}
}
$items = [];
foreach ($unique as $v) {
$items[] = [
$element['#key_column'] => $v,
];
}
if (!isset($element['#multiple']) || !$element['#multiple']) {
$items = reset($items);
}
$form_state
->setValueForElement($element, $items);
}