Media entity usage tab
Usage page

This module provides a tool to track entity relationships in Drupal.

Currently the following tracking methods are supported:

- Entities related through entity_reference fields
- Entities related through link fields
- Standard HTML links inside text fields.
- Media entities embedded into WYSIWYG text fields using core's Media Library
- Entities embedded into text fields using the Entity Embed module
- Entities embedded into text fields using the LinkIt module
- Entities related through block_field fields
- Entities related through entity_reference_revisions fields (i.e. paragraphs)
- Entities related through dynamic_entity_reference fields
- Entities related through Layout Builder. Supported methods: a) Core's inline (non-reusable) content blocks, and b) entities selected through the contributed Entity Browser Block module

How it works

A relationship between two entities is considered so when a source entity points to a target entity through one of the methods described above.

You can configure what entity types should be tracked when source, and what entity types should be tracked as target. By default all content entities (except files and users) are tracked.

You can also configure what plugins (from the tracking methods indicated above) should be active. By default all plugins are active.

When a source entity is created / updated / deleted, all active plugins are called to register potential relationships.

Content entities can have a local task link (Tab) on its canonical page linking to a "Usage" information page, where users can see where that entity is being related from. You can configure which entity types should have a local task displaying usage information. By default no local tasks are shown.

You can also display usage information in Views, or retrieve them in custom code. Please refer to the documentation to learn more.

Documentation

Official documentation can be found on the online handbook and in the module's README.txt file. Please open an issue if you find incomplete or inaccurate documentation.

Known limitations

Plugins track one usage per entity per field

The module will register only one usage of the same target entity per field. This is intentional in the current implementation, please open an issue if you have a use-case where this is a problem.

Only tested with MySQL

This module has only been tested with MySQL databases, if you experience issues in other platforms please file an issue describing the problem in the issue queue.

Scalability

Some site setups might present scalability issues, particularly if you have many nested entities in a relationship chain that are saved together (paragraphs, etc), or usage pages with lots of source entities to be displayed. There is some work being explored in #3060802: Refactor module architecture in a simpler, opinionated and more performant approach to re-write the module with a different approach in mind. That will be done in a (currently still very experimental) 3.x branch of this module. Please chime in on that issue if you have ideas on how to help with that plan.

Which branch should I use?

8.x-2.x is the currently supported and recommended branch for production projects.

8.x-3.x is a proof-of-concept of a complete refactor, changing how the module works, but still incomplete. More info in #3060802: Refactor module architecture in a simpler, opinionated and more performant approach.

8.x-4.x is still experimental and should NOT be used in production. In this branch the module was refactored to split the generic API into a separate project (Entity Tracking API), which allows for other integrations. If you want to help testing it, make sure you:

  • Install the Entity Track module, which is now a dependency
  • Move over your configuration settings into the Entity Track settings page
  • Move over your permissions into the Entity Track permissions
Supporting organizations: 
Development
Maintenance

Project information

Releases