user_load
modules/user/user.module, строка 140
- Версии
- 5 – 6
user_load($array = array())
Загружает объект пользователя.
Параметры
$array
Ассоциативный массив аттрибутов пользователя, таких как имя пользователя, email, и т.д. (например array('uid' => 123, 'name' => 'veronika')
).
Возвращаемое значение
Полностью загруженный объект пользователя или FALSE
, если пользователь не может быть загружен.
Код
<?php
function user_load($array = array()) {
// Dynamically compose a SQL query:
$query = array();
$params = array();
if (is_numeric($array)) {
$array = array('uid' => $array);
}
elseif (!is_array($array)) {
return FALSE;
}
foreach ($array as $key => $value) {
if ($key == 'uid' || $key == 'status') {
$query[] = "$key = %d";
$params[] = $value;
}
else if ($key == 'pass') {
$query[] = "pass = '%s'";
$params[] = md5($value);
}
else {
$query[]= "LOWER($key) = LOWER('%s')";
$params[] = $value;
}
}
$result = db_query('SELECT * FROM {users} u WHERE '. implode(' AND ', $query), $params);
if ($user = db_fetch_object($result)) {
$user = drupal_unpack($user);
$user->roles = array();
if ($user->uid) {
$user->roles[DRUPAL_AUTHENTICATED_RID] = 'authenticated user';
}
else {
$user->roles[DRUPAL_ANONYMOUS_RID] = 'anonymous user';
}
$result = db_query('SELECT r.rid, r.name FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid = %d', $user->uid);
while ($role = db_fetch_object($result)) {
$user->roles[$role->rid] = $role->name;
}
user_module_invoke('load', $array, $user);
}
else {
$user = FALSE;
}
return $user;
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии