improvements-2.x-dev/src/Plugin/migrate/process/D7EntityMetatag.php

src/Plugin/migrate/process/D7EntityMetatag.php
<?php

namespace Drupal\improvements\Plugin\migrate\process;

use Drupal\Core\Database\Connection;
use Drupal\migrate\MigrateExecutableInterface;
use Drupal\migrate\Plugin\MigrationInterface;
use Drupal\migrate\ProcessPluginBase;
use Drupal\migrate\Row;

/**
 * @MigrateProcessPlugin(
 *   id = "d7_entity_metatag"
 * )
 */
class D7EntityMetatag extends ProcessPluginBase {

  protected MigrationInterface $migration;

  /**
   * {@inheritdoc}
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->migration = $migration;
  }

  /**
   * {@inheritdoc}
   */
  public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property): string {
    $source_database = $this->migration->getSourcePlugin()->getDatabase(); /** @var Connection $source_database */

    $metatag = $source_database->select('metatag')
      ->fields('metatag', ['data'])
      ->condition('metatag.entity_type', $this->configuration['entity_type'])
      ->condition('metatag.entity_id', $value)
      ->execute()
      ->fetchField();

    return $metatag ? $metatag : 'a:0:{}';
  }

}

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

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