protected function createOrUpdateItemFromUploadRequest($upload, $validatedRequest) { $itemValues = array('albumid' => $validatedRequest->getAlbumId(), 'name' => $validatedRequest->getName(), 'filename' => $validatedRequest->getUploadFilename(), 'extension' => $validatedRequest->getUploadFileExtension(), 'size' => $upload->getFileSize($validatedRequest->getFileInputname()), 'lastmod' => $validatedRequest->getLastModification(), 'type' => MediaType::getByExtension($validatedRequest->getUploadFileExtension()), 'mimetype' => $upload->getMimeType($validatedRequest->getFileInputname())); if ($validatedRequest->getId() !== null) { return $this->getBusiness()->edit($validatedRequest->getId(), $validatedRequest->getWebsiteId(), $itemValues); } else { return $this->getBusiness()->create($validatedRequest->getWebsiteId(), $itemValues); } }
/** * @param string $mediaId * @param string $websiteId * @param string $mediaJsonFilePath * @param array $previousMediaFile * @param array $importedAlbums * * @return array */ private function updateOrCreateMediaFromMediaJson($mediaId, $websiteId, $mediaJsonFilePath, array $previousMediaFile, &$importedAlbums) { $mediaJson = json_decode(file_get_contents($mediaJsonFilePath)); $mediaJsonArrayObject = new \ArrayObject($mediaJson); $mediaJsonValues = $mediaJsonArrayObject->getArrayCopy(); $importElement = array('id' => $mediaId, 'name' => $mediaJsonValues['name']); $insertMediaIntoDefaultAlbum = true; if (isset($mediaJsonValues['albumId'])) { $albumDao = $this->getAlbumDao(); if ($albumDao->existsAlbum($mediaJsonValues['albumId'], $websiteId)) { $insertMediaIntoDefaultAlbum = false; } } if ($insertMediaIntoDefaultAlbum) { $defaultAlbum = $this->createDefaultAlbum($websiteId, $importedAlbums); $mediaJsonValues['albumId'] = $defaultAlbum->getId(); } $columnsValues = array('id' => $mediaJsonValues['id'], 'albumid' => $mediaJsonValues['albumId'], 'name' => $mediaJsonValues['name'], 'filename' => isset($mediaJsonValues['filename']) ? $mediaJsonValues['filename'] : null, 'extension' => $mediaJsonValues['extension'], 'size' => isset($mediaJsonValues['size']) ? $mediaJsonValues['size'] : null, 'file' => isset($mediaJsonValues['file']) ? $mediaJsonValues['file'] : null, 'type' => MediaType::getByExtension($mediaJsonValues['extension']), 'mimetype' => isset($mediaJsonValues['mimetype']) ? $mediaJsonValues['mimetype'] : null); $mediaService = $this->getMediaService(); if ($mediaService->existsMedia($websiteId, $mediaId)) { $media = $mediaService->getById($mediaId, $websiteId); $this->deleteMediaFile($websiteId, $media->getFile()); if (isset($previousMediaFile['source']) && isset($previousMediaFile['destination'])) { copy($previousMediaFile['source'], $previousMediaFile['destination']); } $mediaService->edit($mediaId, $websiteId, $columnsValues); } else { if (isset($previousMediaFile['source']) && isset($previousMediaFile['destination'])) { copy($previousMediaFile['source'], $previousMediaFile['destination']); } $media = $mediaService->create($websiteId, $columnsValues, true); } return $importElement; }