/**
* Drupal 7 field source from database.
*
+ * @internal
+ *
+ * This class is marked as internal and should not be extended. Use
+ * Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase instead.
+ *
* @MigrateSource(
- * id = "d7_field"
+ * id = "d7_field",
+ * source_module = "field"
* )
*/
class Field extends DrupalSqlBase {
->fields('fc')
->fields('fci', ['entity_type'])
->condition('fc.active', 1)
+ ->condition('fc.storage_active', 1)
->condition('fc.deleted', 0)
- ->condition('fc.storage_active', 1);
+ ->condition('fci.deleted', 0);
$query->join('field_config_instance', 'fci', 'fc.id = fci.field_id');
return $query;
*/
public function fields() {
return [
- 'field_name' => $this->t('The name of this field.'),
- 'type' => $this->t('The type of this field.'),
+ 'id' => $this->t('The field ID.'),
+ 'field_name' => $this->t('The field name.'),
+ 'type' => $this->t('The field type.'),
'module' => $this->t('The module that implements the field type.'),
- 'storage' => $this->t('The field storage.'),
+ 'active' => $this->t('The field status.'),
+ 'storage_type' => $this->t('The field storage type.'),
+ 'storage_module' => $this->t('The module that implements the field storage type.'),
+ 'storage_active' => $this->t('The field storage status.'),
'locked' => $this->t('Locked'),
+ 'data' => $this->t('The field data.'),
'cardinality' => $this->t('Cardinality'),
'translatable' => $this->t('Translatable'),
+ 'deleted' => $this->t('Deleted'),
+ 'instances' => $this->t('The field instances.'),
];
}
foreach (unserialize($row->getSourceProperty('data')) as $key => $value) {
$row->setSourceProperty($key, $value);
}
+
+ $instances = $this->select('field_config_instance', 'fci')
+ ->fields('fci')
+ ->condition('field_name', $row->getSourceProperty('field_name'))
+ ->condition('entity_type', $row->getSourceProperty('entity_type'))
+ ->execute()
+ ->fetchAll();
+ $row->setSourceProperty('instances', $instances);
+
return parent::prepareRow($row);
}