getPackage()->getPackagePath(); $registryKeyPrefix = $event->getExtensionKey(); $registryKeysToCheck = [ $registryKeyPrefix . ':Initialisation/data.t3d', $registryKeyPrefix . ':Initialisation/dataImported', ]; foreach ($registryKeysToCheck as $registryKeyToCheck) { if ($this->registry->get('extensionDataImport', $registryKeyToCheck)) { // Data was imported before -> early return return; } } $importFileToUse = null; $possibleImportFiles = [ $packagePath . 'Initialisation/data.t3d', $packagePath . 'Initialisation/data.xml', ]; foreach ($possibleImportFiles as $possibleImportFile) { if (!file_exists($possibleImportFile)) { continue; } $importFileToUse = $possibleImportFile; } if ($importFileToUse === null) { return; } try { // If the package ships its own site configurations in Initialisation/Site/, defer to // ImportSiteConfigurationsOnPackageInitialization which handles the remapping itself. if (is_dir($packagePath . 'Initialisation/Site')) { $this->importExportUtility->disableSiteConfigurationImport(); } $importResult = $this->importExportUtility->importT3DFile($importFileToUse, 0); $this->registry->set('extensionDataImport', $registryKeyPrefix . ':Initialisation/dataImported', 1); $event->addStorageEntry(__CLASS__, [ 'importResult' => $importResult, 'importFileToUse' => $importFileToUse, 'import' => $this->importExportUtility->getImport(), ]); } catch (\ErrorException $e) { $this->logger->warning($e->getMessage(), ['exception' => $e]); } } }