*/
protected function _getAssetFile($id)
{
- /** @var Asset $asset */
- $asset = Asset::find($id);
- $path = $asset->getMediaInField($asset->getAttributeValue('file_upload'))->first()->getPath();
+ $collection = $this->_getAssetCollection($id);
+ $path = $collection->first()->getPath();
$spl = new \SplFileInfo($path);
$fname = $spl->getFilename();
if (file_exists($path)) {
if (stripos($path, '.mp4') !== false) {
/** @var Media $posterMedia */
- $posterMedia = $asset->getMediaInField($asset->getAttributeValue('file_upload'))->first();
+ $posterMedia = $collection->first();
$poster = $posterMedia->getPath('poster');
if (file_exists($poster)) {
$dest = $this->wdir . str_replace('.mp4', '.jpg', $fname);
return $fname;
}
+ protected function _getAssetCollection($id)
+ {
+ /** @var Asset $asset */
+ $asset = Asset::find($id);
+ if (null === $asset) {
+ throw new \Exception('L\'élement ' . $id . ' n\'existe pas dans la médiathèque');
+ }
+ $collection = $asset->getMediaInField($asset->getAttributeValue('file_upload'));
+ if ($collection->count() === 0) {
+ throw new \Exception('L\'élement ' . $id . ' de la médiathèque ne contient aucun fichier');
+ }
+ return $collection;
+ }
+
/**
* @throws \Exception
*/
protected function _zipAssets($id)
{
- /** @var Asset $asset */
- $asset = Asset::find($id);
- $collection = $asset->getMediaInField($asset->getAttributeValue('file_upload'));
+ $collection = $this->_getAssetCollection($id);
$tmp = Files::tmpdir();
$zip = Files::tempnam($this->wdir) . '.zip';