/** * Método que edita una empresas * @param Integer $id ID de la empresa a editar * @param Array $array Datos a actualizar * @return Boolean True = cuando el registro se edita * False = cuando el registro no se edita */ public static function editar($id, $array) { if (!$array) { Session::add('feedback_negative', 'No se han recicibido datos'); return false; } // hacemos las validaciones if ($emp = EmpresaModel::getId($id)) { if ($emp) { $array['id'] = $emp['id']; } if (EmpresaModel::validar($array)) { // Saneamos el array $array = Validaciones::sanearEntrada($array); // Procedemos a la inserción de la empresa en la base de datos // Para ello preestablecemos el array que queremos insertar if (!Session::get('user_id')) { Session::add('feedback_negative', 'No tiene iniciada sesión, por lo tanto no podemos crear la empresa'); return false; } $usuario = Session::get('user_id'); $datos = [':nombre' => $array['nombre'], ':web' => $array['web'], ':descripcion' => $array['descripcion'], ':usuario' => (int) $usuario, ':id' => (int) $id]; // devolvemos lo que la inserción nos dice //d($datos);die; return EmpresaModel::edit($datos); } else { // Como ya existen los errores en Session // simplemente los devolvemos return false; } } else { Session::add('feedback_negative', 'No se ha modificado la empresa'); return false; } }
/** * Método de edición de Empresas * @param integer $id ID de la empresa a editar */ public function editar($id = 0) { // validamos y saneamos aqui porque vamos a utilizarlo en caso // de que no haya $_POST $id = (int) $id; $id = Validaciones::saneamiento($id); // Bloque try catch para preveer posibles excepciones try { if (!$_POST) { // comprobamos si la empresa que se intenta editar es del usuario // que realiza la petición if (!EmpresaModel::comprobarPropiedadEmpresa($id)) { Session::add('feedback_negative', 'No puedes editar una empresa que no es tuya'); header('Location: /Empresa'); exit; } // mostrar el formulario para poder editar // para ello deberemos recuperar los BD $empresa = EmpresaModel::getId($id); $datos = ['titulo' => 'Edición de empresa', 'datos' => $empresa]; echo $this->view->render("empresa/formularioEmpresa", $datos); } else { // tratamos los datos en el modelo if (EmpresaModel::editar($id, $_POST)) { Session::add('feedback_positive', 'La empresa ha sido editada'); $last_id = $_POST["last_id"]; header('Location: /Empresa'); exit; } else { // existen errores, llamamos a la vista para mostrar los errores // Saneamos $_POST Session::add('feedback_negative', 'La empresa no se ha podido modificar o no se ha modificado nada'); $array = Validaciones::sanearEntrada($_POST); $datos = ['datos' => $array]; // mostramos la vista con los datos saneados, // para evitar la inyeción de código echo $this->view->render('empresa/formularioEmpresa', $datos); } } } catch (PDOException $e) { // llamamos a la vista de error 500 $array = ['msg' => 'Error del servidor, disculpe las molestias.']; echo $this->view->render('error/error500', $array); // modo debbug ON /*echo '<pre>'; echo $e->getMessage();*/ } }