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())); }
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."); }