migmag-1.0.x-dev/migmag_rollbackable/src/Plugin/migrate/destination/RollbackableColor.php

migmag_rollbackable/src/Plugin/migrate/destination/RollbackableColor.php
<?php

declare(strict_types=1);

namespace Drupal\migmag_rollbackable\Plugin\migrate\destination;

use Drupal\color\Plugin\migrate\destination\Color;
use Drupal\migmag_rollbackable\Traits\RollbackableTrait;
use Drupal\migrate\Row;

/**
 * Rollbackable destination plugin for theme color settings migrations.
 *
 * @see \Drupal\color\Plugin\migrate\destination\Color
 *
 * @MigrateDestination(
 *   id = "migmag_rollbackable_color",
 *   provider = "color"
 * )
 */
final class RollbackableColor extends Color {

  use RollbackableTrait;

  /**
   * {@inheritdoc}
   */
  protected $supportsRollback = TRUE;

  /**
   * {@inheritdoc}
   */
  public function getIds() {
    return [
      'config_name' => ['type' => 'string'],
      'component' => ['type' => 'string'],
    ];
  }

  /**
   * {@inheritdoc}
   */
  protected function getTargetObjectId($row_or_destination_ids): string {
    if ($row_or_destination_ids instanceof Row) {
      return $row_or_destination_ids->getDestinationProperty('configuration_name');
    }
    return $row_or_destination_ids['config_name'];
  }

  /**
   * {@inheritdoc}
   */
  protected function getTargetComponent($row_or_destination_ids): string {
    if ($row_or_destination_ids instanceof Row) {
      return $row_or_destination_ids->getDestinationProperty('element_name');
    }
    return $row_or_destination_ids['component'];
  }

  /**
   * {@inheritdoc}
   */
  protected function generateDestinationIds($parent_destination_ids, string $target_object_id, string $component, string $langcode): array {
    return [$target_object_id, $component];
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc