You are here

public function EntityImageStyle::import in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 core/modules/image/src/Plugin/migrate/destination/EntityImageStyle.php \Drupal\image\Plugin\migrate\destination\EntityImageStyle::import()

Import the row.

Derived classes must implement import(), to construct one new object (pre-populated) using ID mappings in the Migration.

Parameters

\Drupal\migrate\Row $row: The row object.

array $old_destination_id_values: The old destination ids.

Return value

mixed The entity id or an indication of success.

Overrides EntityConfigBase::import

File

core/modules/image/src/Plugin/migrate/destination/EntityImageStyle.php, line 28
Contains \Drupal\image\Plugin\migrate\destination\EntityImageStyle.

Class

EntityImageStyle
Every migration that uses this destination must have an optional dependency on the d6_file migration to ensure it runs first.

Namespace

Drupal\image\Plugin\migrate\destination

Code

public function import(Row $row, array $old_destination_id_values = []) {
  $effects = [];

  // Need to set the effects property to null on the row before the ImageStyle
  // is created, this prevents improper effect plugin initialization.
  if ($row
    ->getDestinationProperty('effects')) {
    $effects = $row
      ->getDestinationProperty('effects');
    $row
      ->setDestinationProperty('effects', []);
  }

  /** @var \Drupal\Image\Entity\ImageStyle $style */
  $style = $this
    ->getEntity($row, $old_destination_id_values);

  // Iterate the effects array so each effect plugin can be initialized.
  // Catch any missing plugin exceptions.
  foreach ($effects as $effect) {
    try {
      $style
        ->addImageEffect($effect);
    } catch (PluginNotFoundException $e) {
      throw new MigrateException($e
        ->getMessage(), 0, $e);
    }
  }
  $style
    ->save();
  return array(
    $style
      ->id(),
  );
}