View source
<?php
namespace Drupal\user\Plugin\migrate\destination;
use Drupal\migrate\Plugin\MigrationInterface;
use Drupal\user\UserData as UserDataStorage;
use Drupal\migrate\Row;
use Drupal\migrate\Plugin\migrate\destination\DestinationBase;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
class UserData extends DestinationBase implements ContainerFactoryPluginInterface {
protected $userData;
public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration, UserDataStorage $user_data) {
parent::__construct($configuration, $plugin_id, $plugin_definition, $migration);
$this->userData = $user_data;
}
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration = NULL) {
return new static($configuration, $plugin_id, $plugin_definition, $migration, $container
->get('user.data'));
}
public function import(Row $row, array $old_destination_id_values = []) {
$uid = $row
->getDestinationProperty('uid');
$module = $row
->getDestinationProperty('module');
$key = $row
->getDestinationProperty('key');
$this->userData
->set($module, $uid, $key, $row
->getDestinationProperty('settings'));
return [
$uid,
$module,
$key,
];
}
public function getIds() {
$ids['uid']['type'] = 'integer';
$ids['module']['type'] = 'string';
$ids['key']['type'] = 'string';
return $ids;
}
public function fields() {
return [
'uid' => 'The user id.',
'module' => 'The module name responsible for the settings.',
'key' => 'The setting key to save under.',
'settings' => 'The settings to save.',
];
}
}