You are here

class LinkIt in Entity Usage 8

Same name and namespace in other branches
  1. 8.2 src/Plugin/EntityUsage/Track/LinkIt.php \Drupal\entity_usage\Plugin\EntityUsage\Track\LinkIt
  2. 8.3 src/Plugin/EntityUsage/Track/LinkIt.php \Drupal\entity_usage\Plugin\EntityUsage\Track\LinkIt

Tracks usage of entities related in entity_reference fields.

Plugin annotation


@EntityUsageTrack(
  id = "linkit",
  label = @Translation("Entities embedded with LinkIt"),
  description = @Translation("Tracks usage of entities related when embedded with the LinkIt module."),
)

Hierarchy

Expanded class hierarchy of LinkIt

File

src/Plugin/EntityUsage/Track/LinkIt.php, line 16

Namespace

Drupal\entity_usage\Plugin\EntityUsage\Track
View source
class LinkIt extends EmbedBase {

  /**
   * {@inheritdoc}
   */
  public function parseEntitiesFromText($text) {
    $dom = Html::load($text);
    $xpath = new \DOMXPath($dom);
    $entities = [];
    foreach ($xpath
      ->query('//a[@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

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
EmbedBase::$entityRepository protected property The EntityRepository service.
EmbedBase::$moduleHandler protected property The ModuleHandler service.
EmbedBase::create public static function Creates an instance of the plugin. Overrides EntityUsageTrackBase::create
EmbedBase::decrementEmbeddedUsage protected function Helper method to decrement the usage for embedded entities.
EmbedBase::getEmbeddedEntitiesByField protected function Finds all entities embedded (<drupal-entity>) by formatted text fields.
EmbedBase::incrementEmbeddedUsage protected function Helper method to increment the usage for embedded entities.
EmbedBase::trackOnEntityCreation public function Track usage updates on the creation of entities. Overrides EntityUsageTrackBase::trackOnEntityCreation
EmbedBase::trackOnEntityDeletion public function Track usage updates on the deletion of entities. Overrides EntityUsageTrackBase::trackOnEntityDeletion
EmbedBase::trackOnEntityUpdate public function Track usage updates on the edition of entities. Overrides EntityUsageTrackBase::trackOnEntityUpdate
EmbedBase::__construct public function Constructs display plugin. Overrides EntityUsageTrackBase::__construct
EntityUsageTrackBase::$usageService protected property The usage tracking service.
EntityUsageTrackBase::defaultConfiguration public function
EntityUsageTrackBase::getDescription public function Returns the tracking method description. Overrides EntityUsageTrackInterface::getDescription
EntityUsageTrackBase::getId public function Returns the tracking method unique id. Overrides EntityUsageTrackInterface::getId
EntityUsageTrackBase::getLabel public function Returns the tracking method label. Overrides EntityUsageTrackInterface::getLabel
LinkIt::parseEntitiesFromText public function Parse an HTML snippet looking for embedded entities. Overrides EmbedTrackInterface::parseEntitiesFromText
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.