You are here

class BlockFieldBlockContentImporter in Entity Share 8.3

Import block contents from block fields.

Plugin annotation


@ImportProcessor(
  id = "block_field_block_content_importer",
  label = @Translation("Block field block content"),
  description = @Translation("Import block contents from block fields. Require the 'Block field (Block field only) (Entity Share)' field enhancer enabled on both client and server websites."),
  stages = {
    "prepare_importable_entity_data" = 20,
  },
  locked = false,
)

Hierarchy

Expanded class hierarchy of BlockFieldBlockContentImporter

File

modules/entity_share_client/src/Plugin/EntityShareClient/Processor/BlockFieldBlockContentImporter.php, line 23

Namespace

Drupal\entity_share_client\Plugin\EntityShareClient\Processor
View source
class BlockFieldBlockContentImporter 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_name => $field_data) {
        if (is_array($field_data)) {
          if (EntityShareUtility::isNumericArray($field_data)) {
            foreach ($field_data as $delta => $value) {
              if (isset($value['block_content_href'])) {
                $this
                  ->importUrl($runtime_import_context, $value['block_content_href']);
                unset($entity_json_data['attributes'][$field_name][$delta]['block_content_href']);
              }
            }
          }
          elseif (isset($field_data['block_content_href'])) {
            $this
              ->importUrl($runtime_import_context, $field_data['block_content_href']);
            unset($entity_json_data['attributes'][$field_name]['block_content_href']);
          }
        }
      }
    }
  }

  /**
   * {@inheritdoc}
   */
  protected function importUrl(RuntimeImportContext $runtime_import_context, $url) {

    // In the case of block field, if the block content entity is already
    // present on the website, there is nothing to do.
    if ($this->currentRecursionDepth == $this->configuration['max_recursion_depth']) {
      return [];
    }
    return parent::importUrl($runtime_import_context, $url);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
BlockFieldBlockContentImporter::importUrl protected function Helper function. Overrides EntityReference::importUrl
BlockFieldBlockContentImporter::prepareImportableEntityData public function Method called on STAGE_PREPARE_IMPORTABLE_ENTITY_DATA. Overrides ImportProcessorPluginBase::prepareImportableEntityData
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
EntityReference::$currentRecursionDepth protected property The current recursion depth.
EntityReference::$entityReferenceHelper protected property Entity reference helper service.
EntityReference::$entityTypeManager protected property The entity type manager.
EntityReference::$eventDispatcher protected property The event dispatcher service.
EntityReference::$logger protected property Logger.
EntityReference::$remoteManager protected property The remote manager.
EntityReference::buildConfigurationForm public function Form constructor. Overrides PluginFormInterface::buildConfigurationForm
EntityReference::create public static function Creates an instance of the plugin. Overrides ImportProcessorPluginBase::create
EntityReference::defaultConfiguration public function Gets default configuration for this plugin. Overrides ImportProcessorPluginBase::defaultConfiguration
EntityReference::getExistingEntities protected function Helper function to get existing reference entities.
EntityReference::processEntity public function Method called on STAGE_PROCESS_ENTITY. Overrides ImportProcessorPluginBase::processEntity
ImportProcessorInterface::STAGE_IS_ENTITY_IMPORTABLE constant Processing stage: is entity importable.
ImportProcessorInterface::STAGE_POST_ENTITY_SAVE constant Processing stage: post entity save.
ImportProcessorInterface::STAGE_PREPARE_ENTITY_DATA constant Processing stage: prepare entity data.
ImportProcessorInterface::STAGE_PREPARE_IMPORTABLE_ENTITY_DATA constant Processing stage: prepare importable entity data.
ImportProcessorInterface::STAGE_PROCESS_ENTITY constant Processing stage: process entity.
ImportProcessorPluginBase::getConfiguration public function Gets this plugin's configuration. Overrides ConfigurableInterface::getConfiguration
ImportProcessorPluginBase::getDescription public function Returns the plugin's description. Overrides ImportProcessorInterface::getDescription
ImportProcessorPluginBase::getWeight public function Returns the weight for a specific processing stage. Overrides ImportProcessorInterface::getWeight
ImportProcessorPluginBase::isEntityImportable public function Method called on STAGE_IS_ENTITY_IMPORTABLE. Overrides ImportProcessorInterface::isEntityImportable 2
ImportProcessorPluginBase::isLocked public function Determines whether this processor should always be enabled. Overrides ImportProcessorInterface::isLocked
ImportProcessorPluginBase::label public function Returns the label for use on the administration pages. Overrides ImportProcessorInterface::label
ImportProcessorPluginBase::postEntitySave public function Method called on STAGE_POST_ENTITY_SAVE. Overrides ImportProcessorInterface::postEntitySave 1
ImportProcessorPluginBase::prepareEntityData public function Method called on STAGE_PREPARE_ENTITY_DATA. Overrides ImportProcessorInterface::prepareEntityData
ImportProcessorPluginBase::setConfiguration public function Sets the configuration for this plugin instance. Overrides ConfigurableInterface::setConfiguration
ImportProcessorPluginBase::setWeight public function Sets the weight for a specific processing stage. Overrides ImportProcessorInterface::setWeight
ImportProcessorPluginBase::submitConfigurationForm public function Form submission handler.
ImportProcessorPluginBase::supportsStage public function Checks whether this processor implements a particular stage. Overrides ImportProcessorInterface::supportsStage
ImportProcessorPluginBase::validateConfigurationForm public function Form validation handler.
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.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 92
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.