src/Controller/AfficheMessageController.php line 40

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Parametres;
  4. use App\Entity\MessageParametre;
  5. use App\Services\MessageReponse;
  6. use Symfony\Component\Form\Extension\Core\Type\TextType;
  7. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  8. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  11. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  12. use Symfony\Component\HttpFoundation\Request;
  13. class AfficheMessageController extends Controller
  14. {
  15. /*
  16.     public function index()
  17.     {
  18.         return $this->render('affiche_message/index.html.twig', [
  19.             'controller_name' => 'AfficheMessageController',
  20.         ]);
  21.     }
  22.     */
  23.     
  24.     public function afficheMessage(Request $requestSessionInterface $sessionMessageReponse $msgRep)
  25.     {
  26.         if($request->isMethod('GET')) 
  27.         {
  28.             
  29.             $user $session->get('user'null);
  30.         
  31.             $idMessage $_GET['idMessage'];
  32.          
  33.             $em $this->getDoctrine()->getManager();
  34.             $message0 $em->createQueryBuilder('msg')->select('m')->from('App\Entity\MessageParametre''m')->where('m.id ='.$idMessage)->getQuery()->getResult();
  35.             $message $message0[0];
  36.             $id_pseudo $message->getIdParametre();
  37.             $stmt_pseudo  $em->getConnection()->prepare('SELECT `pseudo` FROM `parametres` WHERE `parametres`.`id_parametres` ='.$id_pseudo);
  38.             $stmt_pseudo->execute();
  39.             $pseudo = ($stmt_pseudo->fetchAll())[0]['pseudo'];
  40.             
  41.             $reponses $msgRep->getReponses($message$em->getConnection());
  42.         
  43.             $reponses_pseudo = array();
  44.             foreach($reponses as $reponse
  45.             {
  46.                 $sender $em->createQueryBuilder('pseudo')->select('u')->from('App\Entity\Parametres''u')->where('u.idParametres ='.$reponse['id_parametre'])->getQuery()->getResult();
  47.                 if(empty($sender))
  48.                 {
  49.                     $reponses_pseudo[] = "Non renseigné";
  50.                 }
  51.                 else 
  52.                 {
  53.                     $reponses_pseudo[] = $sender[0]->getPseudo();
  54.                 }
  55.             }
  56.             
  57.             $newMessage = new MessageParametre();
  58.         
  59.             $MessageForm $this->getMessageForm($newMessage);
  60.             
  61.             return $this->render('Messages/afficheMessage.html.php', array(
  62.                 'user'=>$user,
  63.                 'pseudo'=>$pseudo,
  64.                 'idMessage'=>$idMessage,
  65.                 'message'=>$message,
  66.                 'reponses'=>$reponses,
  67.                 'reponsesPseudo'=>$reponses_pseudo,
  68.                 'messageForm'=>$MessageForm->createView()
  69.                 ));
  70.         }
  71.         if($request->isMethod('POST') && $session->get('user',null) != null)
  72.         {
  73.             $newMessage = new MessageParametre();
  74.             $MessageForm $this->getMessageForm($newMessage);
  75.             $MessageForm->handleRequest($request);
  76.             if($MessageForm->isSubmitted() && $MessageForm->isValid())
  77.             {
  78.                 $idPere $_POST['idPere'];
  79.                 $newMessage->setIdPere($idPere);
  80.                 $newMessage->setIdParametre($session->get('user')->getIdParametres());
  81.                 $newMessage->setDateCreation(new \DateTime('NOW'));
  82.                 $newMessage->setDateMaj(new \DateTime('NOW'));
  83.                 $em $this->getDoctrine()->getManager();
  84.                 $em->persist($newMessage);
  85.                 $em->flush();
  86.                 return $this->redirectToRoute('afficheMessage', array('idMessage' => $idPere));
  87.             }
  88.             return $this->redirectToRoute('afficheMessage', array('idMessage' => $idPere));
  89.         }
  90.     }
  91.     
  92.     public function getMessageForm($message
  93.     {
  94.          $MessageForm $this->createFormBuilder($message)
  95.             ->add('message'TextareaType::class,array('label' => 'Votre Reponse'))
  96.             ->add('save'SubmitType::class, ['label' => 'Répondre'])
  97.             ->getForm();
  98.         return $MessageForm;
  99.     }
  100.     
  101.     public function newMessage(Request $requestSessionInterface $session)
  102.     {
  103.         $user $session->get('user'null);
  104.         if($user == null)
  105.         {
  106.             return $this->redirectToRoute('login');
  107.         }
  108.         
  109.         $newMessage = new MessageParametre();
  110.         $MessageForm $this->getMessageForm($newMessage);
  111.         $MessageForm->handleRequest($request);
  112.         if($MessageForm->isSubmitted() && $MessageForm->isValid())
  113.         {
  114.             $newMessage->setIdParametre($session->get('user')->getIdParametres());
  115.             $newMessage->setDateCreation(new \DateTime('NOW'));
  116.             $newMessage->setDateMaj(new \DateTime('NOW'));
  117.             $em $this->getDoctrine()->getManager();
  118.             $em->persist($newMessage);
  119.             $em->flush();
  120.             return $this->redirectToRoute('afficheMessage', array('idMessage' => $newMessage->getId()));
  121.         }
  122.         
  123.         return $this->render('Messages/newMessage.html.php', array(
  124.                 'user'=>$user,
  125.                 'messageForm'=>$MessageForm->createView()
  126.                 ));
  127.                 
  128.     }
  129.     
  130. }