load('eventos'); return $view->render($response, 'admin.eventos', compact('eventos')); } public function show(Request $request, Response $response, View $view, DataHandler $handler, MediaLoader $loader, $evento): Response { $eventos = $handler->load('eventos'); $e = $eventos[$evento]; $e->id = $evento; $imagenes = $loader->load($e); $servicios = $handler->load('servicios'); return $view->render($response, 'admin.eventos.show', ['evento' => $e, 'imagenes' => $imagenes, 'servicios' => $servicios]); } public function edit(Request $request, Response $response, Container $container, DataHandler $handler, $evento): Response { $eventos = $handler->load('eventos'); $e = $eventos[$evento]; $post = $request->getParsedBody(); $servicios = $handler->load('servicios'); $fields = ['titulo', 'empresa', 'servicio', 'descripcion']; $changed = false; foreach ($fields as $field) { if ($post[$field] != $e->{$field}) { $e->{$field} = $post[$field]; $changed = true; } } if ($changed) { $eventos[$evento] = $e; $handler->save('eventos', $eventos); } return $response->withHeader('Location', implode('/', [ $container->get('urls')['admin'], 'eventos' ])); } public function add(Request $request, Response $response, View $view, DataHandler $handler): Response { $servicios = $handler->load('servicios'); return $view->render($response, 'admin.eventos.add', compact('servicios')); } public function do_add(Request $request, Response $response, Container $container, DataHandler $handler): Response { $post = $request->getParsedBody(); $eventos = $handler->load('eventos'); $evento = [ 'titulo' => $post['titulo'], 'empresa' => $post['empresa'], 'servicio' => $post['servicio'], 'descripcion' => $post['descripcion'] ]; $eventos []= $evento; $status = $handler->save('eventos', $eventos); return $response->withHeader('Location', implode('/', [ $container->get('urls')['admin'], 'eventos' ])); } public function delete(Request $request, Response $response, Container $container, DataHandler $handler, MediaLoader $loader, $evento): Response { $eventos = $handler->load('eventos'); unset($eventos[$evento]); $eventos = array_values($eventos); $handler->save('eventos', $eventos); return $response->withHeader('Location', implode('/', [ $container->get('urls')['admin'], 'eventos' ])); } public function addImage(Request $request, Response $response, 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('Content-Type', 'application/json') ->withStatus(201); } $file = $files['imagen']; $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); } $output = [ 'informacion' => $file, 'evento' => $e, 'estado' => $status ]; $response->getBody()->write(json_encode($output)); return $response ->withHeader('Content-Type', 'application/json') ->withStatus(201); } public function deleteImage(Request $request, Response $response, DataHandler $handler, MediaLoader $loader, $evento): Response { $post = $request->getParsedBody(); $eventos = $handler->load('eventos'); $e = $eventos[$evento]; $status = $loader->delete($e, $post['media']); $output = [ 'informacion' => $post, 'evento' => $e, 'estado' => !$status ]; $response->getBody()->write(json_encode($output)); return $response ->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 ])); } }