Beispiel #1
0
 /**
  * Método del controlador el cual se encarga de la edición de las ofertas
  * @param  integer $id ID de la oferta 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 oferta que se intenta editar es del usuario
             // que realiza la petición
             if (!OfertaModel::comprobarPropiedadOferta($id)) {
                 Session::add('feedback_negative', 'No puedes editar una oferta que no es tuya');
                 header('Location: /Oferta');
                 exit;
             }
             // mostrar el formulario para poder editar
             // para ello deberemos recuperar los BD
             $info = OfertaModel::getId($id);
             $empresa = OfertaModel::getNombreEmpresa();
             $datos = ['titulo' => 'Edición de oferta', 'empresas' => $empresa, 'datos' => $info];
             echo $this->view->render("ofertas/formularioOferta", $datos);
         } else {
             // tratamos los datos en el modelo
             if (OfertaModel::editar($id, $_POST)) {
                 Session::add('feedback_positive', 'La oferta ha sido editada');
                 header('Location: /Oferta');
                 exit;
             } else {
                 // existen errores, llamamos a la vista para mostrar los errores
                 // Saneamos $_POST
                 Session::add('feedback_negative', 'La oferta no se ha podido modificar o no se ha modificado nada');
                 $empresa = OfertaModel::getNombreEmpresa();
                 $array = Validaciones::sanearEntrada($_POST);
                 $datos = ['datos' => $array, 'empresas' => $empresa];
                 // mostramos la vista con los datos saneados,
                 // para evitar la inyeción de código
                 echo $this->view->render('ofertas/formularioOferta', $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();*/
     }
 }