class EntityEmbed in Entity Usage 8.4
Tracks usage of entities related in entity_reference fields.
Plugin annotation
@EntityTrack(
id = "entity_embed",
label = @Translation("Entity Embed"),
description = @Translation("Tracks relationships created with 'Entity Embed' in formatted text fields."),
field_types = {"text", "text_long", "text_with_summary"},
)
Hierarchy
- class \Drupal\entity_usage\EntityUsageBase extends \Drupal\entity_track\EntityTrackBase
- class \Drupal\entity_usage\Plugin\EntityTrack\Track\TextFieldEmbedBase implements EmbedTrackInterface
- class \Drupal\entity_usage\Plugin\EntityTrack\Track\EntityEmbed
- class \Drupal\entity_usage\Plugin\EntityTrack\Track\TextFieldEmbedBase implements EmbedTrackInterface
Expanded class hierarchy of EntityEmbed
File
- src/
Plugin/ EntityTrack/ Track/ EntityEmbed.php, line 17
Namespace
Drupal\entity_usage\Plugin\EntityTrack\TrackView source
class EntityEmbed extends TextFieldEmbedBase {
/**
* {@inheritdoc}
*/
public function parseEntitiesFromText($text) {
$dom = Html::load($text);
$xpath = new \DOMXPath($dom);
$entities = [];
foreach ($xpath
->query('//drupal-entity[@data-entity-type and @data-entity-uuid]') as $node) {
// Note that this does not cover 100% of the situations. In the (unlikely
// but possible) use case where the user embeds the same entity twice in
// the same field, we are just recording 1 usage for this target entity,
// when we should record 2. The alternative is to add a lot of complexity
// to the update logic of our plugin, to deal with all possible
// combinations in the update scenario.
// @TODO Re-evaluate if this is worth the effort and overhead.
$entities[$node
->getAttribute('data-entity-uuid')] = $node
->getAttribute('data-entity-type');
}
return $entities;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
EntityEmbed:: |
public | function |
Parse an HTML snippet looking for embedded entities. Overrides EmbedTrackInterface:: |
|
EntityUsageBase:: |
protected | property | The EntityRepository service. | |
EntityUsageBase:: |
protected | property | The usage config. | |
EntityUsageBase:: |
protected | property | The usage tracking service. | |
EntityUsageBase:: |
public static | function | 2 | |
EntityUsageBase:: |
public | function | ||
EntityUsageBase:: |
public | function | ||
EntityUsageBase:: |
public | function | ||
EntityUsageBase:: |
public | function | Plugin constructor. | 2 |
TextFieldEmbedBase:: |
public | function |
Retrieve the target entity(ies) from a field item value. Overrides EntityUsageBase:: |