public function indexAction()
 {
     $blog = new Blog();
     /*if ($this->getUser()) {
           // On définit le User par défaut dans le formulaire (utilisateur courant)
           $blog->setUser($this->getUser());
       }*/
     // On crée le formulaire grâce à l'ArticleType
     $form = $this->createForm(new BlogType(), $blog);
     // On récupère la requête
     $request = $this->getRequest();
     // On vérifie qu'elle est de type POST
     if ($request->getMethod() == 'POST') {
         // On fait le lien Requête <-> Formulaire
         $form->bind($request);
         // On vérifie que les valeurs rentrées sont correctes
         if ($form->isValid()) {
             $avatar = new Avatar();
             $avatar->setUrl("default");
             $avatar->setAlt("default");
             $avatar->setPositionX(0);
             $avatar->setPositionY(0);
             $blog->setDate(new \DateTime('now'));
             $blog->setName($blog->getUser()->getUsername());
             $blog->setDescription("Default");
             $blog->setAvatar($avatar);
             // On enregistre l'objet $article dans la base de données
             $em = $this->getDoctrine()->getManager();
             $em->persist($blog);
             $em->flush();
             // On définit un message flash
             $this->get('session')->getFlashBag()->add('info', 'Vous devez activer votre compte avant de pouvoir vous connecter. Le mail d\'activation devrait arriver à l\'adresse indiquée dans quelques minutes.');
             // On redirige vers la page de visualisation de l'article nouvellement créé
             return $this->redirect($this->generateUrl('heliosblog_accueil', array('blog' => $blog->getUser()->getUsername())));
         }
     }
     // À ce stade :
     // - soit la requête est de type GET, donc le visiteur vient d'arriver sur la page et veut voir le formulaire
     // - soit la requête est de type POST, mais le formulaire n'est pas valide, donc on l'affiche de nouveau
     return $this->render('HeliosManagerBundle:Default:index.html.twig', array('form' => $form->createView()));
 }
Beispiel #2
0
 public function validAvatarAction(Avatar $avatar, $tempFilename)
 {
     $blog = $this->get('heliosblog.blog')->getBlog();
     $blogid = $blog->getId();
     $request = $this->getRequest();
     if ($request->isXmlHttpRequest()) {
         $array = explode(".", $tempFilename);
         $tempFilename_ext = $array[1];
         $newFilename = $blogid . '.' . $tempFilename_ext;
         $root_dir = __DIR__ . '/../../../../web/uploads/img/';
         $uploadedFile = __DIR__ . '/../../../../web/uploads/img/' . $tempFilename;
         $updatedFile = __DIR__ . '/../../../../web/uploads/img/' . $newFilename;
         // On archive les anciens avatars
         if (file_exists($updatedFile)) {
             $i = 1;
             while (file_exists($blogid . '_' . $i . '.' . $tempFilename_ext)) {
                 if (!file_exists($blogid . '_' . $i . '.' . $tempFilename_ext)) {
                     break;
                 }
                 $i++;
             }
             rename($root_dir . $newFilename, $root_dir . $blogid . '_' . $i . '.' . $tempFilename_ext);
         }
         if (file_exists($uploadedFile)) {
             rename($uploadedFile, $updatedFile);
         }
         // On enregistre le avatar
         $em = $this->getDoctrine()->getManager();
         $avatar->setUrl($tempFilename_ext);
         $avatar->setAlt($tempFilename);
         $avatar->setPositionX(0);
         $avatar->setPositionY(0);
         $avatarWebPath = $this->get('templating.helper.assets')->getUrl($avatar->getWebPath());
         $em->persist($avatar);
         $em->flush();
         return new Response($avatarWebPath);
         /*$return = array(
                         "name"=>$blog->getName(),
                         "description"=>$blog->getDescription()
                     );
         
                     $return=json_encode($return); //jscon encode the array
                     return new Response($return,200,array('Content-Type'=>'application/json'));
                 */
     }
     return new Response("Erreur lors de la validation. Réessayez plus tard.");
 }