Hallo zusammen, ich komme hier leider nicht weiter. Ich versuche in einer eigenen Extension eine File Collection anzulegen, um daraus später eine Galerie zu erstellen. Ich habe es schon geschafft die File Collection per PHP Code anzulegen, aber bei dem Versuch der Collection Dateien hinzuzufügen scheitere ich grad.
Mein Code sieht im Moment ca so aus (Den Code habe ich u.a. von news_importicsxml von Georg Ringer adaptiert): /** * @param array $importItem * @return null|\MiniFranske\FsMediaGallery\Domain\Model\MediaAlbum */ protected function initializeGalleryRecord(array $importItem) { $gallery = null; if ($importItem['import_source'] && $importItem['import_id']) { $gallery = $this->mediaAlbumRepository->findOneByImportId($importItem['import_id']); } if ($gallery === null) { $gallery = $this->objectManager->get(\MiniFranske\FsMediaGallery\Domain\Model\MediaAlbum::class); $this->mediaAlbumRepository->add($gallery); } return $gallery; } /** * @param \MiniFranske\FsMediaGallery\Domain\Model\MediaAlbum $gallery * @param array $importItem * @param array $importItemOverwrite * @return \MiniFranske\FsMediaGallery\Domain\Model\MediaAlbum */ protected function hydrateMediaImportRecord( \MiniFranske\FsMediaGallery\Domain\Model\MediaAlbum $gallery, array $importItem, array $importItemOverwrite ) { if (!empty($importItemOverwrite)) { $importItem = array_merge($importItem, $importItemOverwrite); } $gallery->setPid($importItem['pid']); $gallery->setHidden($importItem['hidden']); $gallery->setTitle($importItem['title']); $gallery->setWebdescription($importItem['title']); $gallery->setImportId($importItem['import_id']); // media relation if (is_array($importItem['media'])) { /** @var $fileCollection \TYPO3\CMS\Core\Resource\Collection\StaticFileCollection */ $fileCollection = $gallery->getFileCollectionRepository()->findByUid($gallery->getUid()); $fileCollection->loadContents(); foreach ($importItem['media'] as $mediaItem) { if (!isset($mediaItem['image']) || empty($mediaItem['image'])) { continue; } // get fileobject by given identifier (file UID, combined identifier or path/filename) $file = $this->getResourceFactory()->retrieveFileOrFolderObject($mediaItem['image']); $fileCollection->add($file); } $fileCollection->persist(); } return $gallery; } /** * Import * * @param array $importData * @param array $importItemOverwrite * @param array $settings */ public function import(array $importData, array $importItemOverwrite = [], $settings = []) { $this->settings = $settings; foreach ($importData as $importItem) { $arguments = ['importItem' => $importItem]; $return = $this->emitSignal('preHydrate', $arguments); $importItem = $return['importItem']; $gallery = $this->initializeGalleryRecord($importItem); $this->hydrateMediaImportRecord($gallery, $importItem, $importItemOverwrite); $this->persistenceManager->persistAll(); } } Habt ihr eine Idee woran es liegen kann, dass die Dateien nicht der FileCollection hinzugefügt werden? Wenn ich per debug($fileCollection) ausgeben lasse, wird mir angezeigt, dass sich theoretisch Dateien in dem Object befinden. Danke und Viele Grüße Oliver _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german