class WorkspacesAliasRepository
Same name in other branches
- 9 core/modules/workspaces/src/WorkspacesAliasRepository.php \Drupal\workspaces\WorkspacesAliasRepository
- 10 core/modules/workspaces/src/WorkspacesAliasRepository.php \Drupal\workspaces\WorkspacesAliasRepository
- 11.x core/modules/workspaces/src/WorkspacesAliasRepository.php \Drupal\workspaces\WorkspacesAliasRepository
Provides workspace-specific path alias lookup queries.
Hierarchy
- class \Drupal\Core\Path\AliasRepository implements \Drupal\Core\Path\AliasRepositoryInterface
- class \Drupal\path_alias\AliasRepository extends \Drupal\Core\Path\AliasRepository implements \Drupal\path_alias\AliasRepositoryInterface
- class \Drupal\workspaces\WorkspacesAliasRepository extends \Drupal\path_alias\AliasRepository
- class \Drupal\path_alias\AliasRepository extends \Drupal\Core\Path\AliasRepository implements \Drupal\path_alias\AliasRepositoryInterface
Expanded class hierarchy of WorkspacesAliasRepository
File
-
core/
modules/ workspaces/ src/ WorkspacesAliasRepository.php, line 10
Namespace
Drupal\workspacesView source
class WorkspacesAliasRepository extends AliasRepository {
/**
* The workspace manager.
*
* @var \Drupal\workspaces\WorkspaceManagerInterface
*/
protected $workspaceManager;
/**
* Sets the workspace manager.
*
* @param \Drupal\workspaces\WorkspaceManagerInterface $workspace_manager
* The workspace manager service.
*
* @return $this
*/
public function setWorkspacesManager(WorkspaceManagerInterface $workspace_manager) {
$this->workspaceManager = $workspace_manager;
return $this;
}
/**
* {@inheritdoc}
*/
protected function getBaseQuery() {
// Don't alter any queries if we're not in a workspace context.
if (!$this->workspaceManager
->hasActiveWorkspace()) {
return parent::getBaseQuery();
}
$active_workspace = $this->workspaceManager
->getActiveWorkspace();
$query = $this->connection
->select('path_alias', 'base_table_2');
$wa_join = $query->leftJoin('workspace_association', NULL, "%alias.target_entity_type_id = 'path_alias' AND %alias.target_entity_id = base_table_2.id AND %alias.workspace = :active_workspace_id", [
':active_workspace_id' => $active_workspace->id(),
]);
$query->innerJoin('path_alias_revision', 'base_table', "%alias.revision_id = COALESCE({$wa_join}.target_entity_revision_id, base_table_2.revision_id)");
return $query;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
WorkspacesAliasRepository::$workspaceManager | protected | property | The workspace manager. |
WorkspacesAliasRepository::getBaseQuery | protected | function | |
WorkspacesAliasRepository::setWorkspacesManager | public | function | Sets the workspace manager. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.