Se agregan menus

This commit is contained in:
2020-12-12 00:25:59 -03:00
parent decd1469b4
commit 8bc3037e13
43 changed files with 1802 additions and 77 deletions

View File

@ -0,0 +1,160 @@
<?php
namespace ProVM\TotalSport\Common\Controller\Web\Admin;
use Psr\Container\ContainerInterface as Container;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
use ProVM\TotalSport\Common\Service\DataHandler;
use ProVM\TotalSport\Common\Service\MediaLoader;
class Galeria {
public function __invoke(Request $request, Response $response, View $view, DataHandler $handler): Response {
$galeria = $handler->load('galeria');
return $view->render($response, 'admin.galeria', compact('galeria'));
}
public function show(Request $request, Response $response, View $view, DataHandler $handler, MediaLoader $loader, $evento): Response {
$galeria = $handler->load('galeria');
$e = $galeria[$evento];
$e->id = $evento;
$imagenes = $loader->load($e);
$servicios = $handler->load('servicios');
return $view->render($response, 'admin.galeria.show', ['evento' => $e, 'imagenes' => $imagenes, 'servicios' => $servicios]);
}
public function edit(Request $request, Response $response, Container $container, DataHandler $handler, $evento): Response {
$galeria = $handler->load('galeria');
$e = $galeria[$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) {
$galeria[$evento] = $e;
$handler->save('galeria', $galeria);
}
return $response->withHeader('Location', implode('/', [
$container->get('urls')['admin'],
'galeria'
]));
}
public function add(Request $request, Response $response, View $view, DataHandler $handler): Response {
$servicios = $handler->load('servicios');
return $view->render($response, 'admin.galeria.add', compact('servicios'));
}
public function do_add(Request $request, Response $response, Container $container, DataHandler $handler): Response {
$post = $request->getParsedBody();
$galeria = $handler->load('galeria');
$evento = [
'titulo' => $post['titulo'],
'empresa' => $post['empresa'],
'servicio' => $post['servicio'],
'descripcion' => $post['descripcion']
];
$galeria []= $evento;
$status = $handler->save('galeria', $galeria);
return $response->withHeader('Location', implode('/', [
$container->get('urls')['admin'],
'galeria'
]));
}
public function delete(Request $request, Response $response, Container $container, DataHandler $handler, MediaLoader $loader, $evento): Response {
$galeria = $handler->load('galeria');
unset($galeria[$evento]);
$galeria = array_values($galeria);
$handler->save('galeria', $galeria);
return $response->withHeader('Location', implode('/', [
$container->get('urls')['admin'],
'galeria'
]));
}
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'];
$galeria = $handler->load('galeria');
$e = $galeria[$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();
$galeria = $handler->load('galeria');
$e = $egaleria[$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'];
$galeria = $handler->load('galeria');
$e = $galeria[$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
]));
}
}

View File

@ -1,18 +1,24 @@
<?php
namespace ProVM\TotalSport\Common\Controller\Web;
use Psr\Container\ContainerInterface as Container;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
use ProVM\TotalSport\Common\Service\DataHandler;
use ProVM\TotalSport\Common\Service\MediaLoader;
class Eventos {
public function __invoke(Request $request, Response $response, View $view, DataHandler $handler, MediaLoader $loader, $evento): Response {
$eventos = $handler->load('eventos');
$e = $eventos[$evento];
$imagenes = $loader->load($e);
return $view->render($response, 'evento', ['evento' => $e, 'imagenes' => $imagenes]);
public function deportivos(Request $request, Response $response, View $view): Response {
return $view->render($response, 'eventos.deportivos');
}
public function carreras(Request $request, Response $response, View $view): Response {
return $view->render($response, 'eventos.carreras');
}
public function bienestar(Request $request, Response $response, View $view): Response {
return $view->render($response, 'eventos.bienestar');
}
public function ligas(Request $request, Response $response, View $view): Response {
return $view->render($response, 'eventos.ligas');
}
public function team(Request $request, Response $response, View $view): Response {
return $view->render($response, 'eventos.team');
}
}

View File

@ -0,0 +1,18 @@
<?php
namespace ProVM\TotalSport\Common\Controller\Web;
use Psr\Container\ContainerInterface as Container;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
use ProVM\TotalSport\Common\Service\DataHandler;
use ProVM\TotalSport\Common\Service\MediaLoader;
class Galeria {
public function __invoke(Request $request, Response $response, View $view, DataHandler $handler, MediaLoader $loader, $evento): Response {
$galeria = $handler->load('galeria');
$e = $galeria[$evento];
$imagenes = $loader->load($e);
return $view->render($response, 'evento', ['evento' => $e, 'imagenes' => $imagenes]);
}
}

View File

@ -20,13 +20,13 @@ class Home {
'contenido' => 'elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation'
];
$clientes = [];
for ($i = 0; $i < 15; $i ++) {
for ($i = 0; $i < 20; $i ++) {
$clientes[$i] = '<div class="ui image"><img src="' . $container->get('urls')['images'] . '/clientes/logo_' . str_pad($i + 1, 2, '0', \STR_PAD_LEFT) . '.jpg" /></div>';
}
$testimonios = $handler->load('testimonios');
$eventos = $handler->load('eventos');
foreach ($eventos as &$evento) {
$galeria = $handler->load('galeria');
foreach ($galeria as &$evento) {
if (!isset($evento->imagen)) {
$evento->imagen = '<img src="#" alt="Imagen no encontrada" title="Imagen no encontrada" />';
$imagenes = $loader->load($evento);
@ -39,6 +39,6 @@ class Home {
}
}
return $view->render($response, 'home', compact('banner', 'servicios', 'frase', 'clientes', 'testimonios', 'eventos'));
return $view->render($response, 'home', compact('banner', 'servicios', 'frase', 'clientes', 'testimonios', 'galeria'));
}
}

View File

@ -0,0 +1,21 @@
<?php
namespace ProVM\TotalSport\Common\Controller\Web;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
class Servicios {
public function deportivos(Request $request, Response $response, View $view): Response {
return $view->render($response, 'servicios.deportivos');
}
public function culturales(Request $request, Response $response, View $view): Response {
return $view->render($response, 'servicios.culturales');
}
public function animacion(Request $request, Response $response, View $view): Response {
return $view->render($response, 'servicios.animacion');
}
public function arriendos(Request $request, Response $response, View $view): Response {
return $view->render($response, 'servicios.arriendo');
}
}