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:: | 
