Proyectos y parte de Proyecto

This commit is contained in:
2020-05-19 01:04:23 -04:00
parent 1ed3788e87
commit c5a45a1ede
38 changed files with 878 additions and 55 deletions

View File

@ -9,10 +9,6 @@ use Carbon\Carbon;
class Base {
public function __invoke(Request $request, Response $response, View $view, Container $container) {
$valor_uf = number_format(25000, 2, ',', '.');
$fecha = ucwords(Carbon::today()->locale('es')->isoFormat('D MMMM'));
$hora = Carbon::now()->format('H:i a');
$visitas = $container->get('visitas');
$aviso = true;
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
@ -37,6 +33,6 @@ class Base {
$item->imagen = '<img src="' . $container->get('urls')->images . '/' . $item->imagen . '" />';
});
$indicadores = ['uf' => 'UF', 'euro' => 'Euro', 'imacec' => 'IMACEC', 'dolar' => 'USD', 'ipc' => 'IPC', 'utm' => 'UTM', 'bitcoin' => 'BitCoin', 'libra_cobre' => 'Lb. Cu'];
return $view->render($response, 'home', compact('valor_uf', 'fecha', 'hora', 'visitas', 'aviso', 'avisos', 'destacados', 'segmentos', 'indicadores'));
return $view->render($response, 'home', compact('aviso', 'avisos', 'destacados', 'segmentos', 'indicadores'));
}
}

View File

@ -7,6 +7,71 @@ use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
class Proyectos {
public function __invoke(Request $request, Response $response, Container $container, View $view): Response {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'segmentos.json'
]);
$segmentos = json_decode(trim(file_get_contents($filename)));
return $view->render($response, 'proyectos.list', compact('segmentos'));
}
public function show(Request $request, Response $response, Container $container, View $view, $proyecto): Response {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'proyectos.json'
]);
$proyectos = json_decode(trim(file_get_contents($filename)));
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'destacados.json'
]);
$destacados = json_decode(trim(file_get_contents($filename)));
$destacado = false;
if (array_search($proyecto, $destacados) !== false) {
$destacado = true;
}
$id = $proyecto;
$proyecto = $proyectos[$proyecto];
$proyecto->destacado = $destacado;
$proyecto->id = $id;
$folder = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.public'),
'assets',
'images',
mb_strtolower($proyecto->edificio)
]);
$files = new \DirectoryIterator($folder);
$proyecto->images = [];
foreach ($files as $file) {
if ($file->isDir()) {
continue;
}
$proyecto->images []= $file->getFilename();
}
return $view->render($response, 'proyectos.show', compact('proyecto'));
}
public function segmento(Request $request, Response $response, Container $container, $segmento): Response {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'proyectos.json'
]);
$proyectos = json_decode(trim(file_get_contents($filename)));
if ($segmento != 'todo') {
$proyectos = array_filter($proyectos, function($item) use ($segmento) {
return (str_replace(' ', '_', mb_strtolower($item->segmento)) == $segmento);
});
}
$output = [
'information' => [
'segmento' => $segmento
],
'proyectos' => array_keys($proyectos)
];
$response->getBody()->write(json_encode($output));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
public function destacados(Request $request, Response $response, Container $container, $page): Response {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
@ -43,8 +108,10 @@ class Proyectos {
if (array_search($proyecto, $destacados) !== false) {
$destacado = true;
}
$id = $proyecto;
$proyecto = $proyectos[$proyecto];
$proyecto->destacado = $destacado;
return $view->render($response, 'home.destacados.ficha', compact('proyecto'));
$proyecto->id = $id;
return $view->render($response, 'proyectos.ficha', compact('proyecto'));
}
}