public function ModerationStateJoinViewsHandlerTrait::ensureMyTable in Drupal 8
Same name and namespace in other branches
- 9 core/modules/content_moderation/src/Plugin/views/ModerationStateJoinViewsHandlerTrait.php \Drupal\content_moderation\Plugin\views\ModerationStateJoinViewsHandlerTrait::ensureMyTable()
2 calls to ModerationStateJoinViewsHandlerTrait::ensureMyTable()
- ModerationStateField::clickSort in core/modules/content_moderation/src/Plugin/views/field/ModerationStateField.php
- Called to determine what to tell the clicksorter.
- ModerationStateFilter::opSimple in core/modules/content_moderation/src/Plugin/views/filter/ModerationStateFilter.php
File
- core/modules/content_moderation/src/Plugin/views/ModerationStateJoinViewsHandlerTrait.php, line 17
Class
- ModerationStateJoinViewsHandlerTrait
- Assist views handler plugins to join to the content_moderation_state entity.
Namespace
Drupal\content_moderation\Plugin\views
Code
public function ensureMyTable() {
if (!isset($this->tableAlias)) {
$table_alias = $this->query
->ensureTable($this->table, $this->relationship);
$left_entity_type = $this->entityTypeManager
->getDefinition($this
->getEntityType());
$entity_type = $this->entityTypeManager
->getDefinition('content_moderation_state');
$configuration = [
'table' => $entity_type
->getRevisionDataTable(),
'field' => 'content_entity_revision_id',
'left_table' => $table_alias,
'left_field' => $left_entity_type
->getKey('revision'),
'extra' => [
[
'field' => 'content_entity_type_id',
'value' => $left_entity_type
->id(),
],
[
'field' => 'content_entity_id',
'left_field' => $left_entity_type
->getKey('id'),
],
],
];
if ($left_entity_type
->isTranslatable()) {
$configuration['extra'][] = [
'field' => $entity_type
->getKey('langcode'),
'left_field' => $left_entity_type
->getKey('langcode'),
];
}
$join = Views::pluginManager('join')
->createInstance('standard', $configuration);
$this->tableAlias = $this->query
->addRelationship('content_moderation_state', $join, 'content_moderation_state_field_revision');
}
return $this->tableAlias;
}