protected function ContentEntityStorageTrait::buildQuery in Multiversion 8
Same name and namespace in other branches
- 8.2 src/Entity/Storage/ContentEntityStorageTrait.php \Drupal\multiversion\Entity\Storage\ContentEntityStorageTrait::buildQuery()
File
- src/Entity/Storage/ContentEntityStorageTrait.php, line 53
Class
- ContentEntityStorageTrait
Namespace
Drupal\multiversion\Entity\Storage
Code
protected function buildQuery($ids, $revision_ids = FALSE) {
$query = parent::buildQuery($ids, $revision_ids);
$enabled = \Drupal::state()
->get('multiversion.migration_done.' . $this
->getEntityTypeId(), FALSE);
if (!is_subclass_of($this->entityType
->getStorageClass(), ContentEntityStorageInterface::class) || !$enabled) {
return $query;
}
$field_data_alias = 'base';
$revision_data_alias = 'revision';
if ($this->entityType
->isTranslatable()) {
$field_data_table = $this
->getDataTable();
$field_data_alias = 'field_data';
$query
->join($field_data_table, $field_data_alias, "{$field_data_alias}.{$this->idKey} = base.{$this->idKey}");
$revision_data_table = $this
->getRevisionDataTable();
$revision_data_alias = 'revision_data';
if ($revision_ids) {
$query
->join($revision_data_table, $revision_data_alias, "{$revision_data_alias}.{$this->revisionKey} = revision.{$this->revisionKey} AND {$revision_data_alias}.{$this->revisionKey} IN (:revisionIds[])", [
':revisionIds[]' => (array) $revision_ids,
]);
}
else {
$query
->join($revision_data_table, $revision_data_alias, "{$revision_data_alias}.{$this->revisionKey} = revision.{$this->revisionKey}");
}
}
if (!$revision_ids) {
$query
->condition("{$revision_data_alias}._deleted", (int) $this->isDeleted);
}
if (!$this instanceof UserStorageInterface) {
$query
->condition("{$field_data_alias}.workspace", $this
->getWorkspaceId());
}
return $query;
}