From ef453fef560959820c485e310cd0e151854eb842 Mon Sep 17 00:00:00 2001 From: Aldarien Date: Thu, 18 Jun 2020 02:16:32 -0400 Subject: [PATCH] FIX: no se podia subir los videos --- bootstrap/web/setup.php | 11 +- common/Controller/Web/Admin/Eventos.php | 34 +++++ common/Service/MediaLoader.php | 54 +++---- public/assets/scripts/admin/eventos.js | 141 +++++++++++++++++-- resources/data/eventos.yml | 10 ++ resources/data/play.png | Bin 0 -> 14150 bytes resources/routes/web/admin/eventos.php | 10 +- resources/views/admin/eventos/show.blade.php | 130 ++++++++++++----- resources/views/evento.blade.php | 6 + 9 files changed, 317 insertions(+), 79 deletions(-) create mode 100644 resources/data/play.png diff --git a/bootstrap/web/setup.php b/bootstrap/web/setup.php index 8be9c41..12ad02b 100644 --- a/bootstrap/web/setup.php +++ b/bootstrap/web/setup.php @@ -17,15 +17,6 @@ return [ ); }, ProVM\TotalSport\Common\Service\MediaLoader::class => function(Container $c) { - $obj = new ProVM\TotalSport\Common\Service\MediaLoader($c->get('folders.images'), $c->get('urls')['images']); - $obj->setFFMpeg($c->get(FFMpeg\FFMpeg::class)); - return $obj; - }, - FFMpeg\FFMpeg::class => function(Container $c) { - $obj = null; - try { - $obj = FFMpeg\FFMpeg::create(); - } catch (\Exception $e) {} - return $obj; + return new ProVM\TotalSport\Common\Service\MediaLoader($c->get('folders.images'), $c->get('urls')['images']); } ]; diff --git a/common/Controller/Web/Admin/Eventos.php b/common/Controller/Web/Admin/Eventos.php index 278041f..c9e46d7 100644 --- a/common/Controller/Web/Admin/Eventos.php +++ b/common/Controller/Web/Admin/Eventos.php @@ -123,4 +123,38 @@ class Eventos { ->withHeader('Content-Type', 'application/json') ->withStatus(201); } + public function addVideo(Request $request, Response $response, Container $container, DataHandler $handler, MediaLoader $loader, $evento): Response { + $post = $request->getParsedBody(); + $files = $request->getUploadedFiles(); + if (count($files) == 0) { + $output = [ + 'informacion' => '', + 'evento' => $evento, + 'estado' => false + ]; + $response->getBody()->write(json_encode($output)); + return $response->withHeader('Location', implode('/', [ + $container->get('urls')['admin'], + 'evento', + $evento + ])); + } + $file = $files['video']; + $eventos = $handler->load('eventos'); + $e = $eventos[$evento]; + if (is_array($file)) { + $status = false; + foreach ($file as $f) { + $status |= $loader->add($e, $f); + } + } else { + $status = $loader->add($e, $file); + } + $response->getBody()->write(json_encode($output)); + return $response->withHeader('Location', implode('/', [ + $container->get('urls')['admin'], + 'evento', + $evento + ])); + } } diff --git a/common/Service/MediaLoader.php b/common/Service/MediaLoader.php index 469d4a7..eb82898 100644 --- a/common/Service/MediaLoader.php +++ b/common/Service/MediaLoader.php @@ -11,10 +11,6 @@ class MediaLoader { $this->folder = $media_folder; $this->media_url = $media_assets_url; } - protected $ffmpeg; - public function setFFMpeg(FFMpeg $ffmpeg) { - $this->ffmpeg = $ffmpeg; - } protected function getFolder($event) { return implode(DIRECTORY_SEPARATOR, [ $this->folder, @@ -40,7 +36,7 @@ class MediaLoader { case 'avi': case 'ogg': case 'webm': - return implode(PHP_EOL, [ + return implode('', [ '