function user_search_execute

Implements hook_search_execute().

File

drupal/core/modules/user/user.module, line 553
Enables the user registration and login system.

Code

function user_search_execute($keys = NULL, $conditions = NULL) {
  $find = array();

  // Replace wildcards with MySQL/PostgreSQL wildcards.
  $keys = preg_replace('!\\*+!', '%', $keys);
  $query = db_select('users')
    ->extend('Drupal\\Core\\Database\\Query\\PagerSelectExtender');
  $query
    ->fields('users', array(
    'uid',
  ));
  if (user_access('administer users')) {

    // Administrators can also search in the otherwise private email field.
    $query
      ->fields('users', array(
      'mail',
    ));
    $query
      ->condition(db_or()
      ->condition('name', '%' . db_like($keys) . '%', 'LIKE')
      ->condition('mail', '%' . db_like($keys) . '%', 'LIKE'));
  }
  else {
    $query
      ->condition('name', '%' . db_like($keys) . '%', 'LIKE');
  }
  $uids = $query
    ->limit(15)
    ->execute()
    ->fetchCol();
  $accounts = user_load_multiple($uids);
  $results = array();
  foreach ($accounts as $account) {
    $result = array(
      'title' => user_format_name($account),
      'link' => url('user/' . $account->uid, array(
        'absolute' => TRUE,
      )),
    );
    if (user_access('administer users')) {
      $result['title'] .= ' (' . $account->mail . ')';
    }
    $results[] = $result;
  }
  return $results;
}