class PrivatemsgMessageController in Privatemsg 7
Same name and namespace in other branches
- 7.2 privatemsg.module \PrivatemsgMessageController
Private message controller, loads private messages.
Hierarchy
- class \DrupalDefaultEntityController implements DrupalEntityControllerInterface
- class \PrivatemsgMessageController
Expanded class hierarchy of PrivatemsgMessageController
1 string reference to 'PrivatemsgMessageController'
- privatemsg_entity_info in ./
privatemsg.module - Implements hook_entity_info().
File
- ./
privatemsg.module, line 3095 - Allows users to send private messages to other users.
View source
class PrivatemsgMessageController extends DrupalDefaultEntityController {
protected $account = NULL;
protected function attachLoad(&$messages, $revision_id = FALSE) {
global $user;
foreach ($messages as $message) {
$message->user = $this->account ? $this->account : $user;
// Load author of message.
if (!($message->author = user_load($message->author))) {
// If user does not exist, load anonymous user.
$message->author = user_load(0);
}
}
parent::attachLoad($messages, $revision_id);
}
protected function buildQuery($ids, $conditions = array(), $revision_id = FALSE) {
// Remove account from conditions.
if (isset($conditions['account'])) {
$this->account = $conditions['account'];
unset($conditions['account']);
}
$query = parent::buildQuery($ids, $conditions, $revision_id);
$query
->fields('pmi', array(
'is_new',
'thread_id',
));
if ($this->account) {
$query
->condition('pmi.recipient', $this->account->uid)
->condition('pmi.type', array(
'hidden',
'user',
));
}
else {
// If no account is given, at least limit the result to a single row per
// message.
$query
->distinct();
}
$query
->join('pm_index', 'pmi', "base.mid = pmi.mid");
return $query;
}
/**
* {@inheritdoc}
*/
protected function cacheGet($ids, $conditions = array()) {
// Passing the account condition, which does not exist as a property to
// parent::cacheGet() causes notices, remove it.
// @todo Investigate if this causes any undesired side effects.
if (isset($conditions['account'])) {
unset($conditions['account']);
}
return parent::cacheGet($ids, $conditions);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DrupalDefaultEntityController:: |
protected | property | Whether this entity type should use the static cache. | |
DrupalDefaultEntityController:: |
protected | property | Static cache of entities, keyed by entity ID. | |
DrupalDefaultEntityController:: |
protected | property | Array of information about the entity. | |
DrupalDefaultEntityController:: |
protected | property | Entity type for this controller instance. | |
DrupalDefaultEntityController:: |
protected | property | Additional arguments to pass to hook_TYPE_load(). | |
DrupalDefaultEntityController:: |
protected | property | Name of the entity's ID field in the entity database table. | |
DrupalDefaultEntityController:: |
protected | property | Name of entity's revision database table field, if it supports revisions. | |
DrupalDefaultEntityController:: |
protected | property | The table that stores revisions, if the entity supports revisions. | |
DrupalDefaultEntityController:: |
protected | function | Stores entities in the static entity cache. | |
DrupalDefaultEntityController:: |
protected | function | Ensures integer entity IDs are valid. | |
DrupalDefaultEntityController:: |
protected | function | Callback for array_filter that removes non-integer IDs. | |
DrupalDefaultEntityController:: |
public | function |
Implements DrupalEntityControllerInterface::load(). Overrides DrupalEntityControllerInterface:: |
|
DrupalDefaultEntityController:: |
public | function |
Implements DrupalEntityControllerInterface::resetCache(). Overrides DrupalEntityControllerInterface:: |
|
DrupalDefaultEntityController:: |
public | function | Constructor: sets basic variables. | |
PrivatemsgMessageController:: |
protected | property | ||
PrivatemsgMessageController:: |
protected | function |
Attaches data to entities upon loading. Overrides DrupalDefaultEntityController:: |
|
PrivatemsgMessageController:: |
protected | function |
Builds the query to load the entity. Overrides DrupalDefaultEntityController:: |
|
PrivatemsgMessageController:: |
protected | function |
Gets entities from the static cache. Overrides DrupalDefaultEntityController:: |