Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). Varbase Media Header 9.2.1 Minor update available for module varbase_media_header (9.2.1). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Content Translation Redirect Module content_translation_redirect crossed 1,000 active installs.

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.

Activity

Total releases
1
First release
Jul 2025
Latest release
11 months ago
Releases (12 mo)
1 ▲ from 0
Maintenance
Slowing

Releases

Version Type Release date
4.2.0 Stable Jul 24, 2025