Exemplo n.º 1
0
 /**
  *
  * Funcion que da modifica la informacion de un pincho solo si el usuario que
  * realiza esta accion es un participante. Si el pincho no existe no permite
  * la modificación. Además realiza las comprobaciones necesarias de los datos
  * introducidos.
  * @access public
  *
  */
 public function modificacionPincho()
 {
     $pinchotemp = new Pincho();
     $codvototemp = new CodVoto();
     $currentuser = $_SESSION["currentuser"];
     if (isset($_GET["idPi"])) {
         $idPi = $_GET["idPi"];
     }
     if ($currentuser->getTipoU() == "P") {
         //commprueba que el usuario esta logeado
         if (isset($_POST["nombrePi"])) {
             if ($pinchotemp->pinchoExists($currentuser->getEmailU())) {
                 //compueba si este participante ya metio algun pincho
                 $ruta = "./resources/img/pinchos/";
                 //ruta carpeta donde queremos copiar las imagenes
                 $idpincho = $pinchotemp->generarIdPi($currentuser->getEmailU());
                 //devuelve el id del pinchos
                 $fotoPiSize = $_FILES['fotoPi']['size'];
                 $fotoPi = $ruta . $_FILES['fotoPi']['name'];
                 $fotoPiTemp = $_FILES['fotoPi']['tmp_name'];
                 if ($ruta . $_FILES['fotoPi']['name'] == $ruta) {
                     $pincho = $this->pincho->showDatesPi($idPi);
                     $fotoPi = $pincho->getFotoPi();
                 } else {
                     $fotoPi = $ruta . $_FILES['fotoPi']['name'];
                     if (strlen($fotoPi) >= 45) {
                         $fotoPi = substr($fotoPi, 0, 40) . '.jpg';
                     }
                     move_uploaded_file($fotoPiTemp, $fotoPi);
                     //pasa la foto de la carpeta temporal a la del servidor web
                 }
                 $pinchotemp->setFotoPi($fotoPi, $fotoPiSize);
                 $pinchotemp->setNombrePi($_POST["nombrePi"]);
                 $pinchotemp->setPrecioPi($_POST["precioPi"]);
                 $pinchotemp->setIngredientesPi($_POST["ingredientesPi"]);
                 $pinchotemp->setCocineroPi($_POST["cocineroPi"]);
                 try {
                     //Hace todas las coprobaciones a la informacion introducida por el usuario
                     $pinchotemp->checkInfoPi();
                     $pinchotemp->updatePi($idPi);
                     //mensaje de confirmación y redirige al metodo consultarPincho del controlador PinchoController
                     echo "<script> alert('Pincho modificado correctamente'); </script>";
                     echo "<script>window.location.replace('index.php?controller=pincho&action=listadoPincho');</script>";
                 } catch (ValidationException $ex) {
                     $errors = $ex->getErrors();
                     $this->view->setVariable("errors", $errors);
                     $pinchotemp = $this->pincho->showDatesPi($idPi);
                     $this->view->setVariable("pincho", $pinchotemp);
                     $this->view->render("vistas", "modificacionPincho");
                     //te muestra el formulario la primera vez
                 }
                 // Guarda el valor de la variable $pincho en la variable pincho accesible desde la vista
             } else {
                 //si ya habia un pincho creado por ese participante
                 echo "<script> alert('No has subido ningun pincho'); </script>";
                 echo "<script>window.location.replace('index.php?controller=pincho&action=listadoPincho');</script>";
             }
         } else {
             $pinchotemp = $this->pincho->showDatesPi($idPi);
             $this->view->setVariable("pincho", $pinchotemp);
             $this->view->render("vistas", "modificacionPincho");
             //te muestra el formulario la primera vez
         }
     } else {
         echo "<script> alert('NO eres un Participante, NO puedes dar de modificar un pincho'); </script>";
         echo "<script>window.location.replace('index.php?controller=pincho&action=listadoPincho');</script>";
     }
 }