class PrivateMessageThread in Private Message 8
Same name and namespace in other branches
- 8.2 src/Entity/PrivateMessageThread.php \Drupal\private_message\Entity\PrivateMessageThread
Defines the Private Message Thread entity.
Plugin annotation
@ContentEntityType(
id = "private_message_thread",
label = @Translation("Private Message Thread"),
handlers = {
"view_builder" = "Drupal\private_message\Entity\Builder\PrivateMessageThreadViewBuilder",
"views_data" = "Drupal\views\EntityViewsData",
"access" = "Drupal\private_message\Entity\Access\PrivateMessageThreadAccessControlHandler",
"form" = {
"delete" = "Drupal\private_message\Form\PrivateMessageThreadDeleteForm",
},
},
base_table = "private_message_threads",
admin_permission = "administer private messages",
fieldable = TRUE,
entity_keys = {
"id" = "id",
"uuid" = "uuid"
},
links = {
"canonical" = "/private_messages/{private_message_thread}",
"delete-form" = "/private_messagethread/{private_message_thread}/delete",
},
field_ui_base_route = "private_message.private_message_thread_settings",
)
Hierarchy
- class \Drupal\Core\Entity\EntityBase implements EntityInterface uses RefinableCacheableDependencyTrait, DependencySerializationTrait
- class \Drupal\Core\Entity\ContentEntityBase implements \Drupal\Core\Entity\IteratorAggregate, ContentEntityInterface, TranslationStatusInterface uses EntityChangesDetectionTrait, SynchronizableEntityTrait
- class \Drupal\private_message\Entity\PrivateMessageThread implements PrivateMessageThreadInterface
- class \Drupal\Core\Entity\ContentEntityBase implements \Drupal\Core\Entity\IteratorAggregate, ContentEntityInterface, TranslationStatusInterface uses EntityChangesDetectionTrait, SynchronizableEntityTrait
Expanded class hierarchy of PrivateMessageThread
2 files declare their use of PrivateMessageThread
- AjaxController.php in src/
Controller/ AjaxController.php - PrivateMessageForm.php in src/
Form/ PrivateMessageForm.php
File
- src/
Entity/ PrivateMessageThread.php, line 40
Namespace
Drupal\private_message\EntityView source
class PrivateMessageThread extends ContentEntityBase implements PrivateMessageThreadInterface {
/**
* {@inheritdoc}
*/
public function addMember(AccountInterface $account) {
$this
->get('members')
->appendItem($account
->id());
$this
->addLastAccessTime($account);
$this
->addLastDeleteTime($account);
return $this;
}
/**
* {@inheritdoc}
*/
public function addMemberById($id) {
$this
->get('members')
->appendItem($id);
return $this;
}
/**
* {@inheritdoc}
*/
public function getMembers() {
return $this
->get('members')
->referencedEntities();
}
/**
* {@inheritdoc}
*/
public function isMember($id) {
$members = $this
->getMembers();
foreach ($members as $member) {
if ($member
->id() == $id) {
return TRUE;
}
}
return FALSE;
}
/**
* {@inheritdoc}
*/
public function addMessage(PrivateMessageInterface $privateMessage) {
$this
->get('private_messages')
->appendItem($privateMessage
->id());
return $this;
}
/**
* {@inheritdoc}
*/
public function addMessageById($id) {
$this
->get('private_messages')
->appendItem($id);
return $this;
}
/**
* {@inheritdoc}
*/
public function getMessages() {
return $this
->get('private_messages')
->referencedEntities();
}
/**
* {@inheritdoc}
*/
public function filterNewestMessages() {
$messages = $this
->getMessages();
if (count($messages) > \Drupal::config('private_message_thread.settings')
->get('message_count')) {
$list = $this
->get('private_messages');
$filtered_messages = array_slice($messages, -1 * \Drupal::config('private_message_thread.settings')
->get('message_count'));
$first_message = array_shift($filtered_messages);
$first_key = $first_message
->id();
foreach ($list
->referencedEntities() as $list_item) {
if ($list_item
->id() < $first_key) {
$list
->removeItem(0);
}
else {
break;
}
}
}
}
/**
* {@inheritdoc}
*/
public function getNewestMessageCreationTimestamp() {
$messages = $this
->getMessages();
$last_timestamp = 0;
foreach ($messages as $message) {
$creation_date = $message
->get('created')->value;
$last_timestamp = $creation_date > $last_timestamp ? $creation_date : $last_timestamp;
}
return $last_timestamp;
}
/**
* {@inheritdoc}
*/
public function addLastAccessTime(AccountInterface $account) {
$last_access_time = PrivateMessageThreadAccessTime::create([
'owner' => $account
->id(),
'access_time' => \Drupal::time()
->getRequestTime(),
]);
$this
->get('last_access_time')
->appendItem($last_access_time);
}
/**
* {@inheritdoc}
*/
public function getLastAccessTime(AccountInterface $account) {
$private_message_last_access = FALSE;
foreach ($this
->get('last_access_time') as $last_access_time) {
if ($last_access_time->entity
->getOwnerId() == $account
->id()) {
$private_message_last_access = $last_access_time;
break;
}
}
return $private_message_last_access;
}
/**
* {@inheritdoc}
*/
public function getLastAccessTimes() {
return $this
->get('last_access_time')
->referencedEntities();
}
/**
* {@inheritdoc}
*/
public function getLastAccessTimestamp(AccountInterface $account) {
$last_access = $this
->getLastAccessTime($account);
return $last_access ? $last_access->entity
->get('access_time')->value : FALSE;
}
/**
* {@inheritdoc}
*/
public function updateLastAccessTime(AccountInterface $account) {
$private_message_access_time = $this
->getLastAccessTime($account);
if ($private_message_access_time) {
$private_message_access_time->entity
->setAccessTime(\Drupal::time()
->getRequestTime())
->save();
}
else {
$this
->addLastAccessTime($account);
}
return $this;
}
/**
* {@inheritdoc}
*/
public function addLastDeleteTime(AccountInterface $account) {
$last_delete_time = PrivateMessageThreadDeleteTime::create([
'owner' => $account
->id(),
'delete_time' => 0,
]);
$this
->get('last_delete_time')
->appendItem($last_delete_time);
}
/**
* {@inheritdoc}
*/
public function getLastDeleteTimestamp(AccountInterface $account) {
$private_message_delete_time = FALSE;
foreach ($this
->get('last_delete_time') as $last_delete_time) {
if ($last_delete_time->entity
->getOwnerId() == $account
->id()) {
$private_message_delete_time = $last_delete_time->entity
->get('delete_time')->value;
break;
}
}
return $private_message_delete_time;
}
/**
* {@inheritdoc}
*/
public function getLastDeleteTime(AccountInterface $account) {
foreach ($this
->get('last_delete_time') as $last_delete_time) {
if ($last_delete_time->entity
->getOwnerId() == $account
->id()) {
return $last_delete_time->entity;
}
}
return FALSE;
}
/**
* {@inheritdoc}
*/
public function getLastDeleteTimes() {
return $this
->get('last_delete_time')
->referencedEntities();
}
/**
* {@inheritdoc}
*/
public function updateLastDeleteTime(AccountInterface $account) {
$private_message_delete_time = $this
->getLastDeleteTime($account);
if ($private_message_delete_time) {
$private_message_delete_time
->setDeleteTime(\Drupal::time()
->getRequestTime());
$private_message_delete_time
->save();
}
else {
$this
->addLastDeleteTime($account);
}
}
/**
* {@inheritdoc}
*/
public function save() {
parent::save();
$this
->clearCacheTags();
}
/**
* {@inheritdoc}
*/
public function delete(AccountInterface $account = NULL) {
if ($account) {
$this
->updateLastDeleteTime($account);
$last_creation_timestamp = $this
->getNewestMessageCreationTimestamp();
$delete = TRUE;
$last_delete_times = $this
->getLastDeleteTimes();
foreach ($last_delete_times as $last_delete_time) {
if ($last_delete_time
->getDeleteTime() < $last_creation_timestamp) {
$delete = FALSE;
break;
}
}
if ($delete) {
$this
->deleteReferencedEntities();
parent::delete();
}
}
else {
$this
->deleteReferencedEntities();
parent::delete();
}
$this
->clearCacheTags();
}
/**
* {@inheritdoc}
*/
public function filterUserDeletedMessages(AccountInterface $account) {
$last_delete_timestamp = $this
->getLastDeleteTimestamp($account);
$messages = $this
->getMessages();
$start_index = FALSE;
foreach ($messages as $index => $message) {
if ($message
->getCreatedTime() > $last_delete_timestamp) {
$start_index = $index;
break;
}
}
if ($start_index !== FALSE) {
return array_slice($messages, $start_index);
}
return [];
}
/**
* {@inheritdoc}
*/
public function getUpdatedTime() {
return $this
->get('updated')->value;
}
/**
* {@inheritdoc}
*/
public function clearCacheTags() {
$tags = [];
foreach ($this
->getMembers() as $member) {
$tags[] = 'private_message_inbox_block:uid:' . $member
->id();
$tags[] = 'private_message_notification_block:uid:' . $member
->id();
}
Cache::invalidateTags($tags);
}
/**
* {@inheritdoc}
*/
public static function baseFieldDefinitions(EntityTypeInterface $entityType) {
$fields = parent::baseFieldDefinitions($entityType);
$fields['id']
->setLabel(t('Private message thread ID'))
->setDescription(t('The private message thread ID.'));
$fields['uuid']
->setDescription(t('The custom private message thread UUID.'));
$fields['updated'] = BaseFieldDefinition::create('changed')
->setLabel(t('Updated'))
->setDescription(t('The most recent time at which the thread was updated'));
// Member(s) of the private message thread.
// Entity reference field, holds the reference to user objects.
$fields['members'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Member(s)'))
->setDescription(t('The member(s) of the private message thread'))
->setSetting('target_type', 'user')
->setSetting('handler', 'default')
->setCardinality(FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED)
->addConstraint('private_message_thread_member')
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'entity_reference_label',
'weight' => -3,
])
->setDisplayOptions('form', [
'type' => 'entity_reference_autocomplete',
'settings' => [
'match_operator' => 'CONTAINS',
'size' => 60,
'autocomplete_type' => 'tags',
'placeholder' => '',
],
'weight' => -3,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
// Private messages in this thread.
// Entity reference field, holds the reference to user objects.
$fields['private_messages'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Messages'))
->setDescription(t('The private messages that belong to this thread'))
->setSetting('target_type', 'private_message')
->setSetting('handler', 'default')
->setCardinality(FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED)
->setDisplayOptions('view', [
'label' => 'hidden',
'type' => 'entity_reference_entity_view',
])
->setDisplayConfigurable('view', TRUE);
// Last access
// Timestamps for each member, representing the last time at which they
// accessed the private message thread.
$fields['last_access_time'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Last Access Times'))
->setDescription(t('Timestamps at which members of this private message thread last accessed the thread'))
->setSetting('target_type', 'pm_thread_access_time')
->setSetting('handler', 'default')
->setCardinality(FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED);
// Last delete
// Timestamps for each member, representing the last time at which they
// deleted the private message thread. Note that the thread is only deleted
// from the database if/when all members have deleted the thread. Until that
// point, this value is used to determine the first message to be shown to a
// user if they have deleted the thread, then re-entered a conversation with
// the other members of the thread.
$fields['last_delete_time'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Last Delete Times'))
->setDescription(t('Timestamps at which members of this private message thread last deleted the thread'))
->setSetting('target_type', 'pm_thread_delete_time')
->setSetting('handler', 'default')
->setCardinality(FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED);
return $fields;
}
/**
* {@inheritdoc}
*/
public function getCacheTags() {
$tags = parent::getCacheTags();
$tags[] = 'private_message_thread:' . $this
->id() . ':view:uid:' . \Drupal::currentUser()
->id();
return $tags;
}
/**
* Delete the thread from the database, as well as all reference entities.
*/
private function deleteReferencedEntities() {
$messages = $this
->getMessages();
foreach ($messages as $message) {
$message
->delete();
}
$last_access_times = $this
->getLastAccessTimes();
foreach ($last_access_times as $last_access_time) {
$last_access_time
->delete();
}
$last_delete_times = $this
->getLastDeleteTimes();
foreach ($last_delete_times as $last_delete_time) {
$last_delete_time
->delete();
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CacheableDependencyTrait:: |
protected | property | Cache contexts. | |
CacheableDependencyTrait:: |
protected | property | Cache max-age. | |
CacheableDependencyTrait:: |
protected | property | Cache tags. | |
CacheableDependencyTrait:: |
protected | function | Sets cacheability; useful for value object constructors. | |
ContentEntityBase:: |
protected | property | Language code identifying the entity active language. | |
ContentEntityBase:: |
protected | property | Local cache for the default language code. | |
ContentEntityBase:: |
protected | property | The default langcode entity key. | |
ContentEntityBase:: |
protected | property | Whether the revision translation affected flag has been enforced. | |
ContentEntityBase:: |
protected | property | Holds untranslatable entity keys such as the ID, bundle, and revision ID. | |
ContentEntityBase:: |
protected | property | Local cache for field definitions. | |
ContentEntityBase:: |
protected | property | The array of fields, each being an instance of FieldItemListInterface. | |
ContentEntityBase:: |
protected static | property | Local cache for fields to skip from the checking for translation changes. | |
ContentEntityBase:: |
protected | property | Indicates whether this is the default revision. | |
ContentEntityBase:: |
protected | property | The language entity key. | |
ContentEntityBase:: |
protected | property | Local cache for the available language objects. | |
ContentEntityBase:: |
protected | property | The loaded revision ID before the new revision was set. | |
ContentEntityBase:: |
protected | property | Boolean indicating whether a new revision should be created on save. | |
ContentEntityBase:: |
protected | property | The revision translation affected entity key. | |
ContentEntityBase:: |
protected | property | Holds translatable entity keys such as the label. | |
ContentEntityBase:: |
protected | property | A flag indicating whether a translation object is being initialized. | |
ContentEntityBase:: |
protected | property | An array of entity translation metadata. | |
ContentEntityBase:: |
protected | property | Whether entity validation was performed. | |
ContentEntityBase:: |
protected | property | Whether entity validation is required before saving the entity. | |
ContentEntityBase:: |
protected | property | The plain data values of the contained fields. | |
ContentEntityBase:: |
public | function |
Checks data value access. Overrides EntityBase:: |
1 |
ContentEntityBase:: |
public | function |
Adds a new translation to the translatable object. Overrides TranslatableInterface:: |
|
ContentEntityBase:: |
public | function |
Gets the bundle of the entity. Overrides EntityBase:: |
|
ContentEntityBase:: |
public static | function |
Provides field definitions for a specific bundle. Overrides FieldableEntityInterface:: |
4 |
ContentEntityBase:: |
protected | function | Clear entity translation object cache to remove stale references. | |
ContentEntityBase:: |
public | function |
Creates a duplicate of the entity. Overrides EntityBase:: |
1 |
ContentEntityBase:: |
public | function |
Gets a field item list. Overrides FieldableEntityInterface:: |
|
ContentEntityBase:: |
protected | function | Gets the value of the given entity key, if defined. | 1 |
ContentEntityBase:: |
public | function |
Gets the definition of a contained field. Overrides FieldableEntityInterface:: |
|
ContentEntityBase:: |
public | function |
Gets an array of field definitions of all contained fields. Overrides FieldableEntityInterface:: |
|
ContentEntityBase:: |
public | function |
Gets an array of all field item lists. Overrides FieldableEntityInterface:: |
|
ContentEntityBase:: |
protected | function | Returns an array of field names to skip in ::hasTranslationChanges. | 1 |
ContentEntityBase:: |
public | function | ||
ContentEntityBase:: |
protected | function | ||
ContentEntityBase:: |
public | function |
Gets the loaded Revision ID of the entity. Overrides RevisionableInterface:: |
|
ContentEntityBase:: |
public | function |
Gets the revision identifier of the entity. Overrides RevisionableInterface:: |
|
ContentEntityBase:: |
public | function |
Gets an array of field item lists for translatable fields. Overrides FieldableEntityInterface:: |
|
ContentEntityBase:: |
protected | function | Gets a translated field. | |
ContentEntityBase:: |
public | function |
Gets a translation of the data. Overrides TranslatableInterface:: |
|
ContentEntityBase:: |
public | function |
Returns the languages the data is translated to. Overrides TranslatableInterface:: |
|
ContentEntityBase:: |
public | function |
Returns the translation status. Overrides TranslationStatusInterface:: |
|
ContentEntityBase:: |
public | function |
Returns the translatable object referring to the original language. Overrides TranslatableInterface:: |
|
ContentEntityBase:: |
public | function |
Determines whether the entity has a field with the given name. Overrides FieldableEntityInterface:: |
|
ContentEntityBase:: |
public | function |
Checks there is a translation for the given language code. Overrides TranslatableInterface:: |
|
ContentEntityBase:: |
public | function |
Determines if the current translation of the entity has unsaved changes. Overrides TranslatableInterface:: |
|
ContentEntityBase:: |
public | function |
Gets the identifier. Overrides EntityBase:: |
|
ContentEntityBase:: |
protected | function | Instantiates a translation object for an existing translation. | |
ContentEntityBase:: |
public | function |
Checks if this entity is the default revision. Overrides RevisionableInterface:: |
|
ContentEntityBase:: |
public | function |
Checks whether the translation is the default one. Overrides TranslatableInterface:: |
|
ContentEntityBase:: |
public | function |
Checks if untranslatable fields should affect only the default translation. Overrides TranslatableRevisionableInterface:: |
|
ContentEntityBase:: |
public | function |
Checks if this entity is the latest revision. Overrides RevisionableInterface:: |
|
ContentEntityBase:: |
public | function |
Checks whether this is the latest revision affecting this translation. Overrides TranslatableRevisionableInterface:: |
|
ContentEntityBase:: |
public | function |
Determines whether a new revision should be created on save. Overrides RevisionableInterface:: |
|
ContentEntityBase:: |
public | function |
Checks whether the translation is new. Overrides TranslatableInterface:: |
|
ContentEntityBase:: |
public | function |
Checks whether the current translation is affected by the current revision. Overrides TranslatableRevisionableInterface:: |
|
ContentEntityBase:: |
public | function |
Checks if the revision translation affected flag value has been enforced. Overrides TranslatableRevisionableInterface:: |
|
ContentEntityBase:: |
public | function |
Returns the translation support status. Overrides TranslatableInterface:: |
|
ContentEntityBase:: |
public | function |
Checks whether entity validation is required before saving the entity. Overrides FieldableEntityInterface:: |
|
ContentEntityBase:: |
public | function |
Gets the label of the entity. Overrides EntityBase:: |
2 |
ContentEntityBase:: |
public | function |
Gets the language of the entity. Overrides EntityBase:: |
|
ContentEntityBase:: |
public | function |
Reacts to changes to a field. Overrides FieldableEntityInterface:: |
|
ContentEntityBase:: |
public | function |
Acts on a created entity before hooks are invoked. Overrides EntityBase:: |
|
ContentEntityBase:: |
public | function |
Acts on a saved entity before the insert or update hook is invoked. Overrides EntityBase:: |
5 |
ContentEntityBase:: |
public | function |
Acts on an entity before the presave hook is invoked. Overrides EntityBase:: |
5 |
ContentEntityBase:: |
public | function |
Acts on a revision before it gets saved. Overrides RevisionableInterface:: |
2 |
ContentEntityBase:: |
public | function |
Gets a list of entities referenced by this entity. Overrides EntityBase:: |
1 |
ContentEntityBase:: |
public | function |
Removes the translation identified by the given language code. Overrides TranslatableInterface:: |
|
ContentEntityBase:: |
public | function |
Sets a field value. Overrides FieldableEntityInterface:: |
|
ContentEntityBase:: |
protected | function | Populates the local cache for the default language code. | |
ContentEntityBase:: |
public | function |
Enforces an entity to be saved as a new revision. Overrides RevisionableInterface:: |
|
ContentEntityBase:: |
public | function |
Marks the current revision translation as affected. Overrides TranslatableRevisionableInterface:: |
|
ContentEntityBase:: |
public | function |
Enforces the revision translation affected flag value. Overrides TranslatableRevisionableInterface:: |
|
ContentEntityBase:: |
public | function |
Sets whether entity validation is required before saving the entity. Overrides FieldableEntityInterface:: |
|
ContentEntityBase:: |
public | function |
Gets an array of all property values. Overrides EntityBase:: |
|
ContentEntityBase:: |
protected | function | Updates language for already instantiated fields. | |
ContentEntityBase:: |
public | function |
Updates the loaded Revision ID with the revision ID. Overrides RevisionableInterface:: |
|
ContentEntityBase:: |
public | function | Updates the original values with the interim changes. | |
ContentEntityBase:: |
public | function |
Gets the entity UUID (Universally Unique Identifier). Overrides EntityBase:: |
|
ContentEntityBase:: |
public | function |
Validates the currently set values. Overrides FieldableEntityInterface:: |
|
ContentEntityBase:: |
public | function |
Checks whether the entity object was a default revision when it was saved. Overrides RevisionableInterface:: |
|
ContentEntityBase:: |
public | function | Magic method: Implements a deep clone. | |
ContentEntityBase:: |
public | function |
Constructs an Entity object. Overrides EntityBase:: |
|
ContentEntityBase:: |
public | function | Implements the magic method for getting object properties. | |
ContentEntityBase:: |
public | function | Implements the magic method for isset(). | |
ContentEntityBase:: |
public | function | Implements the magic method for setting object properties. | |
ContentEntityBase:: |
public | function |
Overrides EntityBase:: |
|
ContentEntityBase:: |
public | function | Implements the magic method for unset(). | |
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | Aliased as: traitSleep | 1 |
DependencySerializationTrait:: |
public | function | 2 | |
EntityBase:: |
protected | property | Boolean indicating whether the entity should be forced to be new. | |
EntityBase:: |
protected | property | The entity type. | |
EntityBase:: |
protected | property | A typed data object wrapping this entity. | |
EntityBase:: |
public static | function |
Constructs a new entity object, without permanently saving it. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Enforces an entity to be new. Overrides EntityInterface:: |
|
EntityBase:: |
protected | function | Gets the entity manager. | |
EntityBase:: |
protected | function | Gets the entity type bundle info service. | |
EntityBase:: |
protected | function | Gets the entity type manager. | |
EntityBase:: |
public | function |
The cache contexts associated with this object. Overrides CacheableDependencyTrait:: |
|
EntityBase:: |
public | function |
The maximum age for which this object may be cached. Overrides CacheableDependencyTrait:: |
|
EntityBase:: |
public | function |
Returns the cache tags that should be used to invalidate caches. Overrides EntityInterface:: |
2 |
EntityBase:: |
public | function |
Gets the key that is used to store configuration dependencies. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the configuration dependency name. Overrides EntityInterface:: |
1 |
EntityBase:: |
public | function |
Gets the configuration target identifier for the entity. Overrides EntityInterface:: |
1 |
EntityBase:: |
public | function |
Gets the entity type definition. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the ID of the type of the entity. Overrides EntityInterface:: |
|
EntityBase:: |
protected | function | The list cache tags to invalidate for this entity. | |
EntityBase:: |
public | function |
Gets the original ID. Overrides EntityInterface:: |
1 |
EntityBase:: |
public | function |
Gets a typed data object for this entity object. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Indicates if a link template exists for a given key. Overrides EntityInterface:: |
|
EntityBase:: |
protected static | function | Invalidates an entity's cache tags upon delete. | 1 |
EntityBase:: |
protected | function | Invalidates an entity's cache tags upon save. | 1 |
EntityBase:: |
public | function |
Determines whether the entity is new. Overrides EntityInterface:: |
2 |
EntityBase:: |
protected | function | Gets the language manager. | |
EntityBase:: |
public | function |
Deprecated way of generating a link to the entity. See toLink(). Overrides EntityInterface:: |
1 |
EntityBase:: |
protected | function | Gets an array link templates. | 1 |
EntityBase:: |
public static | function |
Loads an entity. Overrides EntityInterface:: |
|
EntityBase:: |
public static | function |
Loads one or more entities. Overrides EntityInterface:: |
|
EntityBase:: |
public static | function |
Acts on deleted entities before the delete hook is invoked. Overrides EntityInterface:: |
16 |
EntityBase:: |
public static | function |
Acts on loaded entities. Overrides EntityInterface:: |
2 |
EntityBase:: |
public static | function |
Changes the values of an entity before it is created. Overrides EntityInterface:: |
5 |
EntityBase:: |
public static | function |
Acts on entities before they are deleted and before hooks are invoked. Overrides EntityInterface:: |
4 |
EntityBase:: |
public | function |
Sets the original ID. Overrides EntityInterface:: |
1 |
EntityBase:: |
public | function |
Generates the HTML for a link to this entity. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the URL object for the entity. Overrides EntityInterface:: |
2 |
EntityBase:: |
public | function |
Gets a list of URI relationships supported by this entity. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the public URL for this entity. Overrides EntityInterface:: |
2 |
EntityBase:: |
public | function |
Gets the URL object for the entity. Overrides EntityInterface:: |
1 |
EntityBase:: |
protected | function | Gets an array of placeholders for this entity. | 2 |
EntityBase:: |
protected | function | Gets the UUID generator. | |
EntityChangesDetectionTrait:: |
protected | function | Returns an array of field names to skip when checking for changes. Aliased as: traitGetFieldsToSkipFromTranslationChangesCheck | |
PrivateMessageThread:: |
public | function |
Add an an access time to the current thread for the given user. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Add an a delete time to the current thread for the given user. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Add a member to the private message thread. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Add a member to the private message thread. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Add a private message to the list of messages in this thread. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Add a private message by ID to the list of the messages in this thread. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public static | function |
Provides base field definitions for an entity type. Overrides ContentEntityBase:: |
|
PrivateMessageThread:: |
public | function |
Clear cache tags related to private message thread entities. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Deletes an entity permanently. Overrides EntityBase:: |
|
PrivateMessageThread:: |
private | function | Delete the thread from the database, as well as all reference entities. | |
PrivateMessageThread:: |
public | function |
Filter the list down to only the newest messages. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Filter messages in the thread deleted by the given account. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
The cache tags associated with this object. Overrides EntityBase:: |
|
PrivateMessageThread:: |
public | function |
Get the last access time object for the given user. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Get the PrivateMessageThreadAccessTime entites referenced by this thread. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Get the last access timestamp for the given user. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Get the last delete time object for the given user. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Retrieve the last delete timestamps for all members of the thread. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Get the last delete timestamp for the given user. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Retrieve the members of the private message thread. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Retrieve all private messages attached to this thread. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Get the created timestamp of the newest private message in the thread. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function | ||
PrivateMessageThread:: |
public | function |
Check if the user with the given ID is a member of the thread. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Saves an entity permanently. Overrides EntityBase:: |
|
PrivateMessageThread:: |
public | function |
Update the last access time for the given user. Overrides PrivateMessageThreadInterface:: |
|
PrivateMessageThread:: |
public | function |
Update the last delete time for the given user. Overrides PrivateMessageThreadInterface:: |
|
RefinableCacheableDependencyTrait:: |
public | function | 1 | |
RefinableCacheableDependencyTrait:: |
public | function | ||
RefinableCacheableDependencyTrait:: |
public | function | ||
RefinableCacheableDependencyTrait:: |
public | function | ||
SynchronizableEntityTrait:: |
protected | property | Whether this entity is being created, updated or deleted through a synchronization process. | |
SynchronizableEntityTrait:: |
public | function | ||
SynchronizableEntityTrait:: |
public | function | ||
TranslationStatusInterface:: |
constant | Status code identifying a newly created translation. | ||
TranslationStatusInterface:: |
constant | Status code identifying an existing translation. | ||
TranslationStatusInterface:: |
constant | Status code identifying a removed translation. |