public function accion_introducir() { //sesion::set('carro', null); $error = 'No se ha podido añadir el artículo'; $pagina = isset($_GET['p']) ? (int) $_GET['p'] : 0; $miCarro = sesion::get('carro'); $filtro = array('referencia' => $_GET['id']); $articulo = new articulo(); $sql = $articulo->sqlBuscar($filtro); $res = basedatos::obtenerUno($sql); $articulo->llenar($res); if ($miCarro === null && isset($_GET['id'])) { //Introduce un artículo al carro por primera vez $miCarro = array(); //"Casting" a objeto del array $miCarro (object) ($miCarro[$articulo->referencia] = $articulo); $miCarro[$articulo->referencia]->cantidad = 1; sesion::set('carro', $miCarro); $error = 'Artículo añadido correctamente'; } else { //Comprobar que el artículo que se quiere introducir no está en el carro if (isset($_GET['id'])) { $ya_estaba = false; $id = $_GET['id']; foreach ($miCarro as $key => $value) { if ($miCarro[$key]->referencia === $id) { $miCarro[$key]->cantidad++; $ya_estaba = true; break; } } if (!$ya_estaba) { $miCarro[$articulo->referencia] = $articulo; $miCarro[$articulo->referencia]->cantidad++; } sesion::set('carro', $miCarro); $error = 'Artículo añadido correctamente'; } } vista::generarPagina('inicio/ver', array('pagina' => $pagina, 'error' => $error, 'modelo' => $articulo)); }