1 EntityReferenceSelectionHandlerViews.inc | public EntityReferenceSelectionHandlerViews::validateAutocompleteInput($input, &$element, &$form_state, $form) |
Implements EntityReferenceHandler::validateAutocompleteInput().
Overrides EntityReferenceSelectionHandlerInterface::validateAutocompleteInput
File
- core/
modules/ entityreference/ plugins/ selection/ EntityReferenceSelectionHandlerViews.inc, line 174
Class
- EntityReferenceSelectionHandlerViews
- Entity handler for Views.
Code
public function validateAutocompleteInput($input, &$element, &$form_state, $form) {
$bundled_entities = $this->getReferencableEntities($input, '=', 6);
$entities = array();
foreach ($bundled_entities as $entities_list) {
$entities += $entities_list;
}
if (empty($entities)) {
// Error if there are no entities available for a required field.
form_error($element, t('No items found for %label', array('%label' => $element['#title'])));
}
elseif (count($entities) > 5) {
// Error if there are more than 5 matching entities.
form_error($element, t('Too many items found for %label. Specify the one you want by appending the id in parentheses, like "@value (@id)"', array(
'%label' => $element['#title'],
'@value' => $input,
'@id' => key($entities),
)));
}
elseif (count($entities) > 1) {
// More helpful error if there are only a few matching entities.
$multiples = array();
foreach ($entities as $id => $name) {
$multiples[] = filter_xss($name, array()) . ' (' . (int) $id . ')';
}
form_error($element, t('Multiple items found for %label: !multiple', array(
'%label' => $element['#title'],
'!multiple' => theme('item_list', array('items' => $multiples)),
)));
}
else {
// Take the one and only matching entity.
return (int) key($entities);
}
}