3 namespace Drupal\migrate_drupal\Plugin\migrate\source;
5 use Drupal\migrate\Row;
8 * Multiple variables source from database.
10 * Unlike the variable source plugin, this one returns one row per
14 * id = "variable_multirow",
15 * source_module = "system",
18 class VariableMultiRow extends DrupalSqlBase {
23 public function query() {
24 return $this->select('variable', 'v')
25 ->fields('v', ['name', 'value'])
26 // Cast scalars to array so we can consistently use an IN condition.
27 ->condition('name', (array) $this->configuration['variables'], 'IN');
33 public function fields() {
35 'name' => $this->t('Name'),
36 'value' => $this->t('Value'),
43 public function prepareRow(Row $row) {
44 if ($value = $row->getSourceProperty('value')) {
45 $row->setSourceProperty('value', unserialize($value));
47 return parent::prepareRow($row);
53 public function getIds() {
54 $ids['name']['type'] = 'string';