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();*/
     }
 }
Beispiel #2
0
 /**
  * Método de edición de ofertas
  * @param  Integer $id    ID de la oferta a modificar
  * @param  Array $array   Datos a editar
  * @return Boolean        True = si se realiza la edición, False = sino se realiza
  */
 public static function editar($id, $array)
 {
     if (!$array) {
         Session::add('feedback_negative', 'No se han recicibido datos');
         return false;
     }
     // hacemos las validaciones
     if ($ofr = OfertaModel::getId($id)) {
         if ($ofr) {
             $array['id'] = $ofr['id'];
         }
         if (OfertaModel::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 oferta');
                 return false;
             }
             $empresa = Session::get('empresa');
             $empresa = $empresa['id'];
             $datos = [':nombre' => $array['nombre'], ':descripcion' => $array['descripcion'], ':requisitos' => $array['requisitos'], ':url' => $array['url'], ':salario' => $array['salario'], ':empresa' => $empresa, ':id' => $id];
             Session::delete('empresa');
             // devolvemos lo que la inserción nos dice
             //d($datos);die;
             return OfertaModel::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;
     }
 }