class EmbeddedEntityImporter in Entity Share 8.3
Import embedded entities from text formatted fields.
Need to act before the entity is deserialized to ensure the src attribute of img tags will be updated.
Plugin annotation
@ImportProcessor(
id = "embedded_entity_importer",
label = @Translation("Embedded entity"),
description = @Translation("Import embedded entities from text formatted fields. Require the 'Embedded entities (formatted text field only) (Entity Share)' field enhancer enabled on both client and server websites."),
stages = {
"prepare_importable_entity_data" = 20,
},
locked = false,
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\entity_share_client\ImportProcessor\ImportProcessorPluginBase implements ContainerFactoryPluginInterface, ImportProcessorInterface
- class \Drupal\entity_share_client\Plugin\EntityShareClient\Processor\EntityReference implements PluginFormInterface
- class \Drupal\entity_share_client\Plugin\EntityShareClient\Processor\EmbeddedEntityImporter
- class \Drupal\entity_share_client\Plugin\EntityShareClient\Processor\EntityReference implements PluginFormInterface
- class \Drupal\entity_share_client\ImportProcessor\ImportProcessorPluginBase implements ContainerFactoryPluginInterface, ImportProcessorInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of EmbeddedEntityImporter
File
- modules/
entity_share_client/ src/ Plugin/ EntityShareClient/ Processor/ EmbeddedEntityImporter.php, line 27
Namespace
Drupal\entity_share_client\Plugin\EntityShareClient\ProcessorView source
class EmbeddedEntityImporter extends EntityReference {
/**
* {@inheritdoc}
*/
public function prepareImportableEntityData(RuntimeImportContext $runtime_import_context, array &$entity_json_data) {
// Parse entity data to extract urls to get block content from block
// field. And remove this info.
if (isset($entity_json_data['attributes']) && is_array($entity_json_data['attributes'])) {
foreach ($entity_json_data['attributes'] as $field_data) {
if (is_array($field_data)) {
if (EntityShareUtility::isNumericArray($field_data)) {
foreach ($field_data as $value) {
// Detect formatted text fields.
if (isset($value['format']) && isset($value['value'])) {
$this
->parseFormattedTextAndImport($runtime_import_context, $value['value']);
}
}
}
elseif (isset($field_data['format']) && isset($field_data['value'])) {
$this
->parseFormattedTextAndImport($runtime_import_context, $field_data['value']);
}
}
}
}
}
/**
* Parse text to import embedded entities.
*
* @param \Drupal\entity_share_client\RuntimeImportContext $runtime_import_context
* The runtime import context.
* @param string $text
* The formatted text to parse.
*/
protected function parseFormattedTextAndImport(RuntimeImportContext $runtime_import_context, $text) {
$matches = [];
preg_match_all('# data-entity-jsonapi-url="(.*)"#U', $text, $matches);
foreach ($matches[1] as $url) {
// Check that the URL is valid.
if (UrlHelper::isValid($url)) {
$this
->importUrl($runtime_import_context, $url);
}
}
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
EmbeddedEntityImporter:: |
protected | function | Parse text to import embedded entities. | |
EmbeddedEntityImporter:: |
public | function |
Method called on STAGE_PREPARE_IMPORTABLE_ENTITY_DATA. Overrides ImportProcessorPluginBase:: |
|
EntityReference:: |
protected | property | The current recursion depth. | |
EntityReference:: |
protected | property | Entity reference helper service. | |
EntityReference:: |
protected | property | The entity type manager. | |
EntityReference:: |
protected | property | The event dispatcher service. | |
EntityReference:: |
protected | property | Logger. | |
EntityReference:: |
protected | property | The remote manager. | |
EntityReference:: |
public | function |
Form constructor. Overrides PluginFormInterface:: |
|
EntityReference:: |
public static | function |
Creates an instance of the plugin. Overrides ImportProcessorPluginBase:: |
|
EntityReference:: |
public | function |
Gets default configuration for this plugin. Overrides ImportProcessorPluginBase:: |
|
EntityReference:: |
protected | function | Helper function to get existing reference entities. | |
EntityReference:: |
protected | function | Helper function. | 1 |
EntityReference:: |
public | function |
Method called on STAGE_PROCESS_ENTITY. Overrides ImportProcessorPluginBase:: |
|
ImportProcessorInterface:: |
constant | Processing stage: is entity importable. | ||
ImportProcessorInterface:: |
constant | Processing stage: post entity save. | ||
ImportProcessorInterface:: |
constant | Processing stage: prepare entity data. | ||
ImportProcessorInterface:: |
constant | Processing stage: prepare importable entity data. | ||
ImportProcessorInterface:: |
constant | Processing stage: process entity. | ||
ImportProcessorPluginBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
ImportProcessorPluginBase:: |
public | function |
Returns the plugin's description. Overrides ImportProcessorInterface:: |
|
ImportProcessorPluginBase:: |
public | function |
Returns the weight for a specific processing stage. Overrides ImportProcessorInterface:: |
|
ImportProcessorPluginBase:: |
public | function |
Method called on STAGE_IS_ENTITY_IMPORTABLE. Overrides ImportProcessorInterface:: |
2 |
ImportProcessorPluginBase:: |
public | function |
Determines whether this processor should always be enabled. Overrides ImportProcessorInterface:: |
|
ImportProcessorPluginBase:: |
public | function |
Returns the label for use on the administration pages. Overrides ImportProcessorInterface:: |
|
ImportProcessorPluginBase:: |
public | function |
Method called on STAGE_POST_ENTITY_SAVE. Overrides ImportProcessorInterface:: |
1 |
ImportProcessorPluginBase:: |
public | function |
Method called on STAGE_PREPARE_ENTITY_DATA. Overrides ImportProcessorInterface:: |
|
ImportProcessorPluginBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
|
ImportProcessorPluginBase:: |
public | function |
Sets the weight for a specific processing stage. Overrides ImportProcessorInterface:: |
|
ImportProcessorPluginBase:: |
public | function | Form submission handler. | |
ImportProcessorPluginBase:: |
public | function |
Checks whether this processor implements a particular stage. Overrides ImportProcessorInterface:: |
|
ImportProcessorPluginBase:: |
public | function | Form validation handler. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 92 |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |