Compare commits
20 Commits
master
...
13320628ae
Author | SHA1 | Date | |
---|---|---|---|
13320628ae | |||
24c74d2887 | |||
31f308f5c7 | |||
d0aba43371 | |||
c8ceba4776 | |||
e27cd5c68d | |||
168fbbcb09 | |||
6cc02239f9 | |||
c50385139a | |||
9b67d9bcef | |||
0660f1ab7c | |||
d2f5714291 | |||
3133a7d584 | |||
c5a45a1ede | |||
1ed3788e87 | |||
9084ea5edb | |||
fbe1e4f7e5 | |||
68fb456763 | |||
6284266d2a | |||
29fc03937a |
3
.gitignore
vendored
@ -4,10 +4,11 @@ composer.lock
|
||||
|
||||
# Environment
|
||||
.env
|
||||
/config/env/
|
||||
/bootstrap/env/
|
||||
|
||||
# Blade
|
||||
/cache/
|
||||
|
||||
# Uploads
|
||||
/public/uploads/
|
||||
/resources/data/
|
||||
|
57
bootstrap/app.php
Normal file
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
use DI\ContainerBuilder as Builder;
|
||||
use DI\Bridge\Slim\Bridge;
|
||||
|
||||
require_once 'composer.php';
|
||||
|
||||
$builder = new Builder();
|
||||
|
||||
$folders = [
|
||||
'base',
|
||||
'env'
|
||||
];
|
||||
|
||||
if (isset($__environment)) {
|
||||
$folders []= $__environment;
|
||||
}
|
||||
|
||||
$files = [
|
||||
'config',
|
||||
'setup'
|
||||
];
|
||||
|
||||
foreach ($files as $file) {
|
||||
foreach ($folders as $folder) {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
__DIR__,
|
||||
$folder,
|
||||
$file . '.php'
|
||||
]);
|
||||
if (!file_exists($filename)) {
|
||||
continue;
|
||||
}
|
||||
$builder->addDefinitions($filename);
|
||||
}
|
||||
}
|
||||
|
||||
$container = $builder->build();
|
||||
$container->set('env', $__environment);
|
||||
$app = Bridge::create($container);
|
||||
$app->setBasePath($container->get('base_url'));
|
||||
|
||||
foreach ($folders as $folder) {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
__DIR__,
|
||||
$folder,
|
||||
'middleware.php'
|
||||
]);
|
||||
if (!file_exists($filename)) {
|
||||
continue;
|
||||
}
|
||||
include_once $filename;
|
||||
}
|
||||
|
||||
include_once implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.routes'),
|
||||
'router.php'
|
||||
]);
|
9
bootstrap/base/config.php
Normal file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
return [
|
||||
'language' => 'es',
|
||||
'folders.base' => dirname(__DIR__, 2),
|
||||
'folders.resources' => DI\string(implode(DIRECTORY_SEPARATOR, ['{folders.base}', 'resources'])),
|
||||
'folders.routes' => DI\string(implode(DIRECTORY_SEPARATOR, ['{folders.resources}', 'routes'])),
|
||||
'folders.data' => DI\string(implode(DIRECTORY_SEPARATOR, ['{folders.resources}', 'data'])),
|
||||
'folders.public' => DI\string(implode(DIRECTORY_SEPARATOR, ['{folders.base}', 'public']))
|
||||
];
|
6
bootstrap/composer.php
Normal file
@ -0,0 +1,6 @@
|
||||
<?php
|
||||
require_once implode(DIRECTORY_SEPARATOR, [
|
||||
dirname(__DIR__),
|
||||
'vendor',
|
||||
'autoload.php'
|
||||
]);
|
29
bootstrap/web/config.php
Normal file
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
return [
|
||||
'folders.templates' => DI\string(implode(DIRECTORY_SEPARATOR, [
|
||||
'{folders.resources}',
|
||||
'views'
|
||||
])),
|
||||
'folders.cache' => DI\string(implode(DIRECTORY_SEPARATOR, [
|
||||
'{folders.base}',
|
||||
'cache'
|
||||
])),
|
||||
'urls.assets' => DI\string(implode('/', [
|
||||
'{urls.base}',
|
||||
'assets'
|
||||
])),
|
||||
'urls.styles' => DI\string(implode('/', [
|
||||
'{urls.assets}',
|
||||
'styles'
|
||||
])),
|
||||
'urls.scripts' => DI\string(implode('/', [
|
||||
'{urls.assets}',
|
||||
'scripts'
|
||||
])),
|
||||
'file.visits' => DI\string(implode(DIRECTORY_SEPARATOR, [
|
||||
'{folders.data}',
|
||||
'visitas.json'
|
||||
])),
|
||||
'visits.time' => 12 * 60 * 60,
|
||||
'urls.indicadores' => 'https://mindicador.cl/api'
|
||||
];
|
3
bootstrap/web/middleware.php
Normal file
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
// Global visit counter
|
||||
//$app->add(new ProVM\KI\Common\Middleware\Visits($app->getContainer()->get('file.visits'), $app->getContainer()->get('visits.time')));
|
77
bootstrap/web/setup.php
Normal file
@ -0,0 +1,77 @@
|
||||
<?php
|
||||
use Psr\Container\ContainerInterface as Container;
|
||||
use Carbon\Carbon;
|
||||
|
||||
return [
|
||||
'urls' => function(Container $c) {
|
||||
return (object) [
|
||||
'base' => $c->get('base_url'),
|
||||
'facebook' => '',
|
||||
'linkedin' => '',
|
||||
'twitter' => '',
|
||||
'youtube' => '',
|
||||
'assets' => $c->get('urls.assets'),
|
||||
'images' => implode('/', [$c->get('urls.assets'), 'images']),
|
||||
'styles' => $c->get('urls.styles'),
|
||||
'scripts' => $c->get('urls.scripts'),
|
||||
'admin' => implode('/', [$c->get('urls.base'), 'admin'])
|
||||
];
|
||||
},
|
||||
'assets' => function(Container $c) {
|
||||
return (object) [
|
||||
'styles' => [
|
||||
'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/semantic.min.css',
|
||||
implode(DIRECTORY_SEPARATOR, [
|
||||
$c->get('urls.styles'),
|
||||
'main.css'
|
||||
])
|
||||
],
|
||||
'fonts' => [
|
||||
'text/css' => [
|
||||
'https://fonts.googleapis.com/css2?family=Roboto&display=swap',
|
||||
'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/themes/default/assets/fonts/brand-icons.woff',
|
||||
'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/themes/default/assets/fonts/brand-icons.woff2',
|
||||
'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/themes/default/assets/fonts/icons.woff',
|
||||
'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/themes/default/assets/fonts/icons.woff2',
|
||||
'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/themes/default/assets/fonts/outline-icons.woff',
|
||||
'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/themes/default/assets/fonts/outline-icons.woff2'
|
||||
]
|
||||
],
|
||||
'scripts' => [
|
||||
'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js',
|
||||
'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/semantic.min.js'
|
||||
]
|
||||
];
|
||||
},
|
||||
'visitas' => function(Container $c) {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$c->get('folders.data'),
|
||||
'visitas.json'
|
||||
]);
|
||||
$file = json_decode(trim(file_get_contents($filename)));
|
||||
return $file->visits;
|
||||
},
|
||||
Slim\Views\Blade::class => function(Container $c) {
|
||||
return new Slim\Views\Blade(
|
||||
$c->get('folders.templates'),
|
||||
$c->get('folders.cache'),
|
||||
null,
|
||||
[
|
||||
'page_language' => $c->get('language'),
|
||||
'urls' => $c->get('urls'),
|
||||
'assets' => $c->get('assets'),
|
||||
'header' => (object) [
|
||||
'fecha' => ucwords(Carbon::today()->locale('es')->isoFormat('D MMMM YYYY')),
|
||||
'hora' => Carbon::now()->format('H:i a'),
|
||||
'uf' => $c->get('ProVM\KI\Common\Service\Indicadores')->get('uf', Carbon::today())->valor
|
||||
],
|
||||
'footer' => (object) [
|
||||
'visitas' => $c->get('visitas')
|
||||
]
|
||||
]
|
||||
);
|
||||
},
|
||||
ProVM\KI\Common\Service\Indicadores::class => function(Container $c) {
|
||||
return new ProVM\KI\Common\Service\Indicadores($c->get('urls.indicadores'));
|
||||
}
|
||||
];
|
90
common/Controller/Web/Admin/Faq.php
Normal file
@ -0,0 +1,90 @@
|
||||
<?php
|
||||
namespace ProVM\KI\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;
|
||||
|
||||
class Faq {
|
||||
public function __invoke(Request $request, Response $response, View $view, Container $container) {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'faqs.json'
|
||||
]);
|
||||
$faqs = json_decode(trim(file_get_contents($filename)));
|
||||
return $view->render($response, 'admin.faq', compact('faqs'));
|
||||
}
|
||||
public function add(Request $request, Response $response, Container $container) {
|
||||
$post = $request->getParsedBody();
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'faqs.json'
|
||||
]);
|
||||
$faqs = json_decode(trim(file_get_contents($filename)));
|
||||
|
||||
$faq = (object) [
|
||||
'titulo' => '',
|
||||
'contenido' => ''
|
||||
];
|
||||
if (isset($post['id']) and isset($faqs[$post['id']])) {
|
||||
$faq = $faqs[$post['id']];
|
||||
}
|
||||
|
||||
$changed = false;
|
||||
foreach ($faq as $k => $v) {
|
||||
if ($v != $post[$k]) {
|
||||
$faq->$k = $post[$k];
|
||||
$changed = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($post['id'])) {
|
||||
$faqs[$post['id']] = $faq;
|
||||
} else {
|
||||
$faqs []= $faq;
|
||||
}
|
||||
|
||||
$status = false;
|
||||
if ($changed) {
|
||||
$faqs = array_values($faqs);
|
||||
$status = (file_put_contents($filename, json_encode($faqs, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES)) !== false);
|
||||
}
|
||||
|
||||
$output = [
|
||||
'informacion' => $post,
|
||||
'estado' => $status,
|
||||
'faqs' => $faqs
|
||||
];
|
||||
$response->getBody()->write(json_encode($output));
|
||||
return $response
|
||||
->withHeader('Content-Type', 'application/json')
|
||||
->withStatus(201);
|
||||
}
|
||||
public function delete(Request $request, Response $response, Container $container) {
|
||||
$post = $request->getParsedBody();
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'faqs.json'
|
||||
]);
|
||||
$faqs = json_decode(trim(file_get_contents($filename)));
|
||||
|
||||
$status = false;
|
||||
if (isset($post['id']) and isset($faqs[$post['id']])) {
|
||||
unset($faqs[$post['id']]);
|
||||
|
||||
$faqs = array_values($faqs);
|
||||
$status = (file_put_contents($filename, json_encode($faqs, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES)) !== false);
|
||||
}
|
||||
|
||||
$output = [
|
||||
'informacion' => $post,
|
||||
'estado' => $status,
|
||||
'faqs' => $faqs
|
||||
];
|
||||
$response->getBody()->write(json_encode($output));
|
||||
return $response
|
||||
->withHeader('Content-Type', 'application/json')
|
||||
->withStatus(201);
|
||||
}
|
||||
}
|
121
common/Controller/Web/Admin/Home.php
Normal file
@ -0,0 +1,121 @@
|
||||
<?php
|
||||
namespace ProVM\KI\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;
|
||||
|
||||
class Home {
|
||||
public function __invoke(Request $request, Response $response, View $view, Container $container): Response {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'avisos.json'
|
||||
]);
|
||||
$avisos = json_decode(trim(file_get_contents($filename)));
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'resumen.json'
|
||||
]);
|
||||
$resumen = json_decode(trim(file_get_contents($filename)));
|
||||
return $view->render($response, 'admin.home', compact('avisos', 'resumen'));
|
||||
}
|
||||
public function add(Request $request, Response $response, Container $container): Response {
|
||||
$post = $request->getParsedBody();
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'avisos.json'
|
||||
]);
|
||||
$avisos = json_decode(trim(file_get_contents($filename)));
|
||||
|
||||
if (isset($post['estado'])) {
|
||||
$avisos->activo = (bool) $post['estado'];
|
||||
} else {
|
||||
$aviso = (object) [
|
||||
'titulo' => '',
|
||||
'contenido' => ''
|
||||
];
|
||||
if (isset($post['id'])) {
|
||||
$aviso = $avisos->avisos[$post['id']];
|
||||
}
|
||||
|
||||
foreach ($aviso as $k => $v) {
|
||||
if ($v != $post[$k]) {
|
||||
$aviso->$k = $post[$k];
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($post['id'])) {
|
||||
$avisos->avisos[$post['id']] = $aviso;
|
||||
} else {
|
||||
$avisos->avisos []= $aviso;
|
||||
}
|
||||
}
|
||||
|
||||
$status = (file_put_contents($filename, json_encode($avisos, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES)) !== false);
|
||||
|
||||
$output = [
|
||||
'informacion' => $post,
|
||||
'estado' => $status,
|
||||
'avisos' => $avisos
|
||||
];
|
||||
$response->getBody()->write(json_encode($output));
|
||||
return $response
|
||||
->withHeader('Content-Type', 'application/json')
|
||||
->withStatus(201);
|
||||
}
|
||||
public function delete(Request $request, Response $response, Container $container): Response {
|
||||
$post = $request->getParsedBody();
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'avisos.json'
|
||||
]);
|
||||
$avisos = json_decode(trim(file_get_contents($filename)));
|
||||
|
||||
if (isset($avisos->avisos[$post['id']])) {
|
||||
unset($avisos->avisos[$post['id']]);
|
||||
$avisos->avisos = array_values($avisos->avisos);
|
||||
}
|
||||
|
||||
$status = (file_put_contents($filename, json_encode($avisos, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES)) !== false);
|
||||
|
||||
$output = [
|
||||
'informacion' => $post,
|
||||
'estado' => $status,
|
||||
'avisos' => $avisos
|
||||
];
|
||||
$response->getBody()->write(json_encode($output));
|
||||
return $response
|
||||
->withHeader('Content-Type', 'application/json')
|
||||
->withStatus(201);
|
||||
}
|
||||
public function edit(Request $request, Response $response, Container $container): Response {
|
||||
$post = $request->getParsedBody();
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'resumen.json'
|
||||
]);
|
||||
$resumen = json_decode(trim(file_get_contents($filename)));
|
||||
|
||||
$ind = $resumen[$post['id']];
|
||||
|
||||
foreach ($ind as $k => $v) {
|
||||
if ($v != $post[$k]) {
|
||||
$ind->$k = $post[$k];
|
||||
}
|
||||
}
|
||||
$resumen[$post['id']] = $ind;
|
||||
|
||||
$status = (file_put_contents($filename, json_encode($resumen, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES)) !== false);
|
||||
|
||||
$output = [
|
||||
'informacion' => $post,
|
||||
'estado' => $status,
|
||||
'resumen' => $resumen
|
||||
];
|
||||
$response->getBody()->write(json_encode($output));
|
||||
return $response
|
||||
->withHeader('Content-Type', 'application/json')
|
||||
->withStatus(201);
|
||||
}
|
||||
}
|
39
common/Controller/Web/Admin/Nosotros.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
namespace ProVM\KI\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;
|
||||
|
||||
class Nosotros {
|
||||
public function __invoke(Request $request, Response $response, View $view, Container $container) {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'nosotros.json'
|
||||
]);
|
||||
$nosotros = trim(json_decode(trim(file_get_contents($filename))));
|
||||
return $view->render($response, 'admin.nosotros', compact('nosotros'));
|
||||
}
|
||||
public function guardar(Request $request, Response $response, Container $container) {
|
||||
$post = $request->getParsedBody();
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'nosotros.json'
|
||||
]);
|
||||
$nosotros = trim(json_decode(trim(file_get_contents($filename))));
|
||||
$data = trim(json_decode(json_encode($post['nosotros'])));
|
||||
|
||||
$status = false;
|
||||
if ($nosotros != $data) {
|
||||
$status = (file_put_contents($filename, json_encode($post['nosotros'])) !== false);
|
||||
}
|
||||
$code = 301;
|
||||
if ($status) {
|
||||
$code = 302;
|
||||
}
|
||||
return $response
|
||||
->withHeader('Location', implode('/', [$container->get('urls')->admin, 'nosotros']))
|
||||
->withStatus($code);
|
||||
}
|
||||
}
|
303
common/Controller/Web/Admin/Productos.php
Normal file
@ -0,0 +1,303 @@
|
||||
<?php
|
||||
namespace ProVM\KI\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 Carbon\Carbon;
|
||||
|
||||
class Productos {
|
||||
public function __invoke(Request $request, Response $response, View $view, Container $container): Response {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'productos.json'
|
||||
]);
|
||||
$productos = json_decode(trim(file_get_contents($filename)));
|
||||
return $view->render($response, 'admin.productos', compact('productos'));
|
||||
}
|
||||
public function edit(Request $request, Response $response, View $view, Container $container, $producto): Response {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'productos.json'
|
||||
]);
|
||||
$id = $producto;
|
||||
$productos = json_decode(trim(file_get_contents($filename)));
|
||||
$producto = $productos[$producto];
|
||||
$producto->id = $id;
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'destacados.json'
|
||||
]);
|
||||
$destacados = json_decode(trim(file_get_contents($filename)));
|
||||
$destacado = false;
|
||||
if (array_search($id, $destacados) !== false) {
|
||||
$destacado = true;
|
||||
}
|
||||
$producto->destacado = $destacado;
|
||||
$folder = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.public'),
|
||||
'assets',
|
||||
'images',
|
||||
mb_strtolower($producto->nombre)
|
||||
]);
|
||||
$producto->images = [];
|
||||
if (file_exists($folder)) {
|
||||
$files = new \DirectoryIterator($folder);
|
||||
foreach ($files as $file) {
|
||||
if ($file->isDir()) {
|
||||
continue;
|
||||
}
|
||||
$producto->images []= $file->getFilename();
|
||||
}
|
||||
}
|
||||
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'segmentos.json'
|
||||
]);
|
||||
$segmentos = json_decode(trim(file_get_contents($filename)));
|
||||
return $view->render($response, 'admin.producto', compact('producto', 'segmentos'));
|
||||
}
|
||||
public function do_edit(Request $request, Response $response, Container $container, $producto): Response {
|
||||
$post = $request->getParsedBody();
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'productos.json'
|
||||
]);
|
||||
$id = $producto;
|
||||
$productos = json_decode(trim(file_get_contents($filename)));
|
||||
$producto = $productos[$producto];
|
||||
$changed = false;
|
||||
|
||||
$fields = ['nombre', 'segmento', 'direccion', 'comuna', 'ciudad', 'bono', 'rentabilidad', 'estado',
|
||||
'cuota', 'unidades', 'modelos', 'descripcion', 'entrega'];
|
||||
foreach ($fields as $field) {
|
||||
if (!isset($producto->$field) or $post[$field] != $producto->$field) {
|
||||
$producto->$field = $post[$field];
|
||||
$changed = true;
|
||||
}
|
||||
}
|
||||
$valor = number_format($post['valor'], 0, ',', '.');
|
||||
if (!isset($producto->valor) or $producto->valor != $valor) {
|
||||
$producto->valor = $valor;
|
||||
$changed = true;
|
||||
}
|
||||
$tamaño = $post['tamaño_min'] . ' - ' . $post['tamaño_max'] . ' m²';
|
||||
if (!isset($producto->tamaño) or $producto->tamaño != $tamaño) {
|
||||
$producto->tamaño = $tamaño;
|
||||
$changed = true;
|
||||
}
|
||||
|
||||
$status1 = false;
|
||||
if ($changed) {
|
||||
$productos[$id] = $producto;
|
||||
$status1 = (file_put_contents($filename, json_encode($productos, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES)) !== false);
|
||||
}
|
||||
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'destacados.json'
|
||||
]);
|
||||
$destacados = json_decode(trim(file_get_contents($filename)));
|
||||
$changed = false;
|
||||
if (isset($post['destacado']) and $post['destacado'] == 'on') {
|
||||
if (array_search($id, $destacados) === false) {
|
||||
$destacados []= $id;
|
||||
sort($destacados);
|
||||
$changed = true;
|
||||
}
|
||||
} else {
|
||||
if (($i = array_search($id, $destacados)) !== false) {
|
||||
unset($destacados[$i]);
|
||||
$destacados = array_values($destacados);
|
||||
$changed = true;
|
||||
}
|
||||
}
|
||||
$status2 = false;
|
||||
if ($changed) {
|
||||
$status2 = (file_put_contents($filename, json_encode($destacados)) !== false);
|
||||
}
|
||||
|
||||
return $response
|
||||
->withHeader('Location', implode('/', [$container->get('urls')->admin, 'productos']));
|
||||
}
|
||||
public function add(Request $request, Response $response, View $view, Container $container): Response {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'segmentos.json'
|
||||
]);
|
||||
$segmentos = json_decode(trim(file_get_contents($filename)));
|
||||
return $view->render($response, 'admin.productos.add', compact('segmentos'));
|
||||
}
|
||||
public function do_add(Request $request, Response $response, Container $container): Response {
|
||||
$post = $request->getParsedBody();
|
||||
|
||||
$producto = (object) [];
|
||||
$fields = ['nombre', 'segmento', 'direccion', 'comuna', 'ciudad', 'bono', 'rentabilidad', 'estado',
|
||||
'cuota', 'unidades', 'modelos', 'descripcion', 'entrega'];
|
||||
foreach ($fields as $field) {
|
||||
$producto->$field = $post[$field];
|
||||
}
|
||||
$valor = number_format($post['valor'], 0, ',', '.');
|
||||
$producto->valor = $valor;
|
||||
$tamaño = $post['tamaño_min'] . ' - ' . $post['tamaño_max'] . ' m²';
|
||||
$producto->tamaño = $tamaño;
|
||||
|
||||
$f = Carbon::today();
|
||||
$producto->publicacion = implode(' ', [
|
||||
$f->day,
|
||||
'de',
|
||||
ucfirst($f->locale('es')->isoFormat('MMMM')) . ',',
|
||||
$f->year
|
||||
]);
|
||||
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'productos.json'
|
||||
]);
|
||||
$productos = json_decode(trim(file_get_contents($filename)));
|
||||
$productos []= $producto;
|
||||
file_put_contents($filename, json_encode($productos, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES));
|
||||
|
||||
if (isset($post['destacado']) and $post['destacado'] == 'on') {
|
||||
$id = count($productos) - 1;
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'destacados.json'
|
||||
]);
|
||||
$destacados = json_decode(trim(file_get_contents($filename)));
|
||||
$destacados []= $id;
|
||||
sort($destacados);
|
||||
file_put_contents($filename, json_encode($destacados));
|
||||
}
|
||||
|
||||
return $response
|
||||
->withHeader('Location', implode('/', [$container->get('urls')->admin, 'productos']));
|
||||
}
|
||||
public function delete(Request $request, Response $response, Container $container): Response {
|
||||
$post = $request->getParsedBody();
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'productos.json'
|
||||
]);
|
||||
$id = $post['id'];
|
||||
$productos = json_decode(trim(file_get_contents($filename)));
|
||||
$producto = $productos[$id];
|
||||
$folder = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.public'),
|
||||
'assets',
|
||||
'images',
|
||||
mb_strtolower($producto->nombre)
|
||||
]);
|
||||
unset($productos[$id]);
|
||||
$status = false;
|
||||
$status |= (file_put_contents($filename, json_encode($productos, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES)) !== false);
|
||||
if (file_exists($folder)) {
|
||||
$status |= rmdir($folder);
|
||||
}
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'destacados.json'
|
||||
]);
|
||||
$destacados = json_decode(trim(file_get_contents($filename)));
|
||||
if (($i = array_search($id, $destacados)) !== false) {
|
||||
unset($destacados[$i]);
|
||||
$destacados = array_values($destacados);
|
||||
$status |= (file_put_contents($filename, json_encode($destacados)) !== false);
|
||||
}
|
||||
$output = [
|
||||
'information' => $post,
|
||||
'estado' => $status
|
||||
];
|
||||
$response->getBody()->write(json_encode($output));
|
||||
return $response
|
||||
->withHeader('Content-Type', 'application/json')
|
||||
->withStatus(201);
|
||||
}
|
||||
public function add_image(Request $request, Response $response, Container $container, $producto): Response {
|
||||
$post = $request->getParsedBody();
|
||||
$files = $request->getUploadedFiles();
|
||||
$file = $files['imagen'];
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'productos.json'
|
||||
]);
|
||||
$id = $producto;
|
||||
$productos = json_decode(trim(file_get_contents($filename)));
|
||||
$producto = $productos[$producto];
|
||||
$folder = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.public'),
|
||||
'assets',
|
||||
'images',
|
||||
mb_strtolower($producto->nombre)
|
||||
]);
|
||||
if (!file_exists($folder)) {
|
||||
mkdir($folder);
|
||||
}
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$folder,
|
||||
$file->getClientFilename()
|
||||
]);
|
||||
$file->moveTo($filename);
|
||||
|
||||
$output = [
|
||||
'informacion' => $id,
|
||||
'estado' => file_exists($filename)
|
||||
];
|
||||
$response->getBody()->write(json_encode($output));
|
||||
return $response
|
||||
->withHeader('Content-Type', 'application/json')
|
||||
->withStatus(201);
|
||||
}
|
||||
public function set_video(Request $request, Response $response, Container $container, $producto): Response {
|
||||
$post = $request->getParsedBody();
|
||||
$files = $request->getUploadedFiles();
|
||||
die();
|
||||
$file = $files['video'];
|
||||
$folder = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.public'),
|
||||
'assets',
|
||||
'images',
|
||||
mb_strtolower($producto->nombre)
|
||||
]);
|
||||
}
|
||||
public function delete_image(Request $request, Response $response, Container $container, $producto): Response {
|
||||
$post = $request->getParsedBody();
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'productos.json'
|
||||
]);
|
||||
$id = $producto;
|
||||
$productos = json_decode(trim(file_get_contents($filename)));
|
||||
$producto = $productos[$producto];
|
||||
$folder = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.public'),
|
||||
'assets',
|
||||
'images',
|
||||
mb_strtolower($producto->nombre)
|
||||
]);
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$folder,
|
||||
$post['imagen']
|
||||
]);
|
||||
$status = unlink($filename);
|
||||
|
||||
$output = [
|
||||
'estado' => $status
|
||||
];
|
||||
$response->getBody()->write(json_encode($output));
|
||||
return $response
|
||||
->withHeader('Content-Type', 'application/json')
|
||||
->withStatus(201);
|
||||
}
|
||||
public function delete_video(Request $request, Response $response, Container $container, $producto): Response {
|
||||
$post = $request->getParsedBody();
|
||||
$folder = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.public'),
|
||||
'assets',
|
||||
'images',
|
||||
mb_strtolower($producto->nombre)
|
||||
]);
|
||||
}
|
||||
}
|
42
common/Controller/Web/Base.php
Normal file
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
namespace ProVM\KI\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 Carbon\Carbon;
|
||||
|
||||
class Base {
|
||||
public function __invoke(Request $request, Response $response, View $view, Container $container) {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'avisos.json'
|
||||
]);
|
||||
$avisos = 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)));
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'segmentos.json'
|
||||
]);
|
||||
$segmentos = json_decode(trim(file_get_contents($filename)));
|
||||
array_walk($segmentos, function(&$item) use ($container) {
|
||||
if (!isset($item->imagen)) {
|
||||
$item->imagen = '<div class="ui placeholder"><div class="square image"></div></div>';
|
||||
return;
|
||||
}
|
||||
$item->imagen = '<img src="' . $container->get('urls')->images . '/' . $item->imagen . '" />';
|
||||
});
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'resumen.json'
|
||||
]);
|
||||
$resumen = json_decode(trim(file_get_contents($filename)));
|
||||
$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('aviso', 'avisos', 'destacados', 'segmentos', 'resumen', 'indicadores'));
|
||||
}
|
||||
}
|
12
common/Controller/Web/Contacto.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
namespace ProVM\KI\Common\Controller\Web;
|
||||
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Slim\Views\Blade as View;
|
||||
|
||||
class Contacto {
|
||||
public function __invoke(Request $request, Response $response, View $view) {
|
||||
return $view->render($response, 'contacto');
|
||||
}
|
||||
}
|
18
common/Controller/Web/Faq.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
namespace ProVM\KI\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;
|
||||
|
||||
class Faq {
|
||||
public function __invoke(Request $request, Response $response, View $view, Container $container) {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'faqs.json'
|
||||
]);
|
||||
$faqs = json_decode(trim(file_get_contents($filename)));
|
||||
return $view->render($response, 'faq', compact('faqs'));
|
||||
}
|
||||
}
|
23
common/Controller/Web/Indicadores.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
namespace ProVM\KI\Common\Controller\Web;
|
||||
|
||||
use Psr\Container\ContainerInterface as Container;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Carbon\Carbon;
|
||||
use ProVM\KI\Common\Service\Indicadores as Service;
|
||||
|
||||
class Indicadores {
|
||||
public function get(Request $request, Response $response, Container $container, Service $service, $indicador) {
|
||||
$valor = $service->get($indicador, Carbon::today());
|
||||
|
||||
$output = [
|
||||
'sim' => $indicador,
|
||||
'valor' => $valor,
|
||||
];
|
||||
$response->getBody()->write(json_encode($output));
|
||||
return $response
|
||||
->withHeader('Content-Type', 'application/json')
|
||||
->withStatus(201);
|
||||
}
|
||||
}
|
30
common/Controller/Web/Nosotros.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
namespace ProVM\KI\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;
|
||||
|
||||
class Nosotros {
|
||||
public function __invoke(Request $request, Response $response, View $view, Container $container) {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'nosotros.json'
|
||||
]);
|
||||
$nosotros = json_decode(trim(file_get_contents($filename)));
|
||||
$nosotros = $this->str_split_unicode($nosotros, strlen($nosotros) / 2, '-');
|
||||
return $view->render($response, 'nosotros', compact('nosotros'));
|
||||
}
|
||||
protected function str_split_unicode($str, $l = 0) {
|
||||
if ($l > 0) {
|
||||
$ret = array();
|
||||
$len = mb_strlen($str, "UTF-8");
|
||||
for ($i = 0; $i < $len; $i += $l) {
|
||||
$ret[] = mb_substr($str, $i, $l, "UTF-8");
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
|
||||
}
|
||||
}
|
136
common/Controller/Web/Productos.php
Normal file
@ -0,0 +1,136 @@
|
||||
<?php
|
||||
namespace ProVM\KI\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;
|
||||
|
||||
class Productos {
|
||||
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, 'productos.list', compact('segmentos'));
|
||||
}
|
||||
public function show(Request $request, Response $response, Container $container, View $view, $producto): Response {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'productos.json'
|
||||
]);
|
||||
$productos = 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($producto, $destacados) !== false) {
|
||||
$destacado = true;
|
||||
}
|
||||
$id = $producto;
|
||||
$producto = $productos[$producto];
|
||||
$producto->destacado = $destacado;
|
||||
$producto->id = $id;
|
||||
$folder = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.public'),
|
||||
'assets',
|
||||
'images',
|
||||
mb_strtolower($producto->nombre)
|
||||
]);
|
||||
$producto->images = [];
|
||||
if (file_exists($folder)) {
|
||||
$files = new \DirectoryIterator($folder);
|
||||
foreach ($files as $file) {
|
||||
if ($file->isDir()) {
|
||||
continue;
|
||||
}
|
||||
$producto->images []= $file->getFilename();
|
||||
}
|
||||
}
|
||||
return $view->render($response, 'productos.show', compact('producto'));
|
||||
}
|
||||
public function segmento(Request $request, Response $response, Container $container, $segmento): Response {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'productos.json'
|
||||
]);
|
||||
$productos = json_decode(trim(file_get_contents($filename)));
|
||||
if ($segmento != 'todo') {
|
||||
$productos = array_filter($productos, function($item) use ($segmento) {
|
||||
return (str_replace(' ', '_', mb_strtolower($item->segmento)) == $segmento);
|
||||
});
|
||||
}
|
||||
$output = [
|
||||
'information' => [
|
||||
'segmento' => $segmento
|
||||
],
|
||||
'productos' => array_keys($productos)
|
||||
];
|
||||
$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'),
|
||||
'destacados.json'
|
||||
]);
|
||||
$destacados = json_decode(trim(file_get_contents($filename)));
|
||||
$max = ceil(count($destacados) / 4);
|
||||
$output = [
|
||||
'information' => [
|
||||
'page' => $page
|
||||
],
|
||||
'destacados' => []
|
||||
];
|
||||
for ($i = ($page - 1) * 4; $i < $page * 4; $i ++) {
|
||||
$output['destacados'] []= $destacados[$i];
|
||||
}
|
||||
$response->getBody()->write(json_encode($output));
|
||||
return $response
|
||||
->withHeader('Content-Type', 'application/json')
|
||||
->withStatus(201);
|
||||
}
|
||||
public function ficha(Request $request, Response $response, Container $container, View $view, $producto): Response {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.data'),
|
||||
'productos.json'
|
||||
]);
|
||||
$productos = 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($producto, $destacados) !== false) {
|
||||
$destacado = true;
|
||||
}
|
||||
$id = $producto;
|
||||
$producto = $productos[$producto];
|
||||
$producto->destacado = $destacado;
|
||||
$producto->id = $id;
|
||||
$folder = implode(DIRECTORY_SEPARATOR, [
|
||||
$container->get('folders.public'),
|
||||
'assets',
|
||||
'images',
|
||||
mb_strtolower($producto->nombre)
|
||||
]);
|
||||
$producto->imagen = 'default.jpg';
|
||||
if (file_exists($folder)) {
|
||||
$files = new \DirectoryIterator($folder);
|
||||
foreach ($files as $file) {
|
||||
if ($file->isDir()) {
|
||||
continue;
|
||||
}
|
||||
$producto->imagen = implode('/', [mb_strtolower($producto->nombre), $file->getFilename()]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return $view->render($response, 'productos.ficha', compact('producto'));
|
||||
}
|
||||
}
|
56
common/Middleware/Visits.php
Normal file
@ -0,0 +1,56 @@
|
||||
<?php
|
||||
namespace ProVM\KI\Common\Middleware;
|
||||
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use Psr\Http\Server\RequestHandlerInterface as Handler;
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class Visits {
|
||||
protected $filename;
|
||||
protected $time;
|
||||
public function __construct(string $filename, int $visit_time) {
|
||||
$this->filename = $filename;
|
||||
$this->time = $visit_time;
|
||||
}
|
||||
public function __invoke(Request $request, Handler $handler): Response {
|
||||
$params = $request->getServerParams();
|
||||
$ip = $params['REMOTE_ADDR'];
|
||||
$fwd = 0;
|
||||
$login = Carbon::now();
|
||||
if (isset($params['HTTP_X_FORWARDED_FOR'])) {
|
||||
$fwd = $params['HTTP_X_FORWARDED_FOR'];
|
||||
}
|
||||
if (!file_exists($this->filename)) {
|
||||
$file = (object) [
|
||||
'visits' => 0,
|
||||
'ips' => []
|
||||
];
|
||||
} else {
|
||||
$file = json_decode(trim(file_get_contents($this->filename)));
|
||||
}
|
||||
$found = false;
|
||||
foreach ($file->ips as $i => $ipd) {
|
||||
if ($ipd->ip == $ip and $ipd->fwd == $fwd) {
|
||||
$t = Carbon::parse($ipd->time);
|
||||
if ($t->diffInSeconds($login) > $this->time) {
|
||||
$file->ips[$i]->time = $login->format('Y-m-d H:i:s');
|
||||
$file->visits ++;
|
||||
}
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$found) {
|
||||
$file->ips []= (object) [
|
||||
'ip' => $ip,
|
||||
'fwd' => $fwd,
|
||||
'time' => $login->format('Y-m-d H:i:s')
|
||||
];
|
||||
$file->visits ++;
|
||||
}
|
||||
file_put_contents($this->filename, json_encode($file, \JSON_PRETTY_PRINT));
|
||||
$response = $handler->handle($request);
|
||||
return $response;
|
||||
}
|
||||
}
|
57
common/Service/Indicadores.php
Normal file
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
namespace ProVM\KI\Common\Service;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class Indicadores {
|
||||
//protected $cliente;
|
||||
protected $base_uri;
|
||||
|
||||
public function __construct(string $indicadores_url) {
|
||||
$this->base_uri = $indicadores_url;
|
||||
}
|
||||
public function get(string $indicador, \DateTime $fecha) {
|
||||
$url = implode('/', [
|
||||
$this->base_uri,
|
||||
$indicador,
|
||||
$fecha->format('Y')
|
||||
]);
|
||||
if ( ini_get('allow_url_fopen') ) {
|
||||
$json = file_get_contents($url);
|
||||
} else {
|
||||
$curl = curl_init($url);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
||||
$json = curl_exec($curl);
|
||||
curl_close($curl);
|
||||
}
|
||||
$data = json_decode($json);
|
||||
$output = (object) [
|
||||
'valor' => 0,
|
||||
'fecha' => $fecha->format('d-m-Y')
|
||||
];
|
||||
if (isset($data->serie[0])) {
|
||||
$n = 0;
|
||||
foreach ($data->serie as $i => $d) {
|
||||
if (Carbon::parse($d->fecha)->format('d-m-Y') == $fecha->format('d-m-Y')) {
|
||||
$n = $i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$output->fecha = Carbon::parse($data->serie[$n]->fecha)->format('d-m-Y');
|
||||
$output->valor = $data->serie[$n]->valor;
|
||||
switch ($data->unidad_medida) {
|
||||
case 'Pesos':
|
||||
$output->valor = '$ ' . number_format($output->valor, 2, ',', '.');
|
||||
break;
|
||||
case 'Porcentaje':
|
||||
$output->valor = number_format($output->valor, 2, ',', '.') . '%';
|
||||
break;
|
||||
case 'Dólar':
|
||||
$output->valor = 'US$ ' . number_format($output->valor, 2, ',', '.');
|
||||
break;
|
||||
}
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
}
|
33
composer.json
Normal file
@ -0,0 +1,33 @@
|
||||
{
|
||||
"name": "provm/capitalinvestments",
|
||||
"description": "Web para Capital Investments",
|
||||
"type": "project",
|
||||
"require": {
|
||||
"slim/slim": "^4.5",
|
||||
"php-di/slim-bridge": "^3.0",
|
||||
"rubellum/slim-blade-view": "^0.1.1",
|
||||
"nyholm/psr7": "^1.2",
|
||||
"nyholm/psr7-server": "^0.4.1",
|
||||
"nesbot/carbon": "^2.32",
|
||||
"guzzlehttp/guzzle": "^6.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^8.5",
|
||||
"kint-php/kint": "^3.3",
|
||||
"zeuxisoo/slim-whoops": "^0.7.2",
|
||||
"joshtronic/php-loremipsum": "^1.0"
|
||||
},
|
||||
"license": "UNLICENSED",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Aldarien",
|
||||
"email": "aldarien85@gmail.com"
|
||||
}
|
||||
],
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"ProVM\\KI\\Common\\": "common",
|
||||
"ProVM\\KI\\": "src"
|
||||
}
|
||||
}
|
||||
}
|
4
public/.htaccess
Normal file
@ -0,0 +1,4 @@
|
||||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule ^ index.php [QSA,L]
|
BIN
public/assets/images/banner.jpg
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
public/assets/images/default.jpg
Normal file
After Width: | Height: | Size: 992 KiB |
BIN
public/assets/images/desarrollo inmobiliario.jpg
Normal file
After Width: | Height: | Size: 111 KiB |
BIN
public/assets/images/edificio optimus1/01_Exterior.jpg
Normal file
After Width: | Height: | Size: 2.1 MiB |
BIN
public/assets/images/edificio optimus1/02_Exterior.jpg
Normal file
After Width: | Height: | Size: 992 KiB |
BIN
public/assets/images/edificio optimus1/03_Acceso.jpg
Normal file
After Width: | Height: | Size: 2.9 MiB |
BIN
public/assets/images/edificio optimus1/04_Piscina.jpg
Normal file
After Width: | Height: | Size: 3.9 MiB |
BIN
public/assets/images/edificio optimus1/05_Sala_Multiuso.jpg
Normal file
After Width: | Height: | Size: 1.7 MiB |
BIN
public/assets/images/edificio optimus1/06_Quincho_Grande.jpg
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
public/assets/images/edificio optimus1/08_Quincho_privado.jpg
Normal file
After Width: | Height: | Size: 2.3 MiB |
BIN
public/assets/images/indicadores.jpg
Normal file
After Width: | Height: | Size: 560 KiB |
BIN
public/assets/images/industrial.jpg
Normal file
After Width: | Height: | Size: 352 KiB |
BIN
public/assets/images/logo.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
public/assets/images/loteos y parcelas.jpg
Normal file
After Width: | Height: | Size: 158 KiB |
BIN
public/assets/images/oficinas.jpg
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
public/assets/images/retail.jpg
Normal file
After Width: | Height: | Size: 1.5 MiB |
19
public/assets/styles/admin.css
Normal file
@ -0,0 +1,19 @@
|
||||
/* line 3, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/admin.scss */
|
||||
#admin {
|
||||
background-color: #f4f4f4;
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
|
||||
/* line 8, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/admin.scss */
|
||||
#admin .button {
|
||||
background-color: #429ab7;
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* line 13, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/admin.scss */
|
||||
#admin .container > .header, #admin .container > .grid > .column > .header, #admin .container > .grid > .row > .column > .header {
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=admin.css.map */
|
14
public/assets/styles/admin.map
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "admin.css",
|
||||
"sources": [
|
||||
"../../../resources/assets/sass/admin.scss",
|
||||
"../../../resources/assets/sass/_pallete.scss"
|
||||
],
|
||||
"sourcesContent": [
|
||||
"@import 'pallete';\r\n\r\n#admin {\r\n background-color: $gris-claro;\r\n padding-top: 3rem;\r\n padding-bottom: 2rem;\r\n\r\n .button {\r\n background-color: $marca;\r\n color: white;\r\n }\r\n\r\n .container>.header, .container>.grid>.column>.header, .container>.grid>.row>.column>.header {\r\n padding-bottom: 2rem;\r\n }\r\n}\r\n",
|
||||
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n$azul-oscuro: #0d103c;\r\n"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": ";AAEA,AAAA,MAAM,CAAC;EACL,gBAAgB,ECAL,OAAO;EDClB,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CAUrB;;;AAbD,AAKE,MALI,CAKJ,OAAO,CAAC;EACN,gBAAgB,ECRZ,OAAO;EDSX,KAAK,EAAE,KAAK;CACb;;;AARH,AAUE,MAVI,CAUJ,UAAU,GAAC,OAAO,EAVpB,MAAM,CAUgB,UAAU,GAAC,KAAK,GAAC,OAAO,GAAC,OAAO,EAVtD,MAAM,CAUkD,UAAU,GAAC,KAAK,GAAC,IAAI,GAAC,OAAO,GAAC,OAAO,CAAC;EAC1F,cAAc,EAAE,IAAI;CACrB"
|
||||
}
|
14
public/assets/styles/faqs.css
Normal file
@ -0,0 +1,14 @@
|
||||
/* line 3, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/faqs.scss */
|
||||
#faq {
|
||||
background-color: #a7a9ab;
|
||||
color: white;
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 4rem;
|
||||
}
|
||||
|
||||
/* line 10, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/faqs.scss */
|
||||
#faq .header, #faq .title, #faq .content {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=faqs.css.map */
|
14
public/assets/styles/faqs.map
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "faqs.css",
|
||||
"sources": [
|
||||
"../../../resources/assets/sass/faqs.scss",
|
||||
"../../../resources/assets/sass/_pallete.scss"
|
||||
],
|
||||
"sourcesContent": [
|
||||
"@import 'pallete';\r\n\r\n#faq {\r\n background-color: $gris-medio;\r\n color: white;\r\n\r\n padding-top: 3rem;\r\n padding-bottom: 4rem;\r\n\r\n .header, .title, .content {\r\n color: inherit;\r\n }\r\n}\r\n",
|
||||
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n$azul-oscuro: #0d103c;\r\n"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": ";AAEA,AAAA,IAAI,CAAC;EACH,gBAAgB,ECDL,OAAO;EDElB,KAAK,EAAE,KAAK;EAEZ,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CAKrB;;;AAVD,AAOE,IAPE,CAOF,OAAO,EAPT,IAAI,CAOO,MAAM,EAPjB,IAAI,CAOe,QAAQ,CAAC;EACxB,KAAK,EAAE,OAAO;CACf"
|
||||
}
|
188
public/assets/styles/home.css
Normal file
@ -0,0 +1,188 @@
|
||||
/* line 3, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
.header {
|
||||
color: inherit !important;
|
||||
font-family: inherit !important;
|
||||
}
|
||||
|
||||
/* line 8, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#banner {
|
||||
padding-top: 12rem;
|
||||
padding-bottom: 12rem;
|
||||
background-color: rgba(0, 0, 0, 0.6);
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 1920px auto;
|
||||
background-blend-mode: multiply;
|
||||
}
|
||||
|
||||
/* line 17, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#banner #mensaje {
|
||||
margin-bottom: 2rem;
|
||||
color: white;
|
||||
font-weight: 300;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
/* line 23, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#banner #mensaje .header {
|
||||
font-weight: 900 !important;
|
||||
font-size: 1.9rem;
|
||||
}
|
||||
|
||||
/* line 28, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#banner .button {
|
||||
font-family: inherit;
|
||||
font-weight: 900;
|
||||
background-color: #0d103c !important;
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* line 36, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#aviso {
|
||||
color: white;
|
||||
background-color: #429ab7;
|
||||
padding-top: 5rem;
|
||||
padding-bottom: 3rem;
|
||||
font-size: 1.6rem;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
/* line 44, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#aviso .header {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* line 49, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#destacados {
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 5rem;
|
||||
background-color: #a7a9ab;
|
||||
min-height: 40rem;
|
||||
}
|
||||
|
||||
/* line 55, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#destacados .header {
|
||||
color: #0d103c !important;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* line 59, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#destacados .titulo {
|
||||
font-size: 1.6rem;
|
||||
font-weight: 900;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
/* line 64, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#destacados .ficha {
|
||||
border-radius: 0;
|
||||
border: 0;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
/* line 70, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#destacados .ficha .content .segment {
|
||||
background-color: #f4f4f4 !important;
|
||||
padding-top: 0 !important;
|
||||
padding-bottom: 0 !important;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
/* line 76, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#destacados .ficha .content .button {
|
||||
font-family: inherit !important;
|
||||
font-weight: 900;
|
||||
padding-top: 0.3rem !important;
|
||||
padding-bottom: 0.3rem !important;
|
||||
background-color: #0d103c !important;
|
||||
}
|
||||
|
||||
/* line 84, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#destacados .ficha .image {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* line 87, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#destacados .ficha .overlay {
|
||||
background-color: #0d103c;
|
||||
color: white;
|
||||
opacity: 0.8;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
z-index: 999;
|
||||
top: 1.9rem;
|
||||
right: -2.2rem;
|
||||
width: 10rem;
|
||||
padding-top: .3rem;
|
||||
padding-bottom: .3rem;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
/* line 106, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#destacados .active {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* line 111, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#segmentos {
|
||||
padding-top: 4rem;
|
||||
padding-bottom: 4rem;
|
||||
}
|
||||
|
||||
/* line 115, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#segmentos .titulo {
|
||||
color: #0d103c !important;
|
||||
}
|
||||
|
||||
/* line 121, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#segmentos .grid .basic.segment .header {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
/* line 128, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#resumen {
|
||||
background-position: center;
|
||||
background-position-y: -60rem;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 2600px auto;
|
||||
min-height: 20rem;
|
||||
padding-top: 3rem;
|
||||
}
|
||||
|
||||
/* line 136, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#resumen .inverted.circular.segment {
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
}
|
||||
|
||||
/* line 141, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#indicadores {
|
||||
background-color: #a7a9ab;
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
min-height: 5rem;
|
||||
}
|
||||
|
||||
/* line 147, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#indicadores .slideshow {
|
||||
overflow: hidden;
|
||||
height: 6rem;
|
||||
}
|
||||
|
||||
/* line 151, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
|
||||
#indicadores .slideshow .slide {
|
||||
display: inline-block;
|
||||
float: left;
|
||||
background-color: white;
|
||||
padding: 0;
|
||||
margin: 1rem;
|
||||
width: 8rem !important;
|
||||
padding-top: .5rem;
|
||||
padding-bottom: .5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=home.css.map */
|
7
public/assets/styles/home.css.map
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"mappings": "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",
|
||||
"sources": ["../../../resources/assets/sass/home.scss"],
|
||||
"names": [],
|
||||
"file": "home.css"
|
||||
}
|
14
public/assets/styles/home.map
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "home.css",
|
||||
"sources": [
|
||||
"../../../resources/assets/sass/home.scss",
|
||||
"../../../resources/assets/sass/_pallete.scss"
|
||||
],
|
||||
"sourcesContent": [
|
||||
"@import 'pallete';\r\n\r\n.header {\r\n color: inherit !important;\r\n font-family: inherit !important;\r\n}\r\n\r\n#banner {\r\n padding-top: 12rem;\r\n padding-bottom: 12rem;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n background-position: center;\r\n background-repeat: no-repeat;\r\n background-size: 1920px auto;\r\n background-blend-mode: multiply;\r\n\r\n #mensaje {\r\n margin-bottom: 2rem;\r\n color: white;\r\n font-weight: 300;\r\n font-size: 1.6rem;\r\n\r\n .header {\r\n font-weight: 900 !important;\r\n font-size: 1.9rem;\r\n }\r\n }\r\n .button {\r\n font-family: inherit;\r\n font-weight: 900;\r\n background-color: $azul-oscuro !important;\r\n color: white;\r\n }\r\n}\r\n\r\n#aviso {\r\n color: white;\r\n background-color: $marca;\r\n padding-top: 5rem;\r\n padding-bottom: 3rem;\r\n font-size: 1.6rem;\r\n font-weight: 300;\r\n\r\n .header {\r\n font-weight: 900;\r\n }\r\n}\r\n\r\n#destacados {\r\n padding-top: 3rem;\r\n padding-bottom: 5rem;\r\n background-color: $gris-medio;\r\n min-height: 40rem;\r\n\r\n .header {\r\n color: $azul-oscuro !important;\r\n font-weight: 600;\r\n }\r\n .titulo {\r\n font-size: 1.6rem;\r\n font-weight: 900;\r\n padding-bottom: 1rem;\r\n }\r\n .ficha {\r\n border-radius: 0;\r\n border: 0;\r\n box-shadow: none !important;\r\n\r\n .content {\r\n .segment {\r\n background-color: $gris-claro !important;\r\n padding-top: 0 !important;\r\n padding-bottom: 0 !important;\r\n font-weight: 300;\r\n }\r\n .button {\r\n font-family: inherit !important;\r\n font-weight: 900;\r\n padding-top: 0.3rem !important;\r\n padding-bottom: 0.3rem !important;\r\n background-color: #0d103c !important;\r\n }\r\n }\r\n .image {\r\n overflow: hidden;\r\n }\r\n .overlay {\r\n background-color: #0d103c;\r\n color: white;\r\n opacity: 0.8;\r\n text-align: center;\r\n position: absolute;\r\n z-index: 999;\r\n top: 1.9rem;\r\n right: -2.2rem;\r\n width: 10rem;\r\n padding-top: .3rem;\r\n padding-bottom: .3rem;\r\n -webkit-transform: rotate(45deg);\r\n -moz-transform: rotate(45deg);\r\n -ms-transform: rotate(45deg);\r\n -o-transform: rotate(45deg);\r\n transform: rotate(45deg);\r\n }\r\n }\r\n .active {\r\n font-weight: 900;\r\n }\r\n}\r\n\r\n#segmentos {\r\n padding-top: 4rem;\r\n padding-bottom: 4rem;\r\n\r\n .titulo {\r\n color: $azul-oscuro !important;\r\n }\r\n\r\n .grid {\r\n .basic.segment {\r\n .header {\r\n margin-top: 1rem;\r\n }\r\n }\r\n }\r\n}\r\n\r\n#resumen {\r\n background-position: center;\r\n background-position-y: -60rem;\r\n background-repeat: no-repeat;\r\n background-size: 2600px auto;\r\n min-height: 20rem;\r\n padding-top: 3rem;\r\n\r\n .inverted.circular.segment {\r\n background-color: rgba(0, 0, 0, 0.8);\r\n }\r\n}\r\n\r\n#indicadores {\r\n background-color: $gris-medio;\r\n padding-top: 1rem;\r\n padding-bottom: 1rem;\r\n min-height: 5rem;\r\n\r\n .slideshow {\r\n overflow: hidden;\r\n height: 6rem;\r\n\r\n .slide {\r\n display: inline-block;\r\n float: left;\r\n background-color: white;\r\n padding: 0;\r\n margin: 1rem;\r\n width: 8rem !important;\r\n padding-top: .5rem;\r\n padding-bottom: .5rem;\r\n text-align: center;\r\n }\r\n }\r\n}\r\n",
|
||||
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n$azul-oscuro: #0d103c;\r\n"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "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"
|
||||
}
|
113
public/assets/styles/main.css
Normal file
@ -0,0 +1,113 @@
|
||||
/* line 3, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
body {
|
||||
font-family: Roboto, sans-serif !important;
|
||||
}
|
||||
|
||||
/* line 7, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
.brand {
|
||||
color: #000070 !important;
|
||||
}
|
||||
|
||||
/* line 10, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
.inverted.brand {
|
||||
background-color: #000070 !important;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
/* line 14, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
.button.brand {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
/* line 17, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
.title.image {
|
||||
width: 15rem;
|
||||
}
|
||||
|
||||
/* line 22, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
header #franja {
|
||||
background-color: #707070;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
/* line 26, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
header #franja .menu {
|
||||
color: inherit !important;
|
||||
}
|
||||
|
||||
/* line 29, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
header #franja .menu .spacer {
|
||||
width: 3rem;
|
||||
}
|
||||
|
||||
/* line 32, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
header #franja .menu .input {
|
||||
height: 1.3rem !important;
|
||||
}
|
||||
|
||||
/* line 37, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
header .menu {
|
||||
margin-top: 0 !important;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
/* line 41, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
header .menu .logo {
|
||||
font-size: 2rem;
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* line 48, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
a {
|
||||
color: inherit !important;
|
||||
}
|
||||
|
||||
/* line 52, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
.menu {
|
||||
font-family: inherit !important;
|
||||
}
|
||||
|
||||
/* line 55, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
.item {
|
||||
font-family: inherit !important;
|
||||
color: inherit !important;
|
||||
}
|
||||
|
||||
/* line 60, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
#contacto {
|
||||
background-color: #f4f4f4;
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 3rem;
|
||||
}
|
||||
|
||||
/* line 65, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
#contacto .header {
|
||||
color: #0d103c !important;
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* line 69, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
#contacto .form .button {
|
||||
background-color: #429ab7;
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* line 75, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
footer {
|
||||
background-color: #429ab7;
|
||||
color: white;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* line 80, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
footer .menu {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
/* line 83, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
|
||||
footer .menu .label {
|
||||
background-color: white !important;
|
||||
color: #429ab7 !important;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=main.css.map */
|
7
public/assets/styles/main.css.map
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"mappings": "AAAA,IAAK;EACH,WAAW,EAAE,6BAA6B;;AAG5C,MAAO;EACL,KAAK,EAAE,kBAAkB;;AAE3B,eAAgB;EACd,gBAAgB,EAAE,kBAAkB;EACpC,KAAK,EAAE,gBAAgB;;AAEzB,aAAc;EACZ,UAAU,EAAE,eAAe;;AAG7B,YAAa;EACX,KAAK,EAAE,KAAK;;AAIZ,cAAQ;EACN,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,gBAAgB;EAEvB,oBAAM;IACJ,KAAK,EAAE,kBAAkB;IAEzB,4BAAQ;MACN,KAAK,EAAE,IAAI;IAEb,2BAAO;MACL,MAAM,EAAE,iBAAiB;AAI/B,YAAM;EACJ,UAAU,EAAE,YAAY;EACxB,aAAa,EAAE,YAAY;EAE3B,kBAAM;IACJ,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,GAAG;;AAKtB,CAAE;EACA,KAAK,EAAE,kBAAkB;;AAG3B,KAAM;EACJ,WAAW,EAAE,kBAAkB;;AAEjC,KAAM;EACJ,WAAW,EAAE,kBAAkB;EAC/B,KAAK,EAAE,kBAAkB;;AAG3B,SAAU;EACR,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;EAEpB,iBAAQ;IACN,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,GAAG;EAElB,uBAAc;IACZ,gBAAgB,EAAE,OAAO;IACzB,KAAK,EAAE,KAAK;;AAIhB,MAAO;EACL,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,CAAC;EAET,YAAM;IACJ,MAAM,EAAE,YAAY;IAEpB,mBAAO;MACL,gBAAgB,EAAE,gBAAgB;MAClC,KAAK,EAAE,kBAAkB",
|
||||
"sources": ["../../../resources/assets/sass/main.scss"],
|
||||
"names": [],
|
||||
"file": "main.css"
|
||||
}
|
14
public/assets/styles/main.map
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "main.css",
|
||||
"sources": [
|
||||
"../../../resources/assets/sass/main.scss",
|
||||
"../../../resources/assets/sass/_pallete.scss"
|
||||
],
|
||||
"sourcesContent": [
|
||||
"@import 'pallete';\r\n\r\nbody {\r\n font-family: Roboto, sans-serif !important;\r\n}\r\n\r\n.brand {\r\n color: #000070 !important;\r\n}\r\n.inverted.brand {\r\n background-color: #000070 !important;\r\n color: white !important;\r\n}\r\n.button.brand {\r\n box-shadow: none !important;\r\n}\r\n.title.image {\r\n width: 15rem;\r\n}\r\n\r\nheader {\r\n #franja {\r\n background-color: #707070;\r\n color: white !important;\r\n\r\n .menu {\r\n color: inherit !important;\r\n\r\n .spacer {\r\n width: 3rem;\r\n }\r\n .input {\r\n height: 1.3rem !important;\r\n }\r\n }\r\n }\r\n .menu {\r\n margin-top: 0 !important;\r\n margin-bottom: 0 !important;\r\n\r\n .logo {\r\n font-size: 2rem;\r\n font-weight: 900;\r\n }\r\n }\r\n}\r\n\r\na {\r\n color: inherit !important;\r\n}\r\n\r\n.menu {\r\n font-family: inherit !important;\r\n}\r\n.item {\r\n font-family: inherit !important;\r\n color: inherit !important;\r\n}\r\n\r\n#contacto {\r\n background-color: $gris-claro;\r\n padding-top: 3rem;\r\n padding-bottom: 3rem;\r\n\r\n .header {\r\n color: $azul-oscuro !important;\r\n font-weight: 900;\r\n }\r\n .form .button {\r\n background-color: $marca;\r\n color: white;\r\n }\r\n}\r\n\r\nfooter {\r\n background-color: $marca;\r\n color: white;\r\n margin: 0;\r\n\r\n .menu {\r\n margin: 0 !important;\r\n\r\n .label {\r\n background-color: white !important;\r\n color: $marca !important;\r\n }\r\n }\r\n}\r\n",
|
||||
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n$azul-oscuro: #0d103c;\r\n"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": ";AAEA,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,6BAA6B;CAC3C;;;AAED,AAAA,MAAM,CAAC;EACL,KAAK,EAAE,kBAAkB;CAC1B;;;AACD,AAAA,SAAS,AAAA,MAAM,CAAC;EACd,gBAAgB,EAAE,kBAAkB;EACpC,KAAK,EAAE,gBAAgB;CACxB;;;AACD,AAAA,OAAO,AAAA,MAAM,CAAC;EACZ,UAAU,EAAE,eAAe;CAC5B;;;AACD,AAAA,MAAM,AAAA,MAAM,CAAC;EACX,KAAK,EAAE,KAAK;CACb;;;AAED,AACE,MADI,CACJ,OAAO,CAAC;EACN,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,gBAAgB;CAYxB;;;AAfH,AAKI,MALE,CACJ,OAAO,CAIL,KAAK,CAAC;EACJ,KAAK,EAAE,kBAAkB;CAQ1B;;;AAdL,AAQM,MARA,CACJ,OAAO,CAIL,KAAK,CAGH,OAAO,CAAC;EACN,KAAK,EAAE,IAAI;CACZ;;;AAVP,AAWM,MAXA,CACJ,OAAO,CAIL,KAAK,CAMH,MAAM,CAAC;EACL,MAAM,EAAE,iBAAiB;CAC1B;;;AAbP,AAgBE,MAhBI,CAgBJ,KAAK,CAAC;EACJ,UAAU,EAAE,YAAY;EACxB,aAAa,EAAE,YAAY;CAM5B;;;AAxBH,AAoBI,MApBE,CAgBJ,KAAK,CAIH,KAAK,CAAC;EACJ,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;CACjB;;;AAIL,AAAA,CAAC,CAAC;EACA,KAAK,EAAE,kBAAkB;CAC1B;;;AAED,AAAA,KAAK,CAAC;EACJ,WAAW,EAAE,kBAAkB;CAChC;;;AACD,AAAA,KAAK,CAAC;EACJ,WAAW,EAAE,kBAAkB;EAC/B,KAAK,EAAE,kBAAkB;CAC1B;;;AAED,AAAA,SAAS,CAAC;EACR,gBAAgB,ECzDL,OAAO;ED0DlB,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CAUrB;;;AAbD,AAKE,SALO,CAKP,OAAO,CAAC;EACN,KAAK,EC7DK,OAAO,CD6DG,UAAU;EAC9B,WAAW,EAAE,GAAG;CACjB;;;AARH,AASE,SATO,CASP,KAAK,CAAC,OAAO,CAAC;EACZ,gBAAgB,ECrEZ,OAAO;EDsEX,KAAK,EAAE,KAAK;CACb;;;AAGH,AAAA,MAAM,CAAC;EACL,gBAAgB,EC3EV,OAAO;ED4Eb,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,CAAC;CAUV;;;AAbD,AAKE,MALI,CAKJ,KAAK,CAAC;EACJ,MAAM,EAAE,YAAY;CAMrB;;;AAZH,AAQI,MARE,CAKJ,KAAK,CAGH,MAAM,CAAC;EACL,gBAAgB,EAAE,gBAAgB;EAClC,KAAK,ECpFH,OAAO,CDoFK,UAAU;CACzB"
|
||||
}
|
19
public/assets/styles/nosotros.css
Normal file
@ -0,0 +1,19 @@
|
||||
/* line 3, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/nosotros.scss */
|
||||
#nosotros {
|
||||
background-color: #a7a9ab;
|
||||
color: white;
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 4rem;
|
||||
}
|
||||
|
||||
/* line 10, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/nosotros.scss */
|
||||
#nosotros .header {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* line 13, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/nosotros.scss */
|
||||
#nosotros .column {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=nosotros.css.map */
|
14
public/assets/styles/nosotros.map
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "nosotros.css",
|
||||
"sources": [
|
||||
"../../../resources/assets/sass/nosotros.scss",
|
||||
"../../../resources/assets/sass/_pallete.scss"
|
||||
],
|
||||
"sourcesContent": [
|
||||
"@import 'pallete';\r\n\r\n#nosotros {\r\n background-color: $gris-medio;\r\n color: white;\r\n\r\n padding-top: 3rem;\r\n padding-bottom: 4rem;\r\n\r\n .header {\r\n color: inherit;\r\n }\r\n .column {\r\n text-align: justify;\r\n }\r\n}\r\n",
|
||||
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n$azul-oscuro: #0d103c;\r\n"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": ";AAEA,AAAA,SAAS,CAAC;EACR,gBAAgB,ECDL,OAAO;EDElB,KAAK,EAAE,KAAK;EAEZ,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CAQrB;;;AAbD,AAOE,SAPO,CAOP,OAAO,CAAC;EACN,KAAK,EAAE,OAAO;CACf;;;AATH,AAUE,SAVO,CAUP,OAAO,CAAC;EACN,UAAU,EAAE,OAAO;CACpB"
|
||||
}
|
2
public/assets/styles/pallete.css
Normal file
@ -0,0 +1,2 @@
|
||||
|
||||
/*# sourceMappingURL=pallete.css.map */
|
12
public/assets/styles/pallete.map
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "pallete.css",
|
||||
"sources": [
|
||||
"../../../resources/assets/sass/pallete.scss"
|
||||
],
|
||||
"sourcesContent": [
|
||||
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": ""
|
||||
}
|
130
public/assets/styles/producto.css
Normal file
@ -0,0 +1,130 @@
|
||||
/* line 3, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto {
|
||||
background-color: #a7a9ab;
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
|
||||
/* line 7, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto .titulo {
|
||||
color: #0d103c !important;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
/* line 9, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto .titulo .header {
|
||||
color: #0d103c !important;
|
||||
}
|
||||
|
||||
/* line 12, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto .titulo .direccion {
|
||||
padding-left: 2rem;
|
||||
}
|
||||
|
||||
/* line 15, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto .titulo .publicado {
|
||||
padding-top: .5rem;
|
||||
}
|
||||
|
||||
/* line 21, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #galeria {
|
||||
padding-bottom: 4rem;
|
||||
}
|
||||
|
||||
/* line 24, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #galeria > .image {
|
||||
height: 53rem;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* line 29, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #galeria > .image img {
|
||||
width: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* line 35, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #galeria #thumbnails {
|
||||
padding-top: 2rem;
|
||||
}
|
||||
|
||||
/* line 38, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #galeria #thumbnails .image {
|
||||
height: 8rem;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* line 43, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #galeria #thumbnails .image img {
|
||||
width: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* line 50, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #buscar {
|
||||
color: #404041 !important;
|
||||
padding-top: 2rem;
|
||||
}
|
||||
|
||||
/* line 54, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #buscar .header {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* line 57, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #buscar .divider {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
/* line 61, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #buscar .field input[type='text'] {
|
||||
background-color: inherit !important;
|
||||
}
|
||||
|
||||
/* line 66, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #buscar .slider .track-fill {
|
||||
background-color: #0d103c !important;
|
||||
}
|
||||
|
||||
/* line 70, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #buscar .price_label {
|
||||
margin-top: -1rem;
|
||||
float: right;
|
||||
}
|
||||
|
||||
/* line 77, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #datos .tabular .item {
|
||||
background-color: #f4f4f4 !important;
|
||||
border: thin solid white;
|
||||
}
|
||||
|
||||
/* line 81, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #datos .tabular .item:not(.active) {
|
||||
border: thin solid #f4f4f4;
|
||||
background-color: white !important;
|
||||
}
|
||||
|
||||
/* line 85, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #datos .tabular .item:last-child {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
/* line 90, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #datos .segment {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
/* line 94, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #datos .segment .informacion .row {
|
||||
border-bottom: thin dotted white;
|
||||
}
|
||||
|
||||
/* line 97, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/producto.scss */
|
||||
#producto #datos .segment .informacion .row:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=producto.css.map */
|
14
public/assets/styles/producto.map
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "producto.css",
|
||||
"sources": [
|
||||
"../../../resources/assets/sass/producto.scss",
|
||||
"../../../resources/assets/sass/_pallete.scss"
|
||||
],
|
||||
"sourcesContent": [
|
||||
"@import 'pallete';\r\n\r\n#producto {\r\n background-color: $gris-medio;\r\n padding-bottom: 2rem;\r\n\r\n .titulo {\r\n color: $azul-oscuro !important;\r\n .header {\r\n color: $azul-oscuro !important;\r\n }\r\n .direccion {\r\n padding-left: 2rem;\r\n }\r\n .publicado {\r\n padding-top: .5rem;\r\n }\r\n padding-bottom: 1rem;\r\n }\r\n\r\n #galeria {\r\n padding-bottom: 4rem;\r\n\r\n &>.image {\r\n height: 53rem;\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n img {\r\n width: 100%;\r\n vertical-align: middle;\r\n }\r\n }\r\n\r\n #thumbnails {\r\n padding-top: 2rem;\r\n\r\n .image {\r\n height: 8rem;\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n img {\r\n width: 100%;\r\n vertical-align: middle;\r\n }\r\n }\r\n }\r\n }\r\n #buscar {\r\n color: #404041 !important;\r\n padding-top: 2rem;\r\n\r\n .header {\r\n color: inherit;\r\n }\r\n .divider {\r\n background-color: white;\r\n }\r\n .field {\r\n input[type='text'] {\r\n background-color: inherit !important;\r\n }\r\n }\r\n .slider {\r\n .track-fill {\r\n background-color: #0d103c !important;\r\n }\r\n }\r\n .price_label {\r\n margin-top: -1rem;\r\n float: right;\r\n }\r\n }\r\n #datos {\r\n .tabular {\r\n .item {\r\n background-color: $gris-claro !important;\r\n border: thin solid white;\r\n\r\n &:not(.active) {\r\n border: thin solid $gris-claro;\r\n background-color: white !important;\r\n }\r\n &:last-child {\r\n margin-left: 1rem;\r\n }\r\n }\r\n }\r\n .segment {\r\n border: none !important;\r\n\r\n .informacion {\r\n .row {\r\n border-bottom: thin dotted white;\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",
|
||||
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n$azul-oscuro: #0d103c;\r\n"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": ";AAEA,AAAA,SAAS,CAAC;EACR,gBAAgB,ECDL,OAAO;EDElB,cAAc,EAAE,IAAI;CAmGrB;;;AArGD,AAIE,SAJO,CAIP,OAAO,CAAC;EACN,KAAK,ECHK,OAAO,CDGG,UAAU;EAU9B,cAAc,EAAE,IAAI;CACrB;;;AAhBH,AAMI,SANK,CAIP,OAAO,CAEL,OAAO,CAAC;EACN,KAAK,ECLG,OAAO,CDKK,UAAU;CAC/B;;;AARL,AASI,SATK,CAIP,OAAO,CAKL,UAAU,CAAC;EACT,YAAY,EAAE,IAAI;CACnB;;;AAXL,AAYI,SAZK,CAIP,OAAO,CAQL,UAAU,CAAC;EACT,WAAW,EAAE,KAAK;CACnB;;;AAdL,AAkBE,SAlBO,CAkBP,QAAQ,CAAC;EACP,cAAc,EAAE,IAAI;CA2BrB;;;AA9CH,AAqBI,SArBK,CAkBP,QAAQ,GAGJ,MAAM,CAAC;EACP,MAAM,EAAE,KAAK;EACb,QAAQ,EAAE,MAAM;EAChB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM;CAKpB;;;AA9BL,AA0BM,SA1BG,CAkBP,QAAQ,GAGJ,MAAM,CAKN,GAAG,CAAC;EACF,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,MAAM;CACvB;;;AA7BP,AAgCI,SAhCK,CAkBP,QAAQ,CAcN,WAAW,CAAC;EACV,WAAW,EAAE,IAAI;CAYlB;;;AA7CL,AAmCM,SAnCG,CAkBP,QAAQ,CAcN,WAAW,CAGT,MAAM,CAAC;EACL,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,MAAM;EAChB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM;CAKpB;;;AA5CP,AAwCQ,SAxCC,CAkBP,QAAQ,CAcN,WAAW,CAGT,MAAM,CAKJ,GAAG,CAAC;EACF,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,MAAM;CACvB;;;AA3CT,AA+CE,SA/CO,CA+CP,OAAO,CAAC;EACN,KAAK,EAAE,kBAAkB;EACzB,WAAW,EAAE,IAAI;CAsBlB;;;AAvEH,AAmDI,SAnDK,CA+CP,OAAO,CAIL,OAAO,CAAC;EACN,KAAK,EAAE,OAAO;CACf;;;AArDL,AAsDI,SAtDK,CA+CP,OAAO,CAOL,QAAQ,CAAC;EACP,gBAAgB,EAAE,KAAK;CACxB;;;AAxDL,AA0DM,SA1DG,CA+CP,OAAO,CAUL,MAAM,CACJ,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,EAAa;EACjB,gBAAgB,EAAE,kBAAkB;CACrC;;;AA5DP,AA+DM,SA/DG,CA+CP,OAAO,CAeL,OAAO,CACL,WAAW,CAAC;EACV,gBAAgB,EAAE,kBAAkB;CACrC;;;AAjEP,AAmEI,SAnEK,CA+CP,OAAO,CAoBL,YAAY,CAAC;EACX,UAAU,EAAE,KAAK;EACjB,KAAK,EAAE,KAAK;CACb;;;AAtEL,AA0EM,SA1EG,CAwEP,MAAM,CACJ,QAAQ,CACN,KAAK,CAAC;EACJ,gBAAgB,EC1EX,OAAO,CD0EkB,UAAU;EACxC,MAAM,EAAE,gBAAgB;CASzB;;;AArFP,AA8EQ,SA9EC,CAwEP,MAAM,CACJ,QAAQ,CACN,KAAK,AAIF,IAAK,CAAA,OAAO,EAAE;EACb,MAAM,EAAE,IAAI,CAAC,KAAK,CC9Ef,OAAO;ED+EV,gBAAgB,EAAE,gBAAgB;CACnC;;;AAjFT,AAkFQ,SAlFC,CAwEP,MAAM,CACJ,QAAQ,CACN,KAAK,AAQF,WAAW,CAAC;EACX,WAAW,EAAE,IAAI;CAClB;;;AApFT,AAuFI,SAvFK,CAwEP,MAAM,CAeJ,QAAQ,CAAC;EACP,MAAM,EAAE,eAAe;CAWxB;;;AAnGL,AA2FQ,SA3FC,CAwEP,MAAM,CAeJ,QAAQ,CAGN,YAAY,CACV,IAAI,CAAC;EACH,aAAa,EAAE,iBAAiB;CAKjC;;;AAjGT,AA8FU,SA9FD,CAwEP,MAAM,CAeJ,QAAQ,CAGN,YAAY,CACV,IAAI,AAGD,WAAW,CAAC;EACX,aAAa,EAAE,IAAI;CACpB"
|
||||
}
|
72
public/assets/styles/productos.css
Normal file
@ -0,0 +1,72 @@
|
||||
/* line 3, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/productos.scss */
|
||||
#productos {
|
||||
background-color: #a7a9ab;
|
||||
padding-top: 2rem;
|
||||
}
|
||||
|
||||
/* line 7, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/productos.scss */
|
||||
#productos .titulo {
|
||||
color: #0d103c !important;
|
||||
}
|
||||
|
||||
/* line 11, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/productos.scss */
|
||||
#productos .tabular.menu .item {
|
||||
color: #404041 !important;
|
||||
}
|
||||
|
||||
/* line 15, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/productos.scss */
|
||||
#productos .grid {
|
||||
padding-top: 2rem;
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
|
||||
/* line 19, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/productos.scss */
|
||||
#productos .grid .ficha {
|
||||
border-radius: 0;
|
||||
border: 0;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
/* line 25, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/productos.scss */
|
||||
#productos .grid .ficha .content .segment {
|
||||
background-color: #e6e6e7 !important;
|
||||
padding-top: 0 !important;
|
||||
padding-bottom: 0 !important;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
/* line 31, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/productos.scss */
|
||||
#productos .grid .ficha .content .button {
|
||||
font-family: inherit !important;
|
||||
font-weight: 900;
|
||||
padding-top: 0.3rem !important;
|
||||
padding-bottom: 0.3rem !important;
|
||||
background-color: #0d103c !important;
|
||||
}
|
||||
|
||||
/* line 39, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/productos.scss */
|
||||
#productos .grid .ficha .image {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* line 42, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/productos.scss */
|
||||
#productos .grid .ficha .overlay {
|
||||
background-color: #0d103c;
|
||||
color: white;
|
||||
opacity: 0.8;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
z-index: 999;
|
||||
top: 1.9rem;
|
||||
right: -2.2rem;
|
||||
width: 10rem;
|
||||
padding-top: .3rem;
|
||||
padding-bottom: .3rem;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=productos.css.map */
|
14
public/assets/styles/productos.map
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "productos.css",
|
||||
"sources": [
|
||||
"../../../resources/assets/sass/productos.scss",
|
||||
"../../../resources/assets/sass/_pallete.scss"
|
||||
],
|
||||
"sourcesContent": [
|
||||
"@import 'pallete';\r\n\r\n#productos {\r\n background-color: $gris-medio;\r\n padding-top: 2rem;\r\n\r\n .titulo {\r\n color: $azul-oscuro !important;\r\n }\r\n\r\n .tabular.menu .item {\r\n color: #404041 !important;\r\n }\r\n\r\n .grid {\r\n padding-top: 2rem;\r\n padding-bottom: 2rem;\r\n\r\n .ficha {\r\n border-radius: 0;\r\n border: 0;\r\n box-shadow: none !important;\r\n\r\n .content {\r\n .segment {\r\n background-color: #e6e6e7 !important;\r\n padding-top: 0 !important;\r\n padding-bottom: 0 !important;\r\n font-weight: 300;\r\n }\r\n .button {\r\n font-family: inherit !important;\r\n font-weight: 900;\r\n padding-top: 0.3rem !important;\r\n padding-bottom: 0.3rem !important;\r\n background-color: $azul-oscuro !important;\r\n }\r\n }\r\n .image {\r\n overflow: hidden;\r\n }\r\n .overlay {\r\n background-color: $azul-oscuro;\r\n color: white;\r\n opacity: 0.8;\r\n text-align: center;\r\n position: absolute;\r\n z-index: 999;\r\n top: 1.9rem;\r\n right: -2.2rem;\r\n width: 10rem;\r\n padding-top: .3rem;\r\n padding-bottom: .3rem;\r\n -webkit-transform: rotate(45deg);\r\n -moz-transform: rotate(45deg);\r\n -ms-transform: rotate(45deg);\r\n -o-transform: rotate(45deg);\r\n transform: rotate(45deg);\r\n }\r\n }\r\n }\r\n}\r\n",
|
||||
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n$azul-oscuro: #0d103c;\r\n"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": ";AAEA,AAAA,UAAU,CAAC;EACT,gBAAgB,ECDL,OAAO;EDElB,WAAW,EAAE,IAAI;CAyDlB;;;AA3DD,AAIE,UAJQ,CAIR,OAAO,CAAC;EACN,KAAK,ECHK,OAAO,CDGG,UAAU;CAC/B;;;AANH,AAQE,UARQ,CAQR,QAAQ,AAAA,KAAK,CAAC,KAAK,CAAC;EAClB,KAAK,EAAE,kBAAkB;CAC1B;;;AAVH,AAYE,UAZQ,CAYR,KAAK,CAAC;EACJ,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CA4CrB;;;AA1DH,AAgBI,UAhBM,CAYR,KAAK,CAIH,MAAM,CAAC;EACL,aAAa,EAAE,CAAC;EAChB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,eAAe;CAsC5B;;;AAzDL,AAsBQ,UAtBE,CAYR,KAAK,CAIH,MAAM,CAKJ,QAAQ,CACN,QAAQ,CAAC;EACP,gBAAgB,EAAE,kBAAkB;EACpC,WAAW,EAAE,YAAY;EACzB,cAAc,EAAE,YAAY;EAC5B,WAAW,EAAE,GAAG;CACjB;;;AA3BT,AA4BQ,UA5BE,CAYR,KAAK,CAIH,MAAM,CAKJ,QAAQ,CAON,OAAO,CAAC;EACN,WAAW,EAAE,kBAAkB;EAC/B,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,iBAAiB;EAC9B,cAAc,EAAE,iBAAiB;EACjC,gBAAgB,EC/BZ,OAAO,CD+BoB,UAAU;CAC1C;;;AAlCT,AAoCM,UApCI,CAYR,KAAK,CAIH,MAAM,CAoBJ,MAAM,CAAC;EACL,QAAQ,EAAE,MAAM;CACjB;;;AAtCP,AAuCM,UAvCI,CAYR,KAAK,CAIH,MAAM,CAuBJ,QAAQ,CAAC;EACP,gBAAgB,ECtCV,OAAO;EDuCb,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,GAAG;EACZ,UAAU,EAAE,MAAM;EAClB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,GAAG;EACZ,GAAG,EAAE,MAAM;EACX,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,KAAK;EACZ,WAAW,EAAE,KAAK;EAClB,cAAc,EAAE,KAAK;EACrB,iBAAiB,EAAE,aAAa;EAChC,cAAc,EAAE,aAAa;EAC7B,aAAa,EAAE,aAAa;EAC5B,YAAY,EAAE,aAAa;EAC3B,SAAS,EAAE,aAAa;CACzB"
|
||||
}
|
12
public/assets/styles/proyecto.map
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "producto.css",
|
||||
"sources": [
|
||||
"../../../resources/assets/sass/producto.scss"
|
||||
],
|
||||
"sourcesContent": [
|
||||
"#producto {\r\n background-color: #a7a9ab;\r\n padding-bottom: 2rem;\r\n\r\n .titulo {\r\n color: #404041;\r\n .header {\r\n color: #0d103c !important;\r\n }\r\n .direccion {\r\n padding-left: 2rem;\r\n }\r\n .publicado {\r\n padding-top: .5rem;\r\n }\r\n padding-bottom: 1rem;\r\n }\r\n\r\n #galeria {\r\n padding-bottom: 4rem;\r\n\r\n &>.image {\r\n height: 53rem;\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n img {\r\n width: 100%;\r\n vertical-align: middle;\r\n }\r\n }\r\n\r\n #thumbnails {\r\n padding-top: 2rem;\r\n\r\n .image {\r\n height: 8rem;\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n img {\r\n width: 100%;\r\n vertical-align: middle;\r\n }\r\n }\r\n }\r\n }\r\n #buscar {\r\n color: #404041 !important;\r\n padding-top: 2rem;\r\n\r\n .header {\r\n color: inherit;\r\n }\r\n .divider {\r\n background-color: white;\r\n }\r\n .field {\r\n input[type='text'] {\r\n background-color: inherit !important;\r\n }\r\n }\r\n .slider {\r\n .track-fill {\r\n background-color: #0d103c !important;\r\n }\r\n }\r\n .price_label {\r\n margin-top: -1rem;\r\n float: right;\r\n }\r\n }\r\n #datos {\r\n .tabular {\r\n .item {\r\n background-color: #a7a9ab !important;\r\n border: thin solid white;\r\n\r\n &:not(.active) {\r\n border: thin solid #a7a9ab;\r\n background-color: white !important;\r\n }\r\n &:last-child {\r\n margin-left: 1rem;\r\n }\r\n }\r\n }\r\n .segment {\r\n border: none !important;\r\n\r\n .informacion {\r\n .row {\r\n border-bottom: thin dotted white;\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "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"
|
||||
}
|
7
public/assets/styles/proyectos.css.map
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"mappings": "AAAA,UAAW;EACT,gBAAgB,EAAE,OAAO;EACzB,WAAW,EAAE,IAAI;EAEjB,kBAAQ;IACN,KAAK,EAAE,OAAO;EAGhB,8BAAoB;IAClB,KAAK,EAAE,kBAAkB;EAG3B,gBAAM;IACJ,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI;IAEpB,uBAAO;MACL,aAAa,EAAE,CAAC;MAChB,MAAM,EAAE,CAAC;MACT,UAAU,EAAE,eAAe;MAGzB,yCAAS;QACP,gBAAgB,EAAE,kBAAkB;QACpC,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE,YAAY;QAC5B,WAAW,EAAE,GAAG;MAElB,wCAAQ;QACN,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,iBAAiB;QAC9B,cAAc,EAAE,iBAAiB;QACjC,gBAAgB,EAAE,kBAAkB;MAGxC,8BAAO;QACL,QAAQ,EAAE,MAAM;MAElB,gCAAS;QACP,gBAAgB,EAAE,OAAO;QACzB,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,KAAK;QAClB,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,aAAa;QAChC,cAAc,EAAE,aAAa;QAC7B,aAAa,EAAE,aAAa;QAC5B,YAAY,EAAE,aAAa;QAC3B,SAAS,EAAE,aAAa",
|
||||
"sources": ["../../../resources/assets/sass/productos.scss"],
|
||||
"names": [],
|
||||
"file": "productos.css"
|
||||
}
|
12
public/assets/styles/proyectos.map
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "productos.css",
|
||||
"sources": [
|
||||
"../../../resources/assets/sass/productos.scss"
|
||||
],
|
||||
"sourcesContent": [
|
||||
"#productos {\r\n background-color: #a7a9ab;\r\n padding-top: 2rem;\r\n\r\n .titulo {\r\n color: #0d103c;\r\n }\r\n\r\n .tabular.menu .item {\r\n color: #404041 !important;\r\n }\r\n\r\n .grid {\r\n padding-top: 2rem;\r\n padding-bottom: 2rem;\r\n\r\n .ficha {\r\n border-radius: 0;\r\n border: 0;\r\n box-shadow: none !important;\r\n\r\n .content {\r\n .segment {\r\n background-color: #e6e6e7 !important;\r\n padding-top: 0 !important;\r\n padding-bottom: 0 !important;\r\n font-weight: 300;\r\n }\r\n .button {\r\n font-family: inherit !important;\r\n font-weight: 900;\r\n padding-top: 0.3rem !important;\r\n padding-bottom: 0.3rem !important;\r\n background-color: #0d103c !important;\r\n }\r\n }\r\n .image {\r\n overflow: hidden;\r\n }\r\n .overlay {\r\n background-color: #0d103c;\r\n color: white;\r\n opacity: 0.8;\r\n text-align: center;\r\n position: absolute;\r\n z-index: 999;\r\n top: 1.9rem;\r\n right: -2.2rem;\r\n width: 10rem;\r\n padding-top: .3rem;\r\n padding-bottom: .3rem;\r\n -webkit-transform: rotate(45deg);\r\n -moz-transform: rotate(45deg);\r\n -ms-transform: rotate(45deg);\r\n -o-transform: rotate(45deg);\r\n transform: rotate(45deg);\r\n }\r\n }\r\n }\r\n}\r\n"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": ";AAAA,AAAA,UAAU,CAAC;EACT,gBAAgB,EAAE,OAAO;EACzB,WAAW,EAAE,IAAI;CAyDlB;;;AA3DD,AAIE,UAJQ,CAIR,OAAO,CAAC;EACN,KAAK,EAAE,OAAO;CACf;;;AANH,AAQE,UARQ,CAQR,QAAQ,AAAA,KAAK,CAAC,KAAK,CAAC;EAClB,KAAK,EAAE,kBAAkB;CAC1B;;;AAVH,AAYE,UAZQ,CAYR,KAAK,CAAC;EACJ,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CA4CrB;;;AA1DH,AAgBI,UAhBM,CAYR,KAAK,CAIH,MAAM,CAAC;EACL,aAAa,EAAE,CAAC;EAChB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,eAAe;CAsC5B;;;AAzDL,AAsBQ,UAtBE,CAYR,KAAK,CAIH,MAAM,CAKJ,QAAQ,CACN,QAAQ,CAAC;EACP,gBAAgB,EAAE,kBAAkB;EACpC,WAAW,EAAE,YAAY;EACzB,cAAc,EAAE,YAAY;EAC5B,WAAW,EAAE,GAAG;CACjB;;;AA3BT,AA4BQ,UA5BE,CAYR,KAAK,CAIH,MAAM,CAKJ,QAAQ,CAON,OAAO,CAAC;EACN,WAAW,EAAE,kBAAkB;EAC/B,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,iBAAiB;EAC9B,cAAc,EAAE,iBAAiB;EACjC,gBAAgB,EAAE,kBAAkB;CACrC;;;AAlCT,AAoCM,UApCI,CAYR,KAAK,CAIH,MAAM,CAoBJ,MAAM,CAAC;EACL,QAAQ,EAAE,MAAM;CACjB;;;AAtCP,AAuCM,UAvCI,CAYR,KAAK,CAIH,MAAM,CAuBJ,QAAQ,CAAC;EACP,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,GAAG;EACZ,UAAU,EAAE,MAAM;EAClB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,GAAG;EACZ,GAAG,EAAE,MAAM;EACX,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,KAAK;EACZ,WAAW,EAAE,KAAK;EAClB,cAAc,EAAE,KAAK;EACrB,iBAAiB,EAAE,aAAa;EAChC,cAAc,EAAE,aAAa;EAC7B,aAAa,EAAE,aAAa;EAC5B,YAAY,EAAE,aAAa;EAC3B,SAAS,EAAE,aAAa;CACzB"
|
||||
}
|
10
public/index.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
$__environment = 'web';
|
||||
|
||||
require_once realpath(implode(DIRECTORY_SEPARATOR, [
|
||||
dirname(__DIR__),
|
||||
'bootstrap',
|
||||
'app.php'
|
||||
]));
|
||||
|
||||
$app->run();
|
5
resources/assets/sass/_pallete.scss
Normal file
@ -0,0 +1,5 @@
|
||||
$marca: #429ab7;
|
||||
$gris-oscuro: #808284;
|
||||
$gris-medio: #a7a9ab;
|
||||
$gris-claro: #f4f4f4;
|
||||
$azul-oscuro: #0d103c;
|
16
resources/assets/sass/admin.scss
Normal file
@ -0,0 +1,16 @@
|
||||
@import 'pallete';
|
||||
|
||||
#admin {
|
||||
background-color: $gris-claro;
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 2rem;
|
||||
|
||||
.button {
|
||||
background-color: $marca;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.container>.header, .container>.grid>.column>.header, .container>.grid>.row>.column>.header {
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
}
|
13
resources/assets/sass/faqs.scss
Normal file
@ -0,0 +1,13 @@
|
||||
@import 'pallete';
|
||||
|
||||
#faq {
|
||||
background-color: $gris-medio;
|
||||
color: white;
|
||||
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 4rem;
|
||||
|
||||
.header, .title, .content {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
163
resources/assets/sass/home.scss
Normal file
@ -0,0 +1,163 @@
|
||||
@import 'pallete';
|
||||
|
||||
.header {
|
||||
color: inherit !important;
|
||||
font-family: inherit !important;
|
||||
}
|
||||
|
||||
#banner {
|
||||
padding-top: 12rem;
|
||||
padding-bottom: 12rem;
|
||||
background-color: rgba(0, 0, 0, 0.6);
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 1920px auto;
|
||||
background-blend-mode: multiply;
|
||||
|
||||
#mensaje {
|
||||
margin-bottom: 2rem;
|
||||
color: white;
|
||||
font-weight: 300;
|
||||
font-size: 1.6rem;
|
||||
|
||||
.header {
|
||||
font-weight: 900 !important;
|
||||
font-size: 1.9rem;
|
||||
}
|
||||
}
|
||||
.button {
|
||||
font-family: inherit;
|
||||
font-weight: 900;
|
||||
background-color: $azul-oscuro !important;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
#aviso {
|
||||
color: white;
|
||||
background-color: $marca;
|
||||
padding-top: 5rem;
|
||||
padding-bottom: 3rem;
|
||||
font-size: 1.6rem;
|
||||
font-weight: 300;
|
||||
|
||||
.header {
|
||||
font-weight: 900;
|
||||
}
|
||||
}
|
||||
|
||||
#destacados {
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 5rem;
|
||||
background-color: $gris-medio;
|
||||
min-height: 40rem;
|
||||
|
||||
.header {
|
||||
color: $azul-oscuro !important;
|
||||
font-weight: 600;
|
||||
}
|
||||
.titulo {
|
||||
font-size: 1.6rem;
|
||||
font-weight: 900;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
.ficha {
|
||||
border-radius: 0;
|
||||
border: 0;
|
||||
box-shadow: none !important;
|
||||
|
||||
.content {
|
||||
.segment {
|
||||
background-color: $gris-claro !important;
|
||||
padding-top: 0 !important;
|
||||
padding-bottom: 0 !important;
|
||||
font-weight: 300;
|
||||
}
|
||||
.button {
|
||||
font-family: inherit !important;
|
||||
font-weight: 900;
|
||||
padding-top: 0.3rem !important;
|
||||
padding-bottom: 0.3rem !important;
|
||||
background-color: #0d103c !important;
|
||||
}
|
||||
}
|
||||
.image {
|
||||
overflow: hidden;
|
||||
}
|
||||
.overlay {
|
||||
background-color: #0d103c;
|
||||
color: white;
|
||||
opacity: 0.8;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
z-index: 999;
|
||||
top: 1.9rem;
|
||||
right: -2.2rem;
|
||||
width: 10rem;
|
||||
padding-top: .3rem;
|
||||
padding-bottom: .3rem;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
}
|
||||
.active {
|
||||
font-weight: 900;
|
||||
}
|
||||
}
|
||||
|
||||
#segmentos {
|
||||
padding-top: 4rem;
|
||||
padding-bottom: 4rem;
|
||||
|
||||
.titulo {
|
||||
color: $azul-oscuro !important;
|
||||
}
|
||||
|
||||
.grid {
|
||||
.basic.segment {
|
||||
.header {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#resumen {
|
||||
background-position: center;
|
||||
background-position-y: -60rem;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 2600px auto;
|
||||
min-height: 20rem;
|
||||
padding-top: 3rem;
|
||||
|
||||
.inverted.circular.segment {
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
}
|
||||
}
|
||||
|
||||
#indicadores {
|
||||
background-color: $gris-medio;
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
min-height: 5rem;
|
||||
|
||||
.slideshow {
|
||||
overflow: hidden;
|
||||
height: 6rem;
|
||||
|
||||
.slide {
|
||||
display: inline-block;
|
||||
float: left;
|
||||
background-color: white;
|
||||
padding: 0;
|
||||
margin: 1rem;
|
||||
width: 8rem !important;
|
||||
padding-top: .5rem;
|
||||
padding-bottom: .5rem;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
88
resources/assets/sass/main.scss
Normal file
@ -0,0 +1,88 @@
|
||||
@import 'pallete';
|
||||
|
||||
body {
|
||||
font-family: Roboto, sans-serif !important;
|
||||
}
|
||||
|
||||
.brand {
|
||||
color: #000070 !important;
|
||||
}
|
||||
.inverted.brand {
|
||||
background-color: #000070 !important;
|
||||
color: white !important;
|
||||
}
|
||||
.button.brand {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.title.image {
|
||||
width: 15rem;
|
||||
}
|
||||
|
||||
header {
|
||||
#franja {
|
||||
background-color: #707070;
|
||||
color: white !important;
|
||||
|
||||
.menu {
|
||||
color: inherit !important;
|
||||
|
||||
.spacer {
|
||||
width: 3rem;
|
||||
}
|
||||
.input {
|
||||
height: 1.3rem !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
.menu {
|
||||
margin-top: 0 !important;
|
||||
margin-bottom: 0 !important;
|
||||
|
||||
.logo {
|
||||
font-size: 2rem;
|
||||
font-weight: 900;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit !important;
|
||||
}
|
||||
|
||||
.menu {
|
||||
font-family: inherit !important;
|
||||
}
|
||||
.item {
|
||||
font-family: inherit !important;
|
||||
color: inherit !important;
|
||||
}
|
||||
|
||||
#contacto {
|
||||
background-color: $gris-claro;
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 3rem;
|
||||
|
||||
.header {
|
||||
color: $azul-oscuro !important;
|
||||
font-weight: 900;
|
||||
}
|
||||
.form .button {
|
||||
background-color: $marca;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
background-color: $marca;
|
||||
color: white;
|
||||
margin: 0;
|
||||
|
||||
.menu {
|
||||
margin: 0 !important;
|
||||
|
||||
.label {
|
||||
background-color: white !important;
|
||||
color: $marca !important;
|
||||
}
|
||||
}
|
||||
}
|
16
resources/assets/sass/nosotros.scss
Normal file
@ -0,0 +1,16 @@
|
||||
@import 'pallete';
|
||||
|
||||
#nosotros {
|
||||
background-color: $gris-medio;
|
||||
color: white;
|
||||
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 4rem;
|
||||
|
||||
.header {
|
||||
color: inherit;
|
||||
}
|
||||
.column {
|
||||
text-align: justify;
|
||||
}
|
||||
}
|
104
resources/assets/sass/producto.scss
Normal file
@ -0,0 +1,104 @@
|
||||
@import 'pallete';
|
||||
|
||||
#producto {
|
||||
background-color: $gris-medio;
|
||||
padding-bottom: 2rem;
|
||||
|
||||
.titulo {
|
||||
color: $azul-oscuro !important;
|
||||
.header {
|
||||
color: $azul-oscuro !important;
|
||||
}
|
||||
.direccion {
|
||||
padding-left: 2rem;
|
||||
}
|
||||
.publicado {
|
||||
padding-top: .5rem;
|
||||
}
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
#galeria {
|
||||
padding-bottom: 4rem;
|
||||
|
||||
&>.image {
|
||||
height: 53rem;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
img {
|
||||
width: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
#thumbnails {
|
||||
padding-top: 2rem;
|
||||
|
||||
.image {
|
||||
height: 8rem;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
img {
|
||||
width: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#buscar {
|
||||
color: #404041 !important;
|
||||
padding-top: 2rem;
|
||||
|
||||
.header {
|
||||
color: inherit;
|
||||
}
|
||||
.divider {
|
||||
background-color: white;
|
||||
}
|
||||
.field {
|
||||
input[type='text'] {
|
||||
background-color: inherit !important;
|
||||
}
|
||||
}
|
||||
.slider {
|
||||
.track-fill {
|
||||
background-color: #0d103c !important;
|
||||
}
|
||||
}
|
||||
.price_label {
|
||||
margin-top: -1rem;
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
#datos {
|
||||
.tabular {
|
||||
.item {
|
||||
background-color: $gris-claro !important;
|
||||
border: thin solid white;
|
||||
|
||||
&:not(.active) {
|
||||
border: thin solid $gris-claro;
|
||||
background-color: white !important;
|
||||
}
|
||||
&:last-child {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
.segment {
|
||||
border: none !important;
|
||||
|
||||
.informacion {
|
||||
.row {
|
||||
border-bottom: thin dotted white;
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
62
resources/assets/sass/productos.scss
Normal file
@ -0,0 +1,62 @@
|
||||
@import 'pallete';
|
||||
|
||||
#productos {
|
||||
background-color: $gris-medio;
|
||||
padding-top: 2rem;
|
||||
|
||||
.titulo {
|
||||
color: $azul-oscuro !important;
|
||||
}
|
||||
|
||||
.tabular.menu .item {
|
||||
color: #404041 !important;
|
||||
}
|
||||
|
||||
.grid {
|
||||
padding-top: 2rem;
|
||||
padding-bottom: 2rem;
|
||||
|
||||
.ficha {
|
||||
border-radius: 0;
|
||||
border: 0;
|
||||
box-shadow: none !important;
|
||||
|
||||
.content {
|
||||
.segment {
|
||||
background-color: #e6e6e7 !important;
|
||||
padding-top: 0 !important;
|
||||
padding-bottom: 0 !important;
|
||||
font-weight: 300;
|
||||
}
|
||||
.button {
|
||||
font-family: inherit !important;
|
||||
font-weight: 900;
|
||||
padding-top: 0.3rem !important;
|
||||
padding-bottom: 0.3rem !important;
|
||||
background-color: $azul-oscuro !important;
|
||||
}
|
||||
}
|
||||
.image {
|
||||
overflow: hidden;
|
||||
}
|
||||
.overlay {
|
||||
background-color: $azul-oscuro;
|
||||
color: white;
|
||||
opacity: 0.8;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
z-index: 999;
|
||||
top: 1.9rem;
|
||||
right: -2.2rem;
|
||||
width: 10rem;
|
||||
padding-top: .3rem;
|
||||
padding-bottom: .3rem;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
2
resources/routes/router.php
Normal file
@ -0,0 +1,2 @@
|
||||
<?php
|
||||
include_once $app->getContainer()->get('env') . '.php';
|
19
resources/routes/web.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
use ProVM\KI\Common\Controller\Web\Base;
|
||||
|
||||
$folder = implode(DIRECTORY_SEPARATOR, [
|
||||
__DIR__,
|
||||
'web'
|
||||
]);
|
||||
if (file_exists($folder)) {
|
||||
$files = new DirectoryIterator($folder);
|
||||
foreach ($files as $file) {
|
||||
if ($file->isDir()) {
|
||||
continue;
|
||||
}
|
||||
include_once $file->getRealPath();
|
||||
}
|
||||
}
|
||||
|
||||
$app->get('/', Base::class)
|
||||
->add(new ProVM\KI\Common\Middleware\Visits($app->getContainer()->get('file.visits'), $app->getContainer()->get('visits.time')));
|
16
resources/routes/web/admin.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
$app->group('/admin', function($app) {
|
||||
$folder = implode(DIRECTORY_SEPARATOR, [
|
||||
__DIR__,
|
||||
'admin'
|
||||
]);
|
||||
if (file_exists($folder)) {
|
||||
$files = new DirectoryIterator($folder);
|
||||
foreach ($files as $file) {
|
||||
if ($file->isDir()) {
|
||||
continue;
|
||||
}
|
||||
include_once $file->getRealPath();
|
||||
}
|
||||
}
|
||||
});
|
8
resources/routes/web/admin/faqs.php
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
use ProVM\KI\Common\Controller\Web\Admin\Faq;
|
||||
|
||||
$app->group('/faqs', function($app) {
|
||||
$app->post('/add', [Faq::class, 'add']);
|
||||
$app->post('/delete', [Faq::class, 'delete']);
|
||||
$app->get('[/]', Faq::class);
|
||||
});
|
13
resources/routes/web/admin/home.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
use ProVM\KI\Common\Controller\Web\Admin\Home;
|
||||
|
||||
$app->group('/home', function($app) {
|
||||
$app->group('/avisos', function($app) {
|
||||
$app->post('/add', [Home::class, 'add']);
|
||||
$app->post('/delete', [Home::class, 'delete']);
|
||||
});
|
||||
$app->group('/resumen', function($app) {
|
||||
$app->post('/edit', [Home::class, 'edit']);
|
||||
});
|
||||
$app->get('[/]', Home::class);
|
||||
});
|
7
resources/routes/web/admin/nosotros.php
Normal file
@ -0,0 +1,7 @@
|
||||
<?php
|
||||
use ProVM\KI\Common\Controller\Web\Admin\Nosotros;
|
||||
|
||||
$app->group('/nosotros', function($app) {
|
||||
$app->post('[/]', [Nosotros::class, 'guardar']);
|
||||
$app->get('[/]', Nosotros::class);
|
||||
});
|
25
resources/routes/web/admin/productos.php
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
use ProVM\KI\Common\Controller\Web\Admin\Productos;
|
||||
|
||||
$app->group('/productos', function($app) {
|
||||
$app->group('/add', function($app) {
|
||||
$app->get('[/]', [Productos::class, 'add']);
|
||||
$app->post('[/]', [Productos::class, 'do_add']);
|
||||
});
|
||||
$app->post('/delete', [Productos::class, 'delete']);
|
||||
$app->get('[/]', Productos::class);
|
||||
});
|
||||
$app->group('/producto/{producto}', function($app) {
|
||||
$app->group('/imagen', function($app) {
|
||||
$app->post('/delete', [Productos::class, 'delete_image']);
|
||||
});
|
||||
$app->group('/imagenes', function($app) {
|
||||
$app->post('/add', [Productos::class, 'add_image']);
|
||||
});
|
||||
$app->group('/video', function($app) {
|
||||
$app->post('/set', [Productos::class, 'set_video']);
|
||||
$app->post('/delete', [Productos::class, 'delete_video']);
|
||||
});
|
||||
$app->post('[/]', [Productos::class, 'do_edit']);
|
||||
$app->get('[/]', [Productos::class, 'edit']);
|
||||
});
|
4
resources/routes/web/contacto.php
Normal file
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
use ProVM\KI\Common\Controller\Web\Contacto;
|
||||
|
||||
$app->get('/contacto', Contacto::class);
|
4
resources/routes/web/faq.php
Normal file
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
use ProVM\KI\Common\Controller\Web\Faq;
|
||||
|
||||
$app->get('/faqs', Faq::class);
|
4
resources/routes/web/indicadores.php
Normal file
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
use ProVM\KI\Common\Controller\Web\Indicadores;
|
||||
|
||||
$app->get('/indicador/{indicador}', [Indicadores::class, 'get']);
|
4
resources/routes/web/nosotros.php
Normal file
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
use ProVM\KI\Common\Controller\Web\Nosotros;
|
||||
|
||||
$app->get('/nosotros', Nosotros::class);
|
12
resources/routes/web/productos.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
use ProVM\KI\Common\Controller\Web\Productos;
|
||||
|
||||
$app->group('/productos', function($app) {
|
||||
$app->get('/segmento/{segmento}', [Productos::class, 'segmento']);
|
||||
$app->get('/destacados/{page}', [Productos::class, 'destacados']);
|
||||
$app->get('[/]', productos::class);
|
||||
});
|
||||
$app->group('/producto/{producto}', function($app) {
|
||||
$app->get('/ficha', [Productos::class, 'ficha']);
|
||||
$app->get('[/]', [Productos::class, 'show']);
|
||||
});
|
97
resources/views/admin/faq.blade.php
Normal file
@ -0,0 +1,97 @@
|
||||
@extends('admin.layout.base')
|
||||
|
||||
@section('page_content')
|
||||
<div class="ui grid">
|
||||
<div class="nine wide column">
|
||||
<div class="ui header">
|
||||
FAQ's
|
||||
</div>
|
||||
<table class="ui table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Pregunta</th>
|
||||
<th class="center aligned">Borrar</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($faqs as $i => $faq)
|
||||
<tr>
|
||||
<td class="titulo" data-id="{{$i}}">{{$faq->titulo}}</td>
|
||||
<td class="center aligned"><i class="trash alternate outline icon" data-id="{{$i}}"></i>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<form class="ui form">
|
||||
<input type="hidden" name="id" />
|
||||
<div class="field">
|
||||
<label>Pregunta</label>
|
||||
<input type="text" name="titulo" />
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>Respuesta</label>
|
||||
<textarea rows="1" name="contenido"></textarea>
|
||||
</div>
|
||||
<button class="ui button enviar">AGREGAR</button>
|
||||
<button class="ui button resetear" type="reset">BORRAR</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/javascript">
|
||||
var edit = false
|
||||
var faqs = [
|
||||
@foreach ($faqs as $faq)
|
||||
{
|
||||
titulo: '{{$faq->titulo}}',
|
||||
contenido: '{{$faq->contenido}}'
|
||||
},
|
||||
@endforeach
|
||||
]
|
||||
$(document).ready(() => {
|
||||
$('.titulo').css('cursor', 'pointer').click(function() {
|
||||
var id = $(this).attr('data-id')
|
||||
|
||||
$("input[name='id']").val(id)
|
||||
$("input[name='titulo']").val(faqs[id].titulo)
|
||||
$("textarea[name='contenido']").val(faqs[id].contenido)
|
||||
$('.button.enviar').html('EDITAR')
|
||||
edit = true
|
||||
})
|
||||
$('.trash.icon').css('cursor', 'pointer').click(function() {
|
||||
var id = $(this).attr('data-id')
|
||||
var url = '{{$urls->admin}}/faqs/delete'
|
||||
$.post(url, {id: id}, (data) => {
|
||||
if (data.estado) {
|
||||
window.location.reload()
|
||||
}
|
||||
})
|
||||
})
|
||||
$('.button.resetear').click(() => {
|
||||
$("input[name='id']").val('')
|
||||
$('.button.enviar').html('AGREGAR')
|
||||
edit = false
|
||||
})
|
||||
$('.form').trigger('reset')
|
||||
$('.form').submit((e) => {
|
||||
e.preventDefault()
|
||||
var input = {
|
||||
titulo: $("input[name='titulo']").val(),
|
||||
contenido: $("textarea[name='contenido']").val()
|
||||
}
|
||||
if (edit) {
|
||||
input['id'] = $("input[name='id']").val()
|
||||
}
|
||||
var url = '{{$urls->admin}}/faqs/add'
|
||||
$.post(url, input, (data) => {
|
||||
if (data.estado) {
|
||||
window.location.reload()
|
||||
}
|
||||
})
|
||||
return false
|
||||
})
|
||||
})
|
||||
</script>
|
||||
@endpush
|
173
resources/views/admin/home.blade.php
Normal file
@ -0,0 +1,173 @@
|
||||
@extends('admin.layout.base')
|
||||
|
||||
@section('page_content')
|
||||
<div class="ui grid">
|
||||
<div class="row">
|
||||
<div class="nine wide column">
|
||||
<div class="ui header">
|
||||
AVISOS
|
||||
</div>
|
||||
<table class="ui table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2">Pregunta</th>
|
||||
<th class="center aligned">Borrar</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($avisos->avisos as $i => $aviso)
|
||||
<tr>
|
||||
<td class="link titulo" data-id="{{$i}}">{{$aviso->titulo}}</td>
|
||||
<td class="link contenido" data-id="{{$i}}">{{$aviso->contenido}}</td>
|
||||
<td class="center aligned"><i class="trash alternate outline icon" data-id="{{$i}}"></i></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
<tfooter>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<form class="ui form" id="avisos">
|
||||
<input type="hidden" name="id" />
|
||||
<div class="inline fields">
|
||||
<div class="field">
|
||||
<input type="text" name="titulo" placeholder="Título" />
|
||||
</div>
|
||||
<div class="field">
|
||||
<input type="text" name="contenido" placeholder="Bajada" />
|
||||
</div>
|
||||
<button class="ui button accion">CREAR</button>
|
||||
<button class="ui button" type="reset">BORRAR</button>
|
||||
</div>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</tfooter>
|
||||
</table>
|
||||
<div class="ui slider checkbox">
|
||||
<input type="checkbox" tabindex="0" class="hidden" value="{{$avisos->activo}}">
|
||||
<label>Activo</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="nine wide column">
|
||||
<div class="ui header">
|
||||
INDICADORES
|
||||
</div>
|
||||
<form class="ui form" id="resumen">
|
||||
<table class="ui table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Enunciado</th>
|
||||
<th>Cantidad</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($resumen as $i => $indicador)
|
||||
<tr>
|
||||
<td><input type="text" name="titulo{{$i}}" value="{{$indicador->titulo}}" /></td>
|
||||
<td><input type="text" name="cantidad{{$i}}" value="{{$indicador->cantidad}}" /></td>
|
||||
<td><button class="ui button guardar" data-id="{{$i}}">GUARDAR</button></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/javascript">
|
||||
var edit = false
|
||||
function editAviso(id) {
|
||||
var titulo = $(".link.titulo[data-id='" + id + "']").html()
|
||||
var contenido = $(".link.contenido[data-id='" + id + "']").html()
|
||||
|
||||
$("input[name='id']").val(id)
|
||||
$("input[name='titulo']").val(titulo)
|
||||
$("input[name='contenido']").val(contenido)
|
||||
edit = true
|
||||
$('.accion').html('EDITAR')
|
||||
}
|
||||
function submitAviso(e) {
|
||||
e.preventDefault()
|
||||
input = {
|
||||
titulo: $("input[name='titulo']").val(),
|
||||
contenido: $("input[name='contenido']").val()
|
||||
}
|
||||
if (edit) {
|
||||
input['id'] = $("input[name='id']").val()
|
||||
}
|
||||
if (input['titulo'] == '') {
|
||||
return false
|
||||
}
|
||||
var url = '{{$urls->admin}}/home/avisos/add'
|
||||
$.post(url, input, (data) => {
|
||||
if (data.estado) {
|
||||
window.location.reload()
|
||||
}
|
||||
}, 'json')
|
||||
return false
|
||||
}
|
||||
function deleteAviso(id) {
|
||||
var url = '{{$urls->admin}}/home/avisos/delete'
|
||||
$.post(url, {id: id}, (data) => {
|
||||
if (data.estado) {
|
||||
window.location.reload()
|
||||
}
|
||||
}, 'json')
|
||||
}
|
||||
$(document).ready(() => {
|
||||
$('.link').css('cursor', 'pointer').click(function() {
|
||||
var id = $(this).attr('data-id')
|
||||
editAviso(id)
|
||||
})
|
||||
$('#avisos').trigger('reset')
|
||||
$('#avisos').submit((e) => {
|
||||
submitAviso(e)
|
||||
})
|
||||
$(".button[type='reset']").click((e) => {
|
||||
$("input[name='id']").val('')
|
||||
$('.accion').html('CREAR')
|
||||
edit = false
|
||||
})
|
||||
$('.trash.icon').css('cursor', 'pointer').click(function() {
|
||||
var id = $(this).attr('data-id')
|
||||
deleteAviso(id)
|
||||
})
|
||||
$('.checkbox').checkbox({
|
||||
onChange: function() {
|
||||
var state = $(this).is(':checked')
|
||||
var url = '{{$urls->admin}}/home/avisos/add'
|
||||
$.post(url, {estado: state}, (data) => {
|
||||
console.debug(data)
|
||||
})
|
||||
}
|
||||
})
|
||||
@if ($avisos->activo)
|
||||
$('.checkbox').checkbox('set checked')
|
||||
@endif
|
||||
$('#resumen').submit((e) => {
|
||||
e.preventDefault()
|
||||
return false
|
||||
})
|
||||
$('.guardar').click(function() {
|
||||
var id = $(this).attr('data-id')
|
||||
var url = '{{$urls->admin}}/home/resumen/edit'
|
||||
input = {
|
||||
id: id,
|
||||
titulo: $("input[name='titulo" + id + "']").val(),
|
||||
cantidad: $("input[name='cantidad" + id + "']").val()
|
||||
}
|
||||
$.post(url, input, (data) => {
|
||||
if (data.estado) {
|
||||
window.location.reload()
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
</script>
|
||||
@endpush
|
5
resources/views/admin/layout/base.blade.php
Normal file
@ -0,0 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{$page_language}}">
|
||||
@include('admin.layout.head')
|
||||
@include('admin.layout.body')
|
||||
</html>
|
10
resources/views/admin/layout/body.blade.php
Normal file
@ -0,0 +1,10 @@
|
||||
<body>
|
||||
@include('admin.layout.header')
|
||||
<div id="admin">
|
||||
<div class="ui container">
|
||||
@yield('page_content')
|
||||
</div>
|
||||
</div>
|
||||
@include('admin.layout.footer')
|
||||
@include('layout.scripts')
|
||||
</body>
|
10
resources/views/admin/layout/footer.blade.php
Normal file
@ -0,0 +1,10 @@
|
||||
<footer>
|
||||
<div class="ui container">
|
||||
<div class="ui tiny text menu">
|
||||
<div class="item">
|
||||
Copyright
|
||||
Todos los derechos reservados 2020 ProVM<i class="copyright outline icon"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
7
resources/views/admin/layout/head.blade.php
Normal file
@ -0,0 +1,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>
|
||||
Capital Investments
|
||||
</title>
|
||||
@include('admin.layout.styles')
|
||||
</head>
|
7
resources/views/admin/layout/header.blade.php
Normal file
@ -0,0 +1,7 @@
|
||||
<header>
|
||||
@include('admin.layout.header.menu')
|
||||
</header>
|
||||
|
||||
@push('styles')
|
||||
<link rel="stylesheet" type="text/css" href="{{$urls->styles}}/admin.css" />
|
||||
@endpush
|
26
resources/views/admin/layout/header/menu.blade.php
Normal file
@ -0,0 +1,26 @@
|
||||
<div class="ui container">
|
||||
<nav class="ui massive text menu">
|
||||
<a class="item logo" href="{{$urls->admin}}">
|
||||
<div class="ui title image">
|
||||
<img src="{{$urls->images}}/logo.png" alt="Capital Investments" title="Capital Investments" />
|
||||
</div>
|
||||
</a>
|
||||
<div class="right menu">
|
||||
<a class="item" href="{{$urls->admin}}/home">
|
||||
HOME
|
||||
</a>
|
||||
<a class="item" href="{{$urls->admin}}/nosotros">
|
||||
NOSOTROS
|
||||
</a>
|
||||
<a class="item" href="{{$urls->admin}}/productos">
|
||||
PRODUCTOS
|
||||
</a>
|
||||
<a class="item" href="{{$urls->admin}}/faqs">
|
||||
FAQs
|
||||
</a>
|
||||
<a class="item" href="{{$urls->base}}">
|
||||
Salir
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
14
resources/views/admin/layout/styles.blade.php
Normal file
@ -0,0 +1,14 @@
|
||||
@if (isset($assets->styles))
|
||||
@foreach ($assets->styles as $style)
|
||||
<link rel="stylesheet" type="text/css" href="{{$style}}" />
|
||||
@endforeach
|
||||
@endif
|
||||
<link rel="stylesheet" type="text/css" href="{{$urls->styles}}/admin.css" />
|
||||
@if (isset($assets->fonts))
|
||||
@foreach ($assets->fonts as $type => $fonts)
|
||||
@foreach ($fonts as $font)
|
||||
<link type="{{$type}}" href="{{$font}}" />
|
||||
@endforeach
|
||||
@endforeach
|
||||
@endif
|
||||
@stack('styles')
|
18
resources/views/admin/nosotros.blade.php
Normal file
@ -0,0 +1,18 @@
|
||||
@extends('admin.layout.base')
|
||||
|
||||
@section('page_content')
|
||||
<div class="ui grid">
|
||||
<div class="ten wide column">
|
||||
<div class="ui header">
|
||||
NOSOTROS
|
||||
</div>
|
||||
<form class="ui form" method="post" action="{{$urls->admin}}/nosotros">
|
||||
<div class="field">
|
||||
<label>Descripción</label>
|
||||
<textarea name="nosotros">{{$nosotros}}</textarea>
|
||||
</div>
|
||||
<button class="ui button">GUARDAR</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
261
resources/views/admin/producto.blade.php
Normal file
@ -0,0 +1,261 @@
|
||||
@extends('admin.layout.base')
|
||||
|
||||
@section('page_content')
|
||||
<div class="ui header">
|
||||
PRODUCTO
|
||||
</div>
|
||||
<form class="ui form" method="post" action="{{$urls->admin}}/producto/{{$producto->id}}" enctype="multipart/form-data">
|
||||
<div class="ui three columns grid">
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Nombre</label>
|
||||
<input type="text" name="nombre" value="{{$producto->nombre ?? ''}}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="fields">
|
||||
<div class="field">
|
||||
<label>Dirección</label>
|
||||
<input type="text" name="direccion" value="{{$producto->direccion ?? ''}}" />
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>Comuna</label>
|
||||
<input type="text" name="comuna" value="{{$producto->comuna ?? ''}}" />
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>Ciudad</label>
|
||||
<input type="text" name="ciudad" value="{{$producto->ciudad ?? ''}}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Segmento</label>
|
||||
<div class="ui selection dropdown">
|
||||
<input type="hidden" name="segmento" />
|
||||
<i class="dropdown icon"></i>
|
||||
<div class="default text">Segmento</div>
|
||||
<div class="menu">
|
||||
@foreach ($segmentos as $segmento)
|
||||
<div class="item" data-value="{{$segmento->titulo}}">{{$segmento->titulo}}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Valor en UF</label>
|
||||
<input type="text" name="valor" value="{{str_replace('.', '', $producto->valor ?? '')}}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Bono Pie en UF</label>
|
||||
<input type="text" name="bono" value="{{$producto->bono ?? ''}}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Rentabilidad %</label>
|
||||
<input type="text" name="rentabilidad" value="{{$producto->rentabilidad ?? ''}}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Valor Cuota en UF</label>
|
||||
<input type="text" name="cuota" value="{{$producto->cuota ?? ''}}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Entrega Estimada</label>
|
||||
<div class="ui calendar">
|
||||
<input type="text" name="entrega" placeholder="Entrega" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Destacado</label>
|
||||
<div class="ui toggle checkbox">
|
||||
<input type="checkbox" name="destacado" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Estado</label>
|
||||
<input type="text" name="estado" value="{{$producto->estado ?? ''}}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Unidades</label>
|
||||
<input type="text" name="unidades" value="{{$producto->unidades ?? ''}}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Modelos</label>
|
||||
<input type="text" name="modelos" value="{{$producto->modelos ?? ''}}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="fields">
|
||||
<div class="field">
|
||||
<label>Tamaño Mínimo</label>
|
||||
<input type="text" name="tamaño_min" value="{{(isset($producto->tamaño)) ? explode(' - ', rtrim($producto->tamaño, ' m²'))[0] : ''}}" />
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>Tamaño Máximo</label>
|
||||
<input type="text" name="tamaño_max" value="{{(isset($producto->tamaño)) ? explode(' - ', rtrim($producto->tamaño, ' m²'))[1] : ''}}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ten wide column">
|
||||
<div class="field">
|
||||
<label>Descripción</label>
|
||||
<textarea rows="1" name="descripcion">{{$producto->descripcion ?? ''}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Imágenes</label>
|
||||
<input type="file" name="imagen" />
|
||||
</div>
|
||||
<div id="imagenes" class="ui list"></div>
|
||||
</div>
|
||||
<?php
|
||||
/*
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Video</label>
|
||||
<input type="file" name="video" />
|
||||
</div>
|
||||
<div class="ui list">
|
||||
@if (isset($producto->video))
|
||||
<div class="item">
|
||||
<i class="trash alternate outline icon video"></i>
|
||||
<div class="content">
|
||||
{{$producto->video}}
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
*/?>
|
||||
</div>
|
||||
<br />
|
||||
<button class="ui button">GUARDAR</button>
|
||||
</form>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/javascript">
|
||||
var months = {
|
||||
long: [],
|
||||
short: []
|
||||
}
|
||||
var date = new Date(2018, 0, 1)
|
||||
for (i = 0; i < 12; i ++) {
|
||||
date.setMonth(i)
|
||||
months.long.push(date.toLocaleString('es-ES', {month: "long"}).replace(
|
||||
/\w\S*/g,
|
||||
function(txt) {
|
||||
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
|
||||
}
|
||||
))
|
||||
months.short.push(date.toLocaleString('es-ES', {month: "short"}).replace(
|
||||
/\w\S*/g,
|
||||
function(txt) {
|
||||
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
|
||||
}
|
||||
))
|
||||
}
|
||||
function listImage(image) {
|
||||
var icon = $('<i></i>').attr('class', 'trash alternate outline icon')
|
||||
icon.css('cursor', 'pointer').click(function() {
|
||||
var url = '{{$urls->admin}}/producto/{{$producto->id}}/imagen/delete'
|
||||
$.post(url, {imagen: image}, (data) => {
|
||||
if (data.estado) {
|
||||
window.location.reload()
|
||||
}
|
||||
})
|
||||
})
|
||||
$('#imagenes').append(
|
||||
$('<div></div>').attr('class', 'item').append(
|
||||
icon
|
||||
).append(
|
||||
$('<div></div>').attr('class', 'content').html(image)
|
||||
)
|
||||
)
|
||||
}
|
||||
$(document).ready(() => {
|
||||
$('.selection.dropdown').dropdown()
|
||||
$('.selection.dropdown').dropdown('set selected', '{{$producto->segmento}}')
|
||||
$('.calendar').calendar({
|
||||
type: 'month',
|
||||
text: {
|
||||
months: months.long,
|
||||
monthsShort: months.short
|
||||
},
|
||||
formatInput: false,
|
||||
onChange: function(a, b) {
|
||||
$(this).find('input').val(('0' + (a.getMonth() + 1)).slice(-2) + '/' + a.getFullYear())
|
||||
}
|
||||
})
|
||||
var entrega = new Date('{{str_pad(implode('-', array_reverse(explode('/', $producto->entrega))), 7, '20', STR_PAD_LEFT)}}-01T01:00')
|
||||
$('.calendar').calendar('set date', entrega)
|
||||
$('.checkbox').checkbox()
|
||||
@if ($producto->destacado)
|
||||
$('.checkbox').checkbox('set checked')
|
||||
@endif
|
||||
$("input[name='imagen']").change(function() {
|
||||
var data = new FormData()
|
||||
data.append('imagen', $(this)[0].files[0])
|
||||
var url = '{{$urls->admin}}/producto/{{$producto->id}}/imagenes/add'
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: 'post',
|
||||
data: data,
|
||||
contentType: false,
|
||||
processData: false,
|
||||
success: (data) => {
|
||||
if (data.estado) {
|
||||
window.location.reload()
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
@foreach ($producto->images as $image)
|
||||
listImage('{{$image}}')
|
||||
@endforeach
|
||||
$("input[name='video']").change(function() {
|
||||
var fData = new FormData()
|
||||
fData.append('video', $("input[name='video']")[0].files[0])
|
||||
var url = '{{$urls->admin}}/producto/{{$producto->id}}/video/set'
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: 'post',
|
||||
data: fData,
|
||||
contentType: false,
|
||||
processData: false,
|
||||
success: (data) => {
|
||||
if (data.estado) {
|
||||
window.location.reload()
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
$('.trash.video').attr('cursor', 'pointer').click(() => {
|
||||
var url = '{{$urls->admin}}/producto/{{$producto->id}}/video/delete'
|
||||
$.post(url, {}, (data) => {
|
||||
if (data.estado) {
|
||||
window.location.reload()
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
</script>
|
||||
@endpush
|
60
resources/views/admin/productos.blade.php
Normal file
@ -0,0 +1,60 @@
|
||||
@extends('admin.layout.base')
|
||||
|
||||
@section('page_content')
|
||||
<div class="ui grid">
|
||||
<div class="nine wide column">
|
||||
<div class="ui header">
|
||||
PRODUCTOS
|
||||
</div>
|
||||
<table class="ui table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="right aligned" colspan="3">
|
||||
<a href="{{$urls->admin}}/productos/add">
|
||||
<button class="ui button">NUEVO</button>
|
||||
</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Producto</th>
|
||||
<th class="center aligned">Editar</th>
|
||||
<th class="center aligned">Borrar</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($productos as $i => $producto)
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{$urls->admin}}/producto/{{$i}}">
|
||||
{{$producto->nombre}}
|
||||
</a>
|
||||
</td>
|
||||
<td class="center aligned">
|
||||
<a href="{{$urls->admin}}/producto/{{$i}}">
|
||||
<i class="edit icon"></i>
|
||||
</a>
|
||||
</td>
|
||||
<td class="center aligned"><i class="trash alternate outline icon" data-id="{{$i}}"></i></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/javascript">
|
||||
$(document).ready(() => {
|
||||
$('.trash.icon').css('cursor', 'pointer').click(function() {
|
||||
var id = $(this).attr('data-id')
|
||||
var url = '{{$urls->admin}}/productos/delete'
|
||||
$.post(url, {id: id}, (data) => {
|
||||
if (data.estado) {
|
||||
window.location.reload()
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
</script>
|
||||
@endpush
|
166
resources/views/admin/productos/add.blade.php
Normal file
@ -0,0 +1,166 @@
|
||||
@extends('admin.layout.base')
|
||||
|
||||
@section('page_content')
|
||||
<div class="ui header">
|
||||
AGREGAR PRODUCTO
|
||||
</div>
|
||||
<form class="ui form" method="post" action="{{$urls->admin}}/productos/add" enctype="multipart/form-data">
|
||||
<div class="ui three columns grid">
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Nombre</label>
|
||||
<input type="text" name="nombre" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="fields">
|
||||
<div class="field">
|
||||
<label>Dirección</label>
|
||||
<input type="text" name="direccion" />
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>Comuna</label>
|
||||
<input type="text" name="comuna" />
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>Ciudad</label>
|
||||
<input type="text" name="ciudad" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Segmento</label>
|
||||
<div class="ui selection dropdown">
|
||||
<input type="hidden" name="segmento" />
|
||||
<i class="dropdown icon"></i>
|
||||
<div class="default text">Segmento</div>
|
||||
<div class="menu">
|
||||
@foreach ($segmentos as $segmento)
|
||||
<div class="item" data-value="{{$segmento->titulo}}">{{$segmento->titulo}}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Valor en UF</label>
|
||||
<input type="text" name="valor" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Bono Pie en UF</label>
|
||||
<input type="text" name="bono" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Rentabilidad %</label>
|
||||
<input type="text" name="rentabilidad" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Valor Cuota en UF</label>
|
||||
<input type="text" name="cuota" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Entrega Estimada</label>
|
||||
<div class="ui calendar">
|
||||
<input type="text" name="entrega" placeholder="Entrega" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Destacado</label>
|
||||
<div class="ui toggle checkbox">
|
||||
<input type="checkbox" name="destacado" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Estado</label>
|
||||
<input type="text" name="estado" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Unidades</label>
|
||||
<input type="text" name="unidades" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label>Modelos</label>
|
||||
<input type="text" name="modelos" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="fields">
|
||||
<div class="field">
|
||||
<label>Tamaño Mínimo</label>
|
||||
<input type="text" name="tamaño_min" />
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>Tamaño Máximo</label>
|
||||
<input type="text" name="tamaño_max" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ten wide column">
|
||||
<div class="field">
|
||||
<label>Descripción</label>
|
||||
<textarea rows="1" name="descripcion"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<button class="ui button">AGREGAR</button>
|
||||
</form>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/javascript">
|
||||
var months = {
|
||||
long: [],
|
||||
short: []
|
||||
}
|
||||
var date = new Date(2018, 0, 1)
|
||||
for (i = 0; i < 12; i ++) {
|
||||
date.setMonth(i)
|
||||
months.long.push(date.toLocaleString('es-ES', {month: "long"}).replace(
|
||||
/\w\S*/g,
|
||||
function(txt) {
|
||||
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
|
||||
}
|
||||
))
|
||||
months.short.push(date.toLocaleString('es-ES', {month: "short"}).replace(
|
||||
/\w\S*/g,
|
||||
function(txt) {
|
||||
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
|
||||
}
|
||||
))
|
||||
}
|
||||
$(document).ready(() => {
|
||||
$('.selection.dropdown').dropdown()
|
||||
$('.calendar').calendar({
|
||||
type: 'month',
|
||||
text: {
|
||||
months: months.long,
|
||||
monthsShort: months.short
|
||||
},
|
||||
formatInput: false,
|
||||
onChange: function(a) {
|
||||
$(this).find('input').val(('0' + (a.getMonth() + 1)).slice(-2) + '/' + a.getFullYear())
|
||||
}
|
||||
})
|
||||
$('.checkbox').checkbox()
|
||||
})
|
||||
</script>
|
||||
@endpush
|
1
resources/views/contacto.blade.php
Normal file
@ -0,0 +1 @@
|
||||
@extends('layout.base')
|
36
resources/views/faq.blade.php
Normal file
@ -0,0 +1,36 @@
|
||||
@extends('layout.base')
|
||||
|
||||
@section('page_content')
|
||||
<div id="faq">
|
||||
<div class="ui container">
|
||||
<div class="ui header">
|
||||
FAQ's
|
||||
</div>
|
||||
<div class="ui accordion">
|
||||
@foreach ($faqs as $faq)
|
||||
<div class="title">
|
||||
<i class="dropdown icon"></i>
|
||||
{{$faq->titulo}}
|
||||
</div>
|
||||
<div class="content">
|
||||
<p>
|
||||
{{$faq->contenido}}
|
||||
</p>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<link rel="stylesheet" type="text/css" href="{{$urls->styles}}/faqs.css" />
|
||||
@endpush
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/javascript">
|
||||
$(document).ready(() => {
|
||||
$('#faq .accordion').accordion()
|
||||
})
|
||||
</script>
|
||||
@endpush
|
14
resources/views/home.blade.php
Normal file
@ -0,0 +1,14 @@
|
||||
@extends('layout.base')
|
||||
|
||||
@section('page_content')
|
||||
@include('home.banner')
|
||||
@include('home.aviso')
|
||||
@include('home.destacados')
|
||||
@include('home.segmentos')
|
||||
@include('home.resumen')
|
||||
@include('home.indicadores')
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<link rel="stylesheet" type="text/css" href="{{$urls->styles}}/home.css" />
|
||||
@endpush
|
57
resources/views/home/aviso.blade.php
Normal file
@ -0,0 +1,57 @@
|
||||
@if (isset($avisos->activo) and $avisos->activo)
|
||||
<div id="aviso">
|
||||
<div class="ui container">
|
||||
<div class="ui center aligned grid">
|
||||
<div class="ten wide column">
|
||||
<div class="ui header">
|
||||
BENEFICIOS COVID 19
|
||||
</div>
|
||||
Bono Pie 10%
|
||||
</div>
|
||||
<div class="row">
|
||||
@foreach ($avisos->avisos as $i => $av)
|
||||
<i class="circle outline tiny icon" data-id="{{$i + 1}}"></i>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/javascript">
|
||||
var avisos = {
|
||||
avisos: [
|
||||
@foreach ($avisos->avisos as $av)
|
||||
{
|
||||
titulo: '{{$av->titulo}}',
|
||||
contenido: '{{$av->contenido}}'
|
||||
},
|
||||
@endforeach
|
||||
],
|
||||
id: '#aviso',
|
||||
curr_page: 1,
|
||||
setup: () => {
|
||||
avisos.movePage(avisos.curr_page)
|
||||
},
|
||||
movePage: (page) => {
|
||||
var aviso = avisos.avisos[page - 1]
|
||||
$(avisos.id).find('.grid .column').html('').append(
|
||||
$('<div></div>').attr('class', 'ui header').html(aviso.titulo)
|
||||
).append(aviso.contenido)
|
||||
$(avisos.id).find('.circle.icon').addClass('outline').css('cursor', 'pointer').click(function() {
|
||||
var id = $(this).attr('data-id')
|
||||
if (id == avisos.curr_page) {
|
||||
return
|
||||
}
|
||||
avisos.movePage(id)
|
||||
})
|
||||
$(avisos.id).find('.circle.icon:nth-child(' + page + ')').removeClass('outline').css('cursor', 'default')
|
||||
avisos.curr_page = page
|
||||
}
|
||||
}
|
||||
$(document).ready(function() {
|
||||
avisos.setup()
|
||||
})
|
||||
</script>
|
||||
@endpush
|
27
resources/views/home/banner.blade.php
Normal file
@ -0,0 +1,27 @@
|
||||
<div id="banner">
|
||||
<div class="ui container">
|
||||
<div class="ui center aligned grid">
|
||||
<div class="ten wide column">
|
||||
<div id="mensaje">
|
||||
<div class="ui header">
|
||||
DISEÑA EL FUTURO, ACTÚA EN EL PRESENTE
|
||||
</div>
|
||||
"Comienza a Invertir Hoy"
|
||||
</div>
|
||||
<a href="{{$urls->base}}/productos">
|
||||
<button class="ui big button">
|
||||
PRODUCTOS
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@push('styles')
|
||||
<style type="text/css">
|
||||
#banner {
|
||||
background-image: url('{{$urls->images}}/banner.jpg');
|
||||
}
|
||||
</style>
|
||||
@endpush
|
67
resources/views/home/contacto.blade.php
Normal file
@ -0,0 +1,67 @@
|
||||
<div id="contacto">
|
||||
<div class="ui container">
|
||||
<div class="ui header">
|
||||
CONTACTO
|
||||
</div>
|
||||
<div class="ui two columns stackable grid">
|
||||
<div class="column">
|
||||
<form id="contacto_form" method="post" class="ui form">
|
||||
<div class="ui grid">
|
||||
<div class="eight wide column">
|
||||
<div class="input">
|
||||
<input type="text" name="nombre" placeholder="Nombre" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="eight wide column">
|
||||
<div class="input">
|
||||
<input type="text" name="mail" placeholder="Mail" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="sixteen wide column">
|
||||
<div class="input">
|
||||
<textarea name="mensaje" rows="2" placeholder="Mensaje"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="four wide column">
|
||||
<button class="ui button">
|
||||
Enviar
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="ui center aligned grid">
|
||||
<div class="eight wide column left aligned">
|
||||
<p>
|
||||
Av. Calle 123, Comuna, RM
|
||||
<br />
|
||||
<a href="mailto:contacto@capitalinvestments.cl">
|
||||
contacto@capitalinvestments.cl
|
||||
</a>
|
||||
<br />
|
||||
<a href="tel:56222222222">+56 2 2222 2222</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="youtube">
|
||||
<i class="youtube icon"></i>
|
||||
</a>
|
||||
<a href="instagram">
|
||||
<i class="instagram icon"></i>
|
||||
</a>
|
||||
<a href="facebook">
|
||||
<i class="facebook f icon"></i>
|
||||
</a>
|
||||
<a href="linkedin">
|
||||
<i class="linkedin icon"></i>
|
||||
</a>
|
||||
<a href="twitter">
|
||||
<i class="twitter icon"></i>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
137
resources/views/home/destacados.blade.php
Normal file
@ -0,0 +1,137 @@
|
||||
<div id="destacados">
|
||||
<div class="ui container">
|
||||
<div class="ui header titulo">
|
||||
PRODUCTOS DESTACADOS
|
||||
</div>
|
||||
<div class="ui four columns stackable grid" id="productos">
|
||||
@for ($i = 0; $i < min(4, count($destacados)); $i ++)
|
||||
<div class="column">
|
||||
<div class="ui card ficha">
|
||||
<div class="content">
|
||||
<div class="header titulo">
|
||||
producto
|
||||
</div>
|
||||
<div class="meta">
|
||||
<div class="right floated">
|
||||
Segmento
|
||||
</div>
|
||||
Comuna
|
||||
</div>
|
||||
</div>
|
||||
<div class="image">
|
||||
<div class="ui placeholder">
|
||||
<div class="square image"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
Detalles
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endfor
|
||||
</div>
|
||||
@if (count($destacados) > 4)
|
||||
<div class="ui grid" id="paging">
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/javascript">
|
||||
var destacados = {
|
||||
curr_page: 1,
|
||||
max_page: {{ceil(count($destacados) / 4)}},
|
||||
id: '#destacados',
|
||||
buildCard: (div, id) => {
|
||||
$.ajax({
|
||||
url: '{{$urls->base}}/producto/' + id + '/ficha',
|
||||
success: function(data) {
|
||||
div.append(data)
|
||||
}
|
||||
})
|
||||
},
|
||||
fillCards: (data) => {
|
||||
var productos = $(destacados.id).find('#productos')
|
||||
productos.html('')
|
||||
$.each(data, function(i, el) {
|
||||
var div = $('<div></div>').attr('class', 'column')
|
||||
productos.append(
|
||||
div
|
||||
)
|
||||
destacados.buildCard(div, el)
|
||||
})
|
||||
},
|
||||
movePage: (page) => {
|
||||
if (page == 'prev') {
|
||||
page = Math.max(1, parseInt(destacados.curr_page) - 1)
|
||||
}
|
||||
if (page == 'next') {
|
||||
page = Math.min(destacados.max_page, parseInt(destacados.curr_page) + 1)
|
||||
}
|
||||
destacados.findPage(page)
|
||||
},
|
||||
buildPaging: () => {
|
||||
var paging = $(destacados.id).find('#paging')
|
||||
paging.html('')
|
||||
paging.append(
|
||||
$('<div></div>').attr('class', 'column')
|
||||
)
|
||||
var ini = destacados.curr_page - 1
|
||||
if (destacados.curr_page == 1) {
|
||||
ini = 1
|
||||
}
|
||||
if (destacados.curr_page == destacados.max_page) {
|
||||
ini = destacados.curr_page - 2
|
||||
}
|
||||
if (destacados.curr_page > 1) {
|
||||
paging.append(
|
||||
$('<div></div>').attr('class', 'column').append(
|
||||
$('<span></span>').attr('class', 'pagina').attr('data-page', 'prev').append(
|
||||
$('<i></i>').attr('class', 'angle left icon')
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
var max = Math.min(destacados.max_page, ini + 2)
|
||||
for (var i = ini; i <= max; i ++) {
|
||||
var span = $('<span></span>').attr('class', 'pagina').attr('data-page', i).html(i)
|
||||
if (i == destacados.curr_page) {
|
||||
span.addClass('active')
|
||||
}
|
||||
paging.append(
|
||||
$('<div></div>').attr('class', 'column').append(span)
|
||||
)
|
||||
}
|
||||
if (destacados.curr_page < destacados.max_page) {
|
||||
paging.append(
|
||||
$('<div></div>').attr('class', 'column').append(
|
||||
$('<span></span>').attr('class', 'pagina').attr('data-page', 'next').append(
|
||||
$('<i></i>').attr('class', 'angle right icon')
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
$(destacados.id).find('.pagina:not(.active)').css('cursor', 'pointer').click(function() {
|
||||
var page = $(this).attr('data-page')
|
||||
destacados.movePage(page)
|
||||
})
|
||||
},
|
||||
findPage: (page) => {
|
||||
$.getJSON('{{$urls->base}}/productos/destacados/' + page, function(data) {
|
||||
$('#destacados').find('.pagina.active').removeClass('.active')
|
||||
destacados.curr_page = data.information.page
|
||||
destacados.buildPaging()
|
||||
destacados.fillCards(data.destacados)
|
||||
})
|
||||
},
|
||||
setup: () => {
|
||||
destacados.buildPaging()
|
||||
destacados.findPage(destacados.curr_page)
|
||||
}
|
||||
}
|
||||
$(document).ready(function() {
|
||||
destacados.setup()
|
||||
})
|
||||
</script>
|
||||
@endpush
|
106
resources/views/home/indicadores.blade.php
Normal file
@ -0,0 +1,106 @@
|
||||
<div id="indicadores">
|
||||
<div class="ui container">
|
||||
<div class="slideshow ui center aligned grid">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/javascript">
|
||||
var slideshow = {
|
||||
slides: [],
|
||||
id: '.slideshow',
|
||||
slide_id: '.slide',
|
||||
current: 0,
|
||||
speed: 1,
|
||||
delay: 10,
|
||||
move: () => {
|
||||
var ini = parseInt($(slideshow.id).find(slideshow.slide_id + ':first-child').css('left'))
|
||||
if (isNaN(ini)) {
|
||||
ini = 0
|
||||
}
|
||||
console.debug(ini)
|
||||
$(slideshow.id).find(slideshow.slide_id + ':first-child').css('left', ini - slideshow.speed)
|
||||
var w = parseInt($(slideshow.id).find(slideshow.slide_id + ':first-child').css('width'))
|
||||
var p0 = 0
|
||||
var p = parseInt($(slideshow.id).find(slideshow.slide_id + ':first-child').css('left'))
|
||||
if (p + w < p0) {
|
||||
slideshow.addNext()
|
||||
}
|
||||
setTimeout(slideshow.move, slideshow.delay)
|
||||
},
|
||||
addNext: () => {
|
||||
var data = [
|
||||
$(slideshow.id).find(slideshow.slide_id + ':first-child').attr('class'),
|
||||
$(slideshow.id).find(slideshow.slide_id + ':first-child').html()
|
||||
]
|
||||
var c = slideshow.current + 1
|
||||
if (c >= slideshow.slides.length) {
|
||||
c = 0
|
||||
}
|
||||
$(slideshow.id).find(slideshow.slide_id + ':first-child').remove()
|
||||
slideshow.slides.shift()
|
||||
var div = $('<div></div>').attr('class', data[0]).attr('data-title', data[1]).attr('data-content', data[2]).html(
|
||||
data[3]
|
||||
)
|
||||
$(slideshow.id).append(
|
||||
div
|
||||
)
|
||||
div.popup(9)
|
||||
slideshow.slides.push(div)
|
||||
slideshow.current = c
|
||||
},
|
||||
setup: () => {
|
||||
$(slideshow.id).parent().css('overflow', 'hidden')
|
||||
$(slideshow.id).find(slideshow.slide_id).each((i, el) => {
|
||||
slideshow.slides.push($(el).html())
|
||||
})
|
||||
var w = $(slideshow.id).find(slideshow.slide_id + ':first-child').css('width')
|
||||
var div = $('<div></div>').attr('class', 'slide').html(slideshow.slides[0])
|
||||
$(slideshow.id).append(div)
|
||||
setTimeout(slideshow.move, slideshow.delay)
|
||||
}
|
||||
}
|
||||
var indicadores = {
|
||||
indicadores: [
|
||||
@foreach ($indicadores as $indicador => $titulo)
|
||||
{
|
||||
sim: '{{$indicador}}',
|
||||
titulo: '{{$titulo}}'
|
||||
},
|
||||
@endforeach
|
||||
],
|
||||
id: '#indicadores',
|
||||
current: {{count($indicadores)}},
|
||||
findIndicador: (i) => {
|
||||
var indicador = indicadores.indicadores[i]
|
||||
return $.ajax({
|
||||
url: '{{$urls->base}}/indicador/' + indicador.sim,
|
||||
success: (data) => {
|
||||
var div = $('<div></div>').attr('class', 'two wide column slide').append(
|
||||
$('<div></div>').attr('class', 'ui header').attr('data-title', 'Fecha').attr('data-content', data.valor.fecha).append(indicador.titulo).append(
|
||||
$('<div></div>').attr('class', 'sub header').html(data.valor.valor)
|
||||
)
|
||||
)
|
||||
div.find('.header').popup(9)
|
||||
$(indicadores.id).find('.slideshow').append(div)
|
||||
}
|
||||
})
|
||||
},
|
||||
setup: () => {
|
||||
var promises = []
|
||||
promise = null
|
||||
$.each(indicadores.indicadores, (i, el) => {
|
||||
promise = indicadores.findIndicador(i)
|
||||
promises.push(promise)
|
||||
})
|
||||
Promise.all(promises).then(() => {
|
||||
//slideshow.setup()
|
||||
})
|
||||
}
|
||||
}
|
||||
$(document).ready(() => {
|
||||
indicadores.setup()
|
||||
})
|
||||
</script>
|
||||
@endpush
|