function EntityOperations::entityQueryTagLatestTranslatedAffectedRevisionAlter
Implements hook_entity_query_tag__TAG_alter() for 'latest_translated_affected_revision'.
File
-
core/
modules/ workspaces/ src/ Hook/ EntityOperations.php, line 262
Class
- EntityOperations
- Defines a class for reacting to entity runtime hooks.
Namespace
Drupal\workspaces\HookCode
public function entityQueryTagLatestTranslatedAffectedRevisionAlter(QueryInterface $query) : void {
$entity_type = $this->entityTypeManager
->getDefinition($query->getEntityTypeId());
if (!$this->workspaceInfo
->isEntityTypeSupported($entity_type) || !$this->workspaceManager
->hasActiveWorkspace()) {
return;
}
$active_workspace = $this->workspaceManager
->getActiveWorkspace();
$tracked_entities = $this->workspaceAssociation
->getTrackedEntities($active_workspace->id());
if (!isset($tracked_entities[$entity_type->id()])) {
return;
}
if ($revision_id = array_search($query->getMetaData('entity_id'), $tracked_entities[$entity_type->id()])) {
$query->condition($entity_type->getKey('revision'), $revision_id, '<=');
$conditions = $query->orConditionGroup();
$conditions->condition($entity_type->getRevisionMetadataKey('workspace'), $active_workspace->id());
$conditions->condition($entity_type->getRevisionMetadataKey('revision_default'), TRUE);
$query->condition($conditions);
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.