Example #1
0
 /**
  * Renvoie à la page "http://moove-arl64.c9users.io/web/app_dev.php/proposer"
  * @param <i>(Request)</i> ???
  * @return <i>Render</i> redirige sur mooveActiviteBundle:Activite:proposerActivite.html.twig
  */
 public function proposerActiviteAction(Request $requeteUtilisateur)
 {
     // On crée un objet "activité"
     $activite = new Activite();
     $lieuRDV = new Lieu();
     $today = getDate();
     //$jour = $today['wday'];
     $annee = $today['year'];
     //$mois = mktime( 0, 0, 0, $today['mon'], 1, $today['year'] );
     // $nombreDeJoursMois = intval(date("t",$mois));
     // On initialise l'organisteur avec l'utilisateur qui est entrain de créer l'activité
     $activite->setOrganisateur($this->getUser())->setDateCreation(new \Datetime())->setDateFermeture(new \Datetime())->setDateHeureRDV(new \Datetime())->setEstTerminee(false)->setNbParticipants(1);
     // On crée le formulaire permettant de saisir un livre
     $formulaireActivite = $this->createForm(new ActiviteType(), $activite);
     /* On analyse la requête courante pour savoir si le formulaire a été soumis ou pas.
        Dans le cas d'une soumission, les données saisies par l'utilisateur viendront remplir
        l'objet $activite*/
     $formulaireActivite->handleRequest($requeteUtilisateur);
     if ($formulaireActivite->isValid()) {
         // On récupère l'adresse les adresses des lieux
         $adresseLieuRDV = $formulaireActivite->getData()->getAdresseLieuRDV();
         $adresseLieuDepart = $formulaireActivite->getData()->getAdresseLieuDepart();
         $adresseLieuArrivee = $formulaireActivite->getData()->getAdresseLieuArrivee();
         // On récupère les infos de chaque lieu dans un nouvel objet
         $lieuRDV = $this->getInfosAdresse($adresseLieuRDV);
         // On appelle le gestionnaire d'entité
         $gestionnaireEntite = $this->getDoctrine()->getManager();
         if (!(is_null($adresseLieuDepart) || is_null($adresseLieuArrivee))) {
             $lieuDepart = $this->getInfosAdresse($adresseLieuDepart);
             $lieuArrivee = $this->getInfosAdresse($adresseLieuArrivee);
             $gestionnaireEntite->persist($lieuDepart);
             $gestionnaireEntite->persist($lieuArrivee);
             $activite->setLieuDepart($lieuDepart)->setLieuArrivee($lieuArrivee);
         }
         // On persiste les lieux
         $gestionnaireEntite->persist($lieuRDV);
         // On ajoute le lieu à l'activité
         $activite->setLieuRDV($lieuRDV);
         // On créé un objet Participer
         $participer = new Participer();
         // On remplit l'objet Participer avec l'activité et l'utilisateur organisateur
         $participer->setActivite($activite)->setUtilisateur($this->getUser())->setEstAccepte(1);
         // On persiste la participation dans la base de données
         $gestionnaireEntite->persist($participer);
         //On enregistre l'objet $activite en base de données
         $gestionnaireEntite->persist($activite);
         $gestionnaireEntite->flush();
         // $this->get('session')
         $requeteUtilisateur->getSession()->getFlashBag()->add('notice', 'Activité publiée.');
         //On redirige vers la page de visualisation de l'activité ajouté
         return $this->redirect($this->generateUrl('moove_activite_detailsActivite', array('idActivite' => $activite->getId())));
     }
     //A ce point, le visiteur arrive sur la page qui doit afficher le formulaire
     return $this->render('mooveActiviteBundle:Activite:proposerActivite.html.twig', array('formulaireActivite' => $formulaireActivite->createView()));
 }