Skip to main content
drupalreleases

Use direct release data with your AI assistant.

Learn more

Entity Route Context

Security covered Maintenance fixes only 424 sites

Part of the Entity ecosystem · 308 projects

This module provides a way for blocks and other plugins to access the entity currently being displayed on a route, similar to how blocks can access the current node. It allows site builders to configure plugins that respond to specific entity types or any entity type on the page.

'Node from URL', but for the rest of us.

This project provides a service and context to determine if the current route match is owned by a particular entity type, by way of link templates.

A context is also provided for plugins and other to consume. For example you may want to create a block, or DsField, that relies on a particular entity from the route. It operates similar to the node.node_route_context context, but in an entity type agnostic way. Entity type specific contexts are also available in case a plugin is designed to take any entity type, but as a site builder you may choose for it to respond to a particular entity type.

Ideally this feature would be added to core in #3138465: Add a generic entity route context

Plugin context example

For example you may have the following block definition:

#[Block(
  id: 'test_block',
  context_definitions: [
    'entity_test_1' => new EntityContextDefinition(data_type: 'entity', label: new TranslatableMarkup('Entity Test 1'), required: TRUE),
  ],
)]

In this case, the generic entity context and entity-type specific contexts will be made available for configuration. See screenshot.

If you choose the generic entity context then if you are on any entity type route then the entity will be provided to the block. If you choose an entity type context such as 'Content from route' (aka Node) then the block will only display if you are on a node.

If a block is designed to work with only a specific entity type, e.g nodes, then you can provide a definition such as:

#[Block(
  id: 'test_block',
  context_definitions: [
    'entity' => new EntityContextDefinition(data_type: 'entity:node', label: new TranslatableMarkup('Entity'), required: TRUE),
  ],
)]

In this case, only the generic entity context and the 'Content from route' context will be made available. And each will only respond on Node routes. See screenshot.

V4 is compatible with Drupal 10.x, and is compatible with previous major versions.
V3 is compatible with Drupal 9.x, and is compatible with previous major versions.

Drupal 11 · not 10

Ask your assistant about Entity Route Context

Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

3 tracked projects depend on this one

Activity

Tracked releases
3
Tracked since
Sep 2023
Latest release
1 year ago
Releases (12 mo)
0 ▼ from 1
Maintenance
Active

Release Timeline

Releases

Version Type Core PHP Release date
4.2.0 Stable 11 Jul 24, 2025
4.1.0 Stable 10–11 PHP 8.1 Jun 11, 2024
4.0.0 Stable 10–11 PHP 8.1 Sep 21, 2023