Controller class for users.
This extends the DrupalDefaultEntityController class, adding required special handling for user objects.
Hierarchy
Properties
| Name | Description |
|---|---|
| DrupalDefaultEntityController::$cache | Whether this entity type should use the static cache. |
| DrupalDefaultEntityController::$entityCache | Static cache of entities. |
| DrupalDefaultEntityController::$entityInfo | Array of information about the entity. |
| DrupalDefaultEntityController::$entityType | Entity type for this controller instance. |
| DrupalDefaultEntityController::$hookLoadArguments | Additional arguments to pass to hook_TYPE_load(). |
| DrupalDefaultEntityController::$idKey | Name of the entity's ID field in the entity database table. |
| DrupalDefaultEntityController::$revisionKey | Name of entity's revision database table field, if it supports revisions. |
| DrupalDefaultEntityController::$revisionTable | The table that stores revisions, if the entity supports revisions. |
Functions & methods
| Name | Description |
|---|---|
| DrupalDefaultEntityController::buildQuery | Builds the query to load the entity. |
| DrupalDefaultEntityController::cacheGet | Gets entities from the static cache. |
| DrupalDefaultEntityController::cacheSet | Stores entities in the static entity cache. |
| DrupalDefaultEntityController::load | Implements DrupalEntityControllerInterface::load(). Overrides DrupalEntityControllerInterface::load |
| DrupalDefaultEntityController::resetCache | Implements DrupalEntityControllerInterface::resetCache(). Overrides DrupalEntityControllerInterface::resetCache |
| DrupalDefaultEntityController::__construct | Constructor: sets basic variables. Overrides DrupalEntityControllerInterface::__construct |
| UserController::attachLoad | Attaches data to entities upon loading. This will attach fields, if the entity is fieldable. It calls hook_entity_load() for modules which need to add data to all entities. It also calls hook_TYPE_load() on the loaded entities. For… Overrides DrupalDefaultEntityController::attachLoad |
File
- modules/
user/ user.module, line 296 - Enables the user registration and login system.
View source
class UserController extends DrupalDefaultEntityController {
function attachLoad(&$queried_users, $revision_id = FALSE) {
// Build an array of user picture IDs so that these can be fetched later.
$picture_fids = array();
foreach ($queried_users as $key => $record) {
$picture_fids[] = $record->picture;
$queried_users[$key]->data = unserialize($record->data);
$queried_users[$key]->roles = array();
if ($record->uid) {
$queried_users[$record->uid]->roles[DRUPAL_AUTHENTICATED_RID] = 'authenticated user';
}
else {
$queried_users[$record->uid]->roles[DRUPAL_ANONYMOUS_RID] = 'anonymous user';
}
}
// Add any additional roles from the database.
$result = db_query('SELECT r.rid, r.name, ur.uid FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid IN (:uids)', array(':uids' => array_keys($queried_users)));
foreach ($result as $record) {
$queried_users[$record->uid]->roles[$record->rid] = $record->name;
}
// Add the full file objects for user pictures if enabled.
if (!empty($picture_fids) && variable_get('user_pictures', 1) == 1) {
$pictures = file_load_multiple($picture_fids);
foreach ($queried_users as $account) {
if (!empty($account->picture) && isset($pictures[$account->picture])) {
$account->picture = $pictures[$account->picture];
}
else {
$account->picture = NULL;
}
}
}
// Call the default attachLoad() method. This will add fields and call
// hook_user_load().
parent::attachLoad($queried_users, $revision_id);
}
}