/** * * {@inheritdoc} * */ public function importData(DataField $dataField, $sourceArray, $isMigration) { $migrationOptions = $dataField->getFieldType()->getMigrationOptions(); if (!$isMigration || empty($migrationOptions) || !$migrationOptions['protected']) { if (!is_array($sourceArray)) { $sourceArray = [$sourceArray]; } foreach ($sourceArray as $idx => $item) { $colItem = new DataField(); $colItem->setOrderKey($idx); $colItem->setFieldType(NULL); // it's a collection item foreach ($dataField->getFieldType()->getChildren() as $childFieldType) { /**@var FieldType $childFieldType */ if (!$childFieldType->getDeleted()) { $grandChild = new DataField(); $grandChild->setOrderKey(0); $grandChild->setParent($colItem); $grandChild->setFieldType($childFieldType); $grandChild->updateDataStructure($childFieldType); $grandChild->updateDataValue($item, $isMigration); $colItem->addChild($grandChild); } } $dataField->addChild($colItem); $colItem->setParent($dataField); } } return [$dataField->getFieldType()->getName()]; }