isMultiValued() ? 'admin/views/ajax/autocomplete/user' : 'user/autocomplete'; $form['value']['#autocomplete_path'] = $path; } /** * {@inheritdoc} */ protected function ids_to_strings(array $ids) { $names = array(); $args[':uids'] = array_filter($ids); if ($args[':uids']) { $result = db_query('SELECT uid, name FROM {users} u WHERE uid IN (:uids)', $args); $result = $result->fetchAllKeyed(); } foreach ($ids as $uid) { if (!$uid) { $names[] = variable_get('anonymous', t('Anonymous')); } elseif (isset($result[$uid])) { $names[] = $result[$uid]; } } return implode(', ', $names); } /** * {@inheritdoc} */ protected function validate_entity_strings(array &$form, array $values) { $uids = array(); $missing = array(); foreach ($values as $value) { if (drupal_strtolower($value) === drupal_strtolower(variable_get('anonymous', t('Anonymous')))) { $uids[] = 0; } else { $missing[strtolower($value)] = $value; } } if (!$missing) { return $uids; } $result = db_query("SELECT * FROM {users} WHERE name IN (:names)", array(':names' => array_values($missing))); foreach ($result as $account) { unset($missing[strtolower($account->name)]); $uids[] = $account->uid; } if ($missing) { form_error($form, format_plural(count($missing), 'Unable to find user: @users', 'Unable to find users: @users', array('@users' => implode(', ', $missing)))); } return $uids; } }