function user_search

6.x user.module user_search($op = 'search', $keys = NULL, $skip_access_check = FALSE)

Implementation of hook_search().

File

drupal-6.x/modules/user/user.module, line 598
Enables the user registration and login system.

Code

function user_search($op = 'search', $keys = NULL, $skip_access_check = FALSE) {
  switch ($op) {
    case 'name':
      if ($skip_access_check || user_access('access user profiles')) {
        return t('Users');
      }
    case 'search':
      if (user_access('access user profiles')) {
        $find = array();
        // Replace wildcards with MySQL/PostgreSQL wildcards.
        $keys = preg_replace('!\*+!', '%', $keys);
        if (user_access('administer users')) {
          // Administrators can also search in the otherwise private email
          // field, and they don't need to be restricted to only active users.
          $result = pager_query("SELECT name, uid, mail FROM {users} WHERE LOWER(name) LIKE LOWER('%%%s%%') OR LOWER(mail) LIKE LOWER('%%%s%%')", 15, 0, NULL, $keys, $keys);
          while ($account = db_fetch_object($result)) {
            $find[] = array('title' => $account->name . ' (' . $account->mail . ')', 'link' => url('user/' . $account->uid, array('absolute' => TRUE)));
          }
        }
        else {
          // Regular users can only search via user names, and we do not show
          // them blocked accounts.
          $result = pager_query("SELECT name, uid FROM {users} WHERE status = 1 AND LOWER(name) LIKE LOWER('%%%s%%')", 15, 0, NULL, $keys);
          while ($account = db_fetch_object($result)) {
            $find[] = array('title' => $account->name, 'link' => url('user/' . $account->uid, array('absolute' => TRUE)));
          }
        }
        return $find;
      }
  }
}