Zona admin
This commit is contained in:
90
common/Controller/Web/Admin/Faq.php
Normal file
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
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
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);
|
||||
}
|
||||
}
|
87
common/Controller/Web/Admin/Productos.php
Normal file
87
common/Controller/Web/Admin/Productos.php
Normal file
@ -0,0 +1,87 @@
|
||||
<?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 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();
|
||||
}
|
||||
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();
|
||||
}
|
||||
public function add_image(Request $request, Response $response, Container $container, $producto): Response {
|
||||
$post = $request->getParsedBody();
|
||||
}
|
||||
public function set_video(Request $request, Response $response, Container $container, $producto): Response {
|
||||
$post = $request->getParsedBody();
|
||||
}
|
||||
public function delete_image(Request $request, Response $response, Container $container, $producto): Response {
|
||||
$post = $request->getParsedBody();
|
||||
}
|
||||
public function delete_video(Request $request, Response $response, Container $container, $producto): Response {
|
||||
$post = $request->getParsedBody();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user