Field Collection Type source plugin.
Available configuration keys:
@MigrateSource(
id = "d7_field_collection_type",
source_module = "field_collection"
)
Expanded class hierarchy of FieldCollectionType
class FieldCollectionType extends DrupalSqlBase {
/**
* {@inheritdoc}
*/
public function defaultConfiguration() {
return [
'add_description' => FALSE,
] + parent::defaultConfiguration();
}
/**
* {@inheritdoc}
*/
public function query() {
$query = $this
->select('field_config', 'fc')
->fields('fc');
$query
->condition('fc.type', 'field_collection');
$query
->condition('fc.active', TRUE);
return $query;
}
/**
* {@inheritdoc}
*/
public function prepareRow(Row $row) {
$name = $row
->getSourceProperty('field_name');
// Remove field_ prefix for new bundle.
$bundle = substr($name, FieldCollection::FIELD_COLLECTION_PREFIX_LENGTH);
$row
->setSourceProperty('bundle', $bundle);
// Field collections don't have descriptions, optionally add one.
if ($this->configuration['add_description']) {
$row
->setSourceProperty('description', 'Migrated from field_collection ' . $name);
}
else {
$row
->setSourceProperty('description', '');
}
// Set label from bundle because we don't have a label in D7 field
// collections.
$row
->setSourceProperty('name', ucfirst(preg_replace('/_/', ' ', $bundle)));
return parent::prepareRow($row);
}
/**
* {@inheritdoc}
*/
public function fields() {
return [
'field_name' => $this
->t('Original field collection bundle/field_name'),
'bundle' => $this
->t('Paragraph type machine name'),
'name' => $this
->t('Paragraph type label'),
'description' => $this
->t('Paragraph type description'),
];
}
/**
* {@inheritdoc}
*/
public function getIds() {
$ids['field_name']['type'] = 'string';
return $ids;
}
/**
* {@inheritdoc}
*
* @deprecated addDescription configuration key is deprecated in 8.x-1.0 and
* will be removed prior to 9.x. Use add_description instead.
*
* @see https://www.drupal.org/project/paragraphs/issues/2911242
*/
public function setConfiguration(array $configuration) {
// Configuration keys should be snake_case, not CamelCase. Adding a BC
// layer for addDescription which should be deprecated.
if (isset($configuration['addDescription'])) {
@trigger_error("addDescription configuration key is deprecated in 8.x-1.0 and will be removed prior to 9.x. Use add_description instead. See https://www.drupal.org/project/paragraphs/issues/2911242", E_USER_DEPRECATED);
if (!isset($configuration['add_description'])) {
$configuration['add_description'] = $configuration['addDescription'];
}
unset($configuration['addDescription']);
}
parent::setConfiguration($configuration);
}
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DrupalSqlBase:: |
public | function | ||
DrupalSqlBase:: |
public | function | ||
FieldCollectionType:: |
public | function |
Overrides DrupalSqlBase:: |
|
FieldCollectionType:: |
public | function | ||
FieldCollectionType:: |
public | function | ||
FieldCollectionType:: |
public | function | ||
FieldCollectionType:: |
public | function | ||
FieldCollectionType:: |
public | function |
Overrides DrupalSqlBase:: |