class PrivateMessageThreadViewBuilder in Private Message 8
Same name and namespace in other branches
- 8.2 src/Entity/Builder/PrivateMessageThreadViewBuilder.php \Drupal\private_message\Entity\Builder\PrivateMessageThreadViewBuilder
Build handler for rpivate message threads.
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses DependencySerializationTrait, StringTranslationTrait
- class \Drupal\Core\Entity\EntityViewBuilder implements EntityHandlerInterface, EntityViewBuilderInterface, TrustedCallbackInterface uses DeprecatedServicePropertyTrait
- class \Drupal\private_message\Entity\Builder\PrivateMessageThreadViewBuilder
- class \Drupal\Core\Entity\EntityViewBuilder implements EntityHandlerInterface, EntityViewBuilderInterface, TrustedCallbackInterface uses DeprecatedServicePropertyTrait
Expanded class hierarchy of PrivateMessageThreadViewBuilder
File
- src/
Entity/ Builder/ PrivateMessageThreadViewBuilder.php, line 20
Namespace
Drupal\private_message\Entity\BuilderView source
class PrivateMessageThreadViewBuilder extends EntityViewBuilder {
/**
* The current user.
*
* @var \Drupal\Core\Session\AccountProxyInterface
*/
protected $currentUser;
/**
* The configuration factory.
*
* @var \Drupal\Core\Config\Config
*/
protected $config;
/**
* The class resolver service.
*
* @var \Drupal\Core\DependencyInjection\ClassResolverInterface
*/
protected $classResolver;
/**
* The module handler service.
*
* @var \Drupal\Core\Extension\ModuleHandlerInterface
*/
protected $moduleHandler;
/**
* The form builder service.
*
* @var \Drupal\Core\Form\FormBuilderInterface
*/
protected $formBuilder;
/**
* Constructs a PrivateMessageThreadViewBuilder object.
*
* @param \Drupal\Core\Entity\EntityTypeInterface $entityType
* The entity type.
* @param \Drupal\Core\Entity\EntityManagerInterface $entityManager
* The entity manager service.
* @param \Drupal\Core\Language\LanguageManagerInterface $languageManager
* The language manager service.
* @param \Drupal\Core\Theme\Registry $themeRegistry
* The theme register.
* @param \Drupal\Core\Session\AccountProxyInterface $currentUser
* The current user.
*/
public function __construct(EntityTypeInterface $entityType, EntityManagerInterface $entityManager, LanguageManagerInterface $languageManager, Registry $themeRegistry, AccountProxyInterface $currentUser) {
parent::__construct($entityType, $entityManager, $languageManager, $themeRegistry);
$this->currentUser = $currentUser;
}
/**
* {@inheritdoc}
*/
public static function createInstance(ContainerInterface $container, EntityTypeInterface $entityType) {
return new static($entityType, $container
->get('entity.manager'), $container
->get('language_manager'), $container
->get('theme.registry'), $container
->get('current_user'));
}
/**
* {@inheritdoc}
*/
public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
$build = parent::view($entity, $view_mode, $langcode);
$classes = [
'private-message-thread',
];
$classes[] = 'private-message-thread-' . $view_mode;
$last_access_time = $entity
->getLastAccessTimestamp($this->currentUser);
$newest_message_timestamp = $entity
->getNewestMessageCreationTimestamp();
if ($last_access_time <= $newest_message_timestamp) {
$classes[] = 'unread-thread';
}
$id = Html::getUniqueId('private-message-thread-' . $view_mode . '-' . $entity
->id());
if ($view_mode == 'inbox') {
$url = Url::fromRoute('entity.private_message_thread.canonical', [
'private_message_thread' => $entity
->id(),
]);
$build['inbox_link'] = [
'#type' => 'link',
'#url' => $url,
'#title' => '',
'#weight' => 9999,
'#attributes' => [
'data-thread-id' => $entity
->id(),
'class' => [
'private-message-inbox-thread-link',
],
],
];
}
if ($view_mode == 'full') {
$tags[] = 'private_message_thread:' . $entity
->id() . ':view:uid:' . $this->currentUser
->id();
$tags[] = 'private_message_inbox_block:uid:' . $this->currentUser
->id();
$tags[] = 'private_message_notification_block:uid:' . $this->currentUser
->id();
Cache::invalidateTags($tags);
$entity
->updateLastAccessTime($this->currentUser);
$build['#prefix'] = '<div id="private-message-page"><div id="' . $id . '" class="' . implode(' ', $classes) . '" data-thread-id="' . $entity
->id() . '" data-last-update="' . $entity
->get('updated')->value . '">';
$build['#suffix'] = '</div></div>';
}
else {
$build['#prefix'] = '<div id="' . $id . '" class="' . implode(' ', $classes) . '" data-thread-id="' . $entity
->id() . '" data-last-update="' . $entity
->get('updated')->value . '">';
$build['#suffix'] = '</div>';
}
return $build;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
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 | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
DeprecatedServicePropertyTrait:: |
public | function | Allows to access deprecated/removed properties. | |
EntityHandlerBase:: |
protected | function | Gets the module handler. | 2 |
EntityHandlerBase:: |
public | function | Sets the module handler for this handler. | |
EntityViewBuilder:: |
protected | property | The cache bin used to store the render cache. | |
EntityViewBuilder:: |
protected | property | ||
EntityViewBuilder:: |
protected | property | The entity display repository. | |
EntityViewBuilder:: |
protected | property | The entity repository service. | |
EntityViewBuilder:: |
protected | property | Information about the entity type. | |
EntityViewBuilder:: |
protected | property | The type of entities for which this view builder is instantiated. | |
EntityViewBuilder:: |
protected | property | The language manager. | |
EntityViewBuilder:: |
protected | property | The EntityViewDisplay objects created for individual field rendering. | |
EntityViewBuilder:: |
protected | property | The theme registry. | |
EntityViewBuilder:: |
protected | function | Add contextual links. | |
EntityViewBuilder:: |
protected | function | Specific per-entity building. | 1 |
EntityViewBuilder:: |
public | function | Builds an entity's view; augments entity defaults. | |
EntityViewBuilder:: |
public | function |
Builds the component fields and properties of a set of entities. Overrides EntityViewBuilderInterface:: |
6 |
EntityViewBuilder:: |
public | function | Builds multiple entities' views; augments entity defaults. | |
EntityViewBuilder:: |
protected | function | Provides entity-specific defaults to the build process. | 4 |
EntityViewBuilder:: |
public | function |
The cache tag associated with this entity view builder. Overrides EntityViewBuilderInterface:: |
|
EntityViewBuilder:: |
protected | function | Gets an EntityViewDisplay for rendering an individual field. | |
EntityViewBuilder:: |
protected | function | Determines whether the view mode is cacheable. | |
EntityViewBuilder:: |
public | function |
Resets the entity render cache. Overrides EntityViewBuilderInterface:: |
|
EntityViewBuilder:: |
public static | function |
Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface:: |
2 |
EntityViewBuilder:: |
public | function |
Builds a renderable array for the value of a single field in an entity. Overrides EntityViewBuilderInterface:: |
|
EntityViewBuilder:: |
public | function |
Builds a renderable array for a single field item. Overrides EntityViewBuilderInterface:: |
|
EntityViewBuilder:: |
public | function |
Builds the render array for the provided entities. Overrides EntityViewBuilderInterface:: |
4 |
PrivateMessageThreadViewBuilder:: |
protected | property | The class resolver service. | |
PrivateMessageThreadViewBuilder:: |
protected | property | The configuration factory. | |
PrivateMessageThreadViewBuilder:: |
protected | property | The current user. | |
PrivateMessageThreadViewBuilder:: |
protected | property | The form builder service. | |
PrivateMessageThreadViewBuilder:: |
protected | property |
The module handler service. Overrides EntityHandlerBase:: |
|
PrivateMessageThreadViewBuilder:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides EntityViewBuilder:: |
|
PrivateMessageThreadViewBuilder:: |
public | function |
Builds the render array for the provided entity. Overrides EntityViewBuilder:: |
|
PrivateMessageThreadViewBuilder:: |
public | function |
Constructs a PrivateMessageThreadViewBuilder object. Overrides EntityViewBuilder:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
TrustedCallbackInterface:: |
constant | Untrusted callbacks throw exceptions. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger E_USER_WARNING errors. |