diff --git a/common/Controller/Web/Admin/Productos.php b/common/Controller/Web/Admin/Productos.php index dd45cb3..74f5cdb 100644 --- a/common/Controller/Web/Admin/Productos.php +++ b/common/Controller/Web/Admin/Productos.php @@ -11,49 +11,10 @@ use ProVM\KI\Producto; class Productos { public function __invoke(Request $request, Response $response, View $view, ModelFactory $factory): Response { - /*$filename = implode(DIRECTORY_SEPARATOR, [ - $container->get('folders.data'), - 'productos.json' - ]); - $productos = json_decode(trim(file_get_contents($filename)));*/ $productos = $factory->find(Producto::class)->many(); return $view->render($response, 'admin.productos', compact('productos')); } public function edit(Request $request, Response $response, View $view, Container $container, ModelFactory $factory, $producto): Response { - /*$filename = implode(DIRECTORY_SEPARATOR, [ - $container->get('folders.data'), - 'productos.json' - ]); - $id = $producto; - $productos = json_decode(trim(file_get_contents($filename))); - $producto = $productos[$id]; - $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(); - } - }*/ $producto = $factory->find(Producto::class)->where([['id', $producto]])->one(); $filename = implode(DIRECTORY_SEPARATOR, [ @@ -66,33 +27,8 @@ class Productos { } public function do_edit(Request $request, Response $response, Container $container, ModelFactory $factory, $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];*/ $producto = $factory->find(Producto::class)->where([['id', $producto]])->one(); - /*$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; - }*/ $f = Carbon::today(); $post['publicacion'] = $producto->publicacion ?? implode(' ', [ $f->day, @@ -103,37 +39,8 @@ class Productos { $post['id'] = $producto->id; $producto->map((object) $post); - /*$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); - }*/ $producto->save(); - /*$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($producto->id, $destacados) === false) { - $destacados []= $producto->id; - sort($destacados); - $changed = true; - } - } else { - if (($i = array_search($producto->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'])); } @@ -148,33 +55,6 @@ class Productos { public function do_add(Request $request, Response $response, Container $container, ModelFactory $factory): 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));*/ - $f = Carbon::today(); $post['publicacion'] = implode(' ', [ $f->day, @@ -188,54 +68,11 @@ class Productos { } $producto->save(); - /*if (isset($post['destacado']) and $post['destacado'] == 'on') { - //$id = count($productos) - 1; - $id = $producto->id; - $filename = implode(DIRECTORY_SEPARATOR, [ - $container->get('folders.data'), - 'destacados.json' - ]); - $destacados = json_decode(trim(file_get_contents($filename))); - $destacados []= $proyecto->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, ModelFactory $factory): 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]); - $productos = array_values($productos); - $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); - }*/ $producto = $factory->find(Producto::class)->where([['id', $post['id']]])->one(); $status = $producto->delete(); @@ -252,27 +89,6 @@ class Productos { $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);*/ $producto = $factory->find(Producto::class)->where([['id', $producto]])->one(); $status = $producto->addImagen($file); @@ -299,24 +115,6 @@ class Productos { } public function delete_image(Request $request, Response $response, ModelFactory $factory, $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);*/ $producto = $factory->find(Producto::class)->where([['id', $producto]])->one(); $status = $producto->deleteImagen($post['imagen']); @@ -344,7 +142,7 @@ class Productos { 'ProVM', 'KI', 'Productos', - $post['segmento'] + rtrim($post['segmento'], 's') ]); $obj = new $class; $properties = $obj->getProperties(); diff --git a/resources/routes/web/admin/productos.php b/resources/routes/web/admin/productos.php index 3f82273..e129afa 100644 --- a/resources/routes/web/admin/productos.php +++ b/resources/routes/web/admin/productos.php @@ -2,6 +2,7 @@ use ProVM\KI\Common\Controller\Web\Admin\Productos; $app->group('/productos', function($app) { + $app->post('/campos', [Productos::class, 'fields']); $app->group('/add', function($app) { $app->get('[/]', [Productos::class, 'add']); $app->post('[/]', [Productos::class, 'do_add']); diff --git a/resources/views/admin/producto.blade.php b/resources/views/admin/producto.blade.php index 4fe89f3..0fdf423 100644 --- a/resources/views/admin/producto.blade.php +++ b/resources/views/admin/producto.blade.php @@ -31,7 +31,7 @@