FileEntityFieldFormatter.php in Media Migration 8
File
src/Plugin/migrate/source/d7/FileEntityFieldFormatter.php
View source
<?php
namespace Drupal\media_migration\Plugin\migrate\source\d7;
use Drupal\migrate\Row;
class FileEntityFieldFormatter extends FileEntityConfigSourceBase {
protected function initializeIterator() {
$iterator = parent::initializeIterator();
$rows = [];
foreach ($iterator
->getArrayCopy() as $item) {
[
'source_field_name' => $source_field_name,
] = $item;
$field_names = [
$source_field_name => FALSE,
'created' => TRUE,
'name' => TRUE,
'thumbnail' => TRUE,
'uid' => TRUE,
];
foreach ($field_names as $field_name => $hidden) {
$rows[] = [
'field_name' => $field_name,
'hidden' => $hidden,
] + $item;
}
}
return new \ArrayIterator($rows);
}
public function prepareRow(Row $row) {
[
'types' => $types,
'schemes' => $schemes,
'source_field_name' => $source_field_name,
'field_name' => $field_name,
] = $row
->getSource();
if ($field_name === $source_field_name) {
$type = explode(static::MULTIPLE_SEPARATOR, $types)[0];
$scheme = explode(static::MULTIPLE_SEPARATOR, $schemes)[0];
if (!($dealer_plugin = $this->fileEntityDealerManager
->createInstanceFromTypeAndScheme($type, $scheme))) {
return FALSE;
}
$dealer_plugin
->prepareMediaSourceFieldFormatterRow($row, $this
->getDatabase());
}
return parent::prepareRow($row);
}
public function fields() {
return [
'field_name' => $this
->t('Name of the field.'),
'options' => $this
->t('Configuration options of the source field widget.'),
'hidden' => $this
->t('Whether the field is hidden or not.'),
] + parent::fields();
}
public function getIds() {
return [
'field_name' => [
'type' => 'string',
],
] + parent::getIds();
}
}