src/Controller/DioceseController.php line 39

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  4. use Symfony\Component\HttpFoundation\Session\Session;
  5. use Symfony\Component\HttpFoundation\RequestStack;
  6. use Symfony\Component\HttpFoundation\Cookie;
  7. use mysqli;
  8. use App\Entity\Baskets;
  9. use App\Entity\Masterdata;
  10. use App\Form\BasketsType;
  11. use App\Form\CaptchaType;
  12. use App\Controller\FunctionController;
  13. use App\Service;
  14. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. use Symfony\Component\HttpFoundation\Request;
  18. use Gregwar\Captcha\CaptchaBuilder;
  19. use Symfony\Component\Mailer\MailerInterface;
  20. use Symfony\Component\Mime\Email;
  21. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  22. use PHPMailer\PHPMailer\PHPMailer;
  23. use Symfony\Component\Mime\Crypto\DkimSigner;
  24. use Symfony\Component\Mime\Crypto\DkimOptions;
  25. class DioceseController extends AbstractController
  26. {   
  27.     
  28.     private $session;
  29.     public function __construct(SessionInterface $session)
  30.     {
  31.         $this->session $session;
  32.         // $this->session->clear();   // permet d effacer le contenu de la session
  33.         if($this->session) {
  34.             $this->session->set('attribut',8);
  35.             //dump($this->monPanier);
  36.         }
  37.     }
  38.     
  39.     // const url ='http://localhost/Diocese/scripts/masterdata.xml';
  40.     // const xml = simplexml_load_file($url, 'SimpleXMLElement');
  41.     // public const XML_MASTERDATA = simplexml_load_file('http://localhost/Diocese/scripts/masterdata.xml', 'SimpleXMLElement');
  42.     /**
  43.      * @Route("/diocese", name="diocese")
  44.      */
  45.     public function index(): Response
  46.     {   
  47.         $url ='http://localhost/Diocese/scripts/masterdata.xml';
  48.         $xml simplexml_load_file($url'SimpleXMLElement');
  49.         $captcha = new Captcha ('captcha'CaptchaType::class);
  50.         return $this->render('diocese/index.html.twig', [
  51.             'controller_name' => 'DioceseController',
  52.             'xml' => $xml,'captcha'=>$captcha
  53.         ]);
  54.     }
  55.       /**
  56.       * @Route("/421_premiere_lecture_dans_l_ancien_testament/code={code}", name="421_premiere_lecture_dans_l_ancien_testament")
  57.       */
  58.       public function page421($code
  59.       {
  60.         $Functions = new FunctionController();
  61.         include(dirname(__FILE__) . '/headerControl.php');
  62.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  63.         $asterisk "";
  64.         $desc $xmls[3]->N421->description;
  65.         $leslectures $Functions->searchByType(2100,$xmls[1],$language,$code);
  66.         $laLecture $Functions->searchOne(2100,$xmls[1],$language,$code);
  67.         return $this->render('diocese/421_premiere_lecture_dans_l_ancien_testament.html.twig', [
  68.             'xml' => $xmls[0],'xml2' => $xmls[3],'desc' => $desc,'code'=>$code,'lectures'=>$leslectures,'asterisk'=>$asterisk,'lalecture'=>$laLecture,'navbar'=>$navbar
  69.         ]);  
  70.         
  71.       }
  72.       /**
  73.       * @Route("/422_premiere_lecture_dans_le_nouveau_testament/code={code}", name="422_premiere_lecture_dans_le_nouveau_testament")
  74.       */
  75.       public function page422($code
  76.       {
  77.         $Functions = new FunctionController();
  78.         include(dirname(__FILE__) . '/headerControl.php');
  79.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  80.         $asterisk "";
  81.         $desc $xmls[3]->N422->description;
  82.         $leslectures $Functions->searchByType(2300,$xmls[1],$language,$code);
  83.         $laLecture $Functions->searchOne(2300,$xmls[1],$language,$code);
  84.         return $this->render('diocese/422_premiere_lecture_dans_le_nouveau_testament.html.twig', [
  85.             'xml' => $xmls[0],'xml2' => $xmls[3],'desc' => $desc,'code'=>$code,'lectures'=>$leslectures,'asterisk'=>$asterisk,'lalecture'=>$laLecture,'navbar'=>$navbar
  86.         ]);  
  87.         
  88.       }
  89.       /**
  90.       * @Route("/423_deuxieme_lecture_dans_le_livre_des_psaumes/code={code}", name="423_deuxieme_lecture_dans_le_livre_des_psaumes")
  91.       */
  92.       public function page423($code
  93.       {
  94.         $Functions = new FunctionController();
  95.         include(dirname(__FILE__) . '/headerControl.php');
  96.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  97.         $asterisk "";
  98.         $desc $xmls[3]->N423->description;
  99.         $leslectures $Functions->searchByType(2200,$xmls[1],$language,$code);
  100.         $laLecture $Functions->searchOne(2200,$xmls[1],$language,$code);
  101.         return $this->render('diocese/423_deuxieme_lecture_dans_le_livre_des_psaumes.html.twig', [
  102.             'xml' => $xmls[0],'xml2' => $xmls[3],'desc' => $desc,'code'=>$code,'lectures'=>$leslectures,'asterisk'=>$asterisk,'lalecture'=>$laLecture,'navbar'=>$navbar
  103.         ]);  
  104.         
  105.       }
  106.       /**
  107.       * @Route("/424_troisieme_lecture_dans_le_livre_des_evangiles/code={code}", name="424_troisieme_lecture_dans_le_livre_des_evangiles")
  108.       */
  109.       public function page424($code
  110.       {
  111.         $Functions = new FunctionController();
  112.         include(dirname(__FILE__) . '/headerControl.php');
  113.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  114.         $asterisk "";
  115.         $desc $xmls[3]->N424->description;
  116.         $leslectures $Functions->searchByType(2500,$xmls[1],$language,$code);
  117.         $laLecture $Functions->searchOne(2500,$xmls[1],$language,$code);
  118.         return $this->render('diocese/424_troisieme_lecture_dans_le_livre_des_evangiles.html.twig', [
  119.             'xml' => $xmls[0],'xml2' => $xmls[3],'desc' => $desc,'code'=>$code,'lectures'=>$leslectures,'asterisk'=>$asterisk,'lalecture'=>$laLecture,'navbar'=>$navbar
  120.         ]);  
  121.         
  122.       }
  123.       /**
  124.       * @Route("/425_notre_choix_de_lectures", name="425_notre_choix_de_lectures")
  125.       */
  126.       public function page425(Request $request) : Response
  127.       {  
  128.         $Functions = new FunctionController();
  129.         include(dirname(__FILE__) . '/headerControl.php');
  130.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  131.         
  132.         // // Recherche du panier selon l'id session
  133.         $panierL $Functions->search_Basket($xmls[0],$sessId);
  134.         
  135.         // Récupérer liste d'id des lectures existantes
  136.         $masterdata $Functions->search_All_Readings($xmls[1],$language);
  137.         
  138.         // Créer le panier de lectures
  139.         $totalmasterdata count($masterdata);
  140.         for ($i=0$i <$totalmasterdata$i++) { 
  141.             if(!in_array(strval($masterdata[$i]->id),$panierL)){
  142.                 unset($masterdata[$i]);
  143.             }
  144.         }
  145.         // Récupérer la partie de la bible correspondante
  146.         $Types $Functions->getPartie($masterdata);
  147.         // Récupérer le message de choix des livres
  148.         
  149.         $message $Functions->msgChoixL($masterdata,$xmls[3]);
  150.         // Vérifier les lectures traitant du mariage
  151.         $message2 ="";
  152.         $compteur 0;
  153.         foreach ($masterdata as $leslectures) {
  154.             $compteur += $leslectures->asterisk;
  155.         }
  156.         if ($compteur >=1){
  157.             $message2 $xmls[3]->NbrAsterisk->Unouplus;
  158.         }
  159.         else{
  160.             $message2 $xmls[3]->NbrAsterisk->Aucun;
  161.         }
  162.     $captcha = new Baskets();
  163.         $form $this->createForm(BasketsType::class, $captcha);
  164.         $form->handleRequest($request);
  165.         if ($form->isSubmitted() && $form->isValid()){ 
  166.             return $this->redirecttoRoute('send_mail',['sessId' => $sessId,'mail' => $_POST['mail']]);    
  167.         }
  168.         
  169.         return $this->render('diocese/425_notre_choix_de_lectures.html.twig', [
  170.            'masterdata'=>$masterdata,'xml4'=>$xmls[3],'message'=>$message,'message2'=>$message2,'navbar'=>$navbar,'form'=>$form->createView(),'sessId'=>$sessId
  171.             // 'xml' => $xml,'xml2' => $xml2,'desc' => $desc,'code'=>$code,'lectures'=>$leslectures,'asterisk'=>$asterisk,'lalecture'=>$laLecture
  172.         ]); 
  173.         
  174.       }
  175.       /**
  176.       * @Route("/430_le_choix_des_prieres", name="430_le_choix_des_prieres")
  177.       */
  178.       public function page430() 
  179.       {
  180.         
  181.         $leslectures = array();
  182.         $leslectures2 = array();
  183.         $leslectures3 = array();
  184.         $leslectures4 = array();
  185.         $leslectures5 = array();
  186.         $Functions = new FunctionController();
  187.         include(dirname(__FILE__) . '/headerControl.php');
  188.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  189.         // Code par défaut pour chaque type de prière
  190.         foreach($xmls[1]->masterdata->Ecrits as $lesEcrits)
  191.             {
  192.              if($lesEcrits->type == 3100 && $lesEcrits->language == $language){
  193.                     if (!count($leslectures) >= 1){
  194.                         $leslectures[] = intval($lesEcrits->code); 
  195.                     }
  196.                 }
  197.              if($lesEcrits->type == 3200 && $lesEcrits->language == $language){
  198.                     if (!count($leslectures2) >= 1){
  199.                         $leslectures2[] = intval($lesEcrits->code); 
  200.                     }
  201.                 }
  202.              if($lesEcrits->type == 3310 && $lesEcrits->language == $language){
  203.                     if (!count($leslectures3) >= 1){
  204.                         $leslectures3[] = intval($lesEcrits->code); 
  205.                     }
  206.                 }
  207.              if($lesEcrits->type == 3500 && $lesEcrits->language == $language){
  208.                     if (!count($leslectures4) >= 1){
  209.                         $leslectures4[] = intval($lesEcrits->code); 
  210.                     }
  211.                 }
  212.              if($lesEcrits->type == 3700 && $lesEcrits->language == $language){
  213.                     if (!count($leslectures5) >= 1){
  214.                         $leslectures5[] = intval($lesEcrits->code); 
  215.                     }
  216.                 }
  217.             }
  218.         return $this->render('diocese/430_le_choix_des_prieres.html.twig', [
  219.             'lecture'=>$leslectures,'lecture2'=>$leslectures2,'lecture3'=>$leslectures3,'lecture4'=>$leslectures4,'lecture5'=>$leslectures5,'navbar'=>$navbar
  220.             // 'xml' => $xml,'xml2' => $xml2,'desc' => $desc,'code'=>$code,'lectures'=>$leslectures,'asterisk'=>$asterisk,'lalecture'=>$laLecture
  221.         ]);  
  222.         
  223.       }
  224.       /**
  225.       * @Route("/431_la_profession_de_foi/code={code}", name="431_la_profession_de_foi")
  226.       */
  227.       public function page431($code
  228.       {
  229.             $Functions = new FunctionController();
  230.             include(dirname(__FILE__) . '/headerControl.php');
  231.             $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  232.             $desc $xmls[3]->N431->description;
  233.             $leslectures $Functions->searchByType(3100,$xmls[1],$language,$code);
  234.             $laLecture $Functions->searchOne(3100,$xmls[1],$language,$code);
  235.             return $this->render('diocese/431_la_profession_de_foi.html.twig', [
  236.                 'xml' => $xmls[0],'xml2' => $xmls[3],'desc' => $desc,'code'=>$code,'lectures'=>$leslectures,'lalecture'=>$laLecture,'navbar'=>$navbar
  237.             ]);  
  238.             
  239.       }
  240.       /**
  241.       * @Route("/432_le_dialogue_initial/code={code}", name="432_le_dialogue_initial")
  242.       */
  243.       public function page432($code
  244.       {
  245.         $Functions = new FunctionController();
  246.         include(dirname(__FILE__) . '/headerControl.php');
  247.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  248.         $desc $xmls[3]->N432->description;
  249.         $leslectures $Functions->searchByType(3200,$xmls[1],$language,$code);
  250.         $laLecture $Functions->searchOne(3200,$xmls[1],$language,$code);
  251.         return $this->render('diocese/432_le_dialogue_initial.html.twig', [
  252.             'xml' => $xmls[0],'xml2' => $xmls[3],'desc' => $desc,'code'=>$code,'lectures'=>$leslectures,'lalecture'=>$laLecture,'navbar'=>$navbar
  253.         ]);  
  254.         
  255.       }
  256.       /**
  257.       * @Route("/434_l_echange_des_consentements/code={code}", name="434_l_echange_des_consentements")
  258.       */
  259.       public function page434($code
  260.       {
  261.         $Functions = new FunctionController();
  262.         include(dirname(__FILE__) . '/headerControl.php');
  263.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  264.         $desc $xmls[3]->N434->description;
  265.         $leslectures $Functions->searchByType(3310,$xmls[1],$language,$code);
  266.         $laLecture $Functions->searchOne(3310,$xmls[1],$language,$code);
  267.         return $this->render('diocese/434_l_echange_des_consentements.html.twig', [
  268.             'xml' => $xmls[0],'xml2' => $xmls[3],'desc' => $desc,'code'=>$code,'lectures'=>$leslectures,'lalecture'=>$laLecture,'navbar'=>$navbar
  269.         ]);  
  270.         
  271.       }
  272.       /**
  273.       * @Route("/437_la_benediction_nuptiale_copyright/code={code}", name="437_la_benediction_nuptiale_copyright")
  274.       */
  275.       public function page437($code
  276.       {
  277.         $Functions = new FunctionController();
  278.         include(dirname(__FILE__) . '/headerControl.php');
  279.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  280.         $desc $xmls[3]->N437->description;
  281.         $leslectures $Functions->searchByType(3500,$xmls[1],$language,$code);
  282.         $laLecture $Functions->searchOne(3500,$xmls[1],$language,$code);
  283.         return $this->render('diocese/437_la_benediction_nuptiale_copyright.html.twig', [
  284.             'xml' => $xmls[0],'xml2' => $xmls[3],'desc' => $desc,'code'=>$code,'lectures'=>$leslectures,'lalecture'=>$laLecture,'navbar'=>$navbar
  285.         ]);  
  286.         
  287.       }
  288.       /**
  289.       * @Route("/440_la_priere_universelle/code={code}", name="440_la_priere_universelle")
  290.       */
  291.       public function page440($code
  292.       {
  293.         $Functions = new FunctionController();
  294.         include(dirname(__FILE__) . '/headerControl.php');
  295.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  296.         $desc $xmls[3]->N440->description;
  297.         $leslectures $Functions->searchByType(3700,$xmls[1],$language,$code);
  298.         $laLecture $Functions->searchOne(3700,$xmls[1],$language,$code);
  299.         return $this->render('diocese/440_la_priere_universelle.html.twig', [
  300.             'xml' => $xmls[0],'xml2' => $xmls[3],'desc' => $desc,'code'=>$code,'lectures'=>$leslectures,'lalecture'=>$laLecture,'navbar'=>$navbar
  301.         ]);  
  302.       }
  303.       /**
  304.       * @Route("/add_to_booklet/code={code}", name="add_to_booklet")
  305.       */
  306.       public function add_to_booklet($code)
  307.       {    
  308.         $Functions = new FunctionController();
  309.         include(dirname(__FILE__) . '/headerControl.php');
  310.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  311.         // Ajouter la lecture/prière au panier
  312.         $TypeBasket $Functions->create_Basket($sessId,$xmls[1],$xmls[0],$code);
  313.         
  314.         if($TypeBasket<3000){
  315.             return $this->redirecttoRoute('425_notre_choix_de_lectures');
  316.            }
  317.            else{
  318.             return $this->redirecttoRoute('442_notre_choix_de_prières');
  319.            }
  320.            
  321.       }
  322.       
  323.       /**
  324.       * @Route("/delete_from_booklet/code={code}", name="delete_from_booklet")
  325.       */
  326.       public function delete_from_booklet($code)
  327.       {  
  328.          
  329.         $Functions = new FunctionController();
  330.         include(dirname(__FILE__) . '/headerControl.php');
  331.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  332.         // Supprimer la lecture/prière du panier
  333.         $Functions->delete_Basket($sessId,$xmls[1],$xmls[0],$code);
  334.         $TypeBasket $Functions->delete_Basket($sessId,$xmls[1],$xmls[0],$code);
  335.         
  336.         if($TypeBasket<3000){
  337.             return $this->redirecttoRoute('425_notre_choix_de_lectures');
  338.            }
  339.            else{
  340.             return $this->redirecttoRoute('442_notre_choix_de_prières');
  341.            }
  342.       }
  343.       /**
  344.       * @Route("/442_notre_choix_de_prieres", name="442_notre_choix_de_prières")
  345.       */
  346.       public function page442(Request $request) : Response
  347.       {
  348.        
  349.         $Functions = new FunctionController();
  350.         include(dirname(__FILE__) . '/headerControl.php');
  351.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  352.     
  353.         // Recherche du panier selon l'id session
  354.         $panierP $Functions->search_Basket($xmls[0],$sessId);
  355.         
  356.         // Récupérer liste d'id des prières existantes
  357.         $masterdata $Functions->search_All_Prayers($xmls[1],$language);
  358.         
  359.         // Créer le panier de lectures
  360.         $totalmasterdata count($masterdata);
  361.         for ($i=0$i <$totalmasterdata$i++) { 
  362.             if(!in_array(strval($masterdata[$i]->id),$panierP)){
  363.                 unset($masterdata[$i]);
  364.             }
  365.         }
  366.         // Récupérer la partie de la bible correspondante
  367.         $Types $Functions->getPartie($masterdata);
  368.         // Récupérer le message de choix des livres
  369.         
  370.         $message $Functions->msgChoixP($masterdata,$xmls[3]);
  371.     
  372.     $captcha = new Baskets();
  373.         $form $this->createForm(BasketsType::class, $captcha);
  374.         $form->handleRequest($request);
  375.         if ($form->isSubmitted() && $form->isValid()){ 
  376.             return $this->redirecttoRoute('send_mail',['sessId' => $sessId,'mail' => $_POST['mail']]);    
  377.         }
  378.         
  379.        return $this->render('diocese/442_notre_choix_de_prieres.html.twig', [
  380.            'masterdata'=>$masterdata,'xml4'=>$xmls[3],'message'=>$message,'sessId'=>$sessId,'navbar'=>$navbar,'form'=>$form->createView(),'sessId'=>$sessId
  381.             // 'xml' => $xml,'xml2' => $xml2,'desc' => $desc,'code'=>$code,'lectures'=>$leslectures,'asterisk'=>$asterisk,'lalecture'=>$laLecture
  382.         ]); 
  383.         
  384.       }
  385.       /**
  386.       * @Route("/print_booklet", name="print_booklet")
  387.       */
  388.       public function printbooklet()
  389.       {
  390.         $Functions = new FunctionController();
  391.         include(dirname(__FILE__) . '/headerControl.php');
  392.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  393.         // Lectures
  394.         // Recherche du panier selon l'id session
  395.         $panierL $Functions->search_Basket($xmls[0],$sessId);
  396.         
  397.         // Récupérer liste d'id des lectures existantes
  398.         $masterdata $Functions->search_All_Readings($xmls[1],$language);
  399.         
  400.         // Créer le panier de lectures
  401.         $totalmasterdata count($masterdata);
  402.         for ($i=0$i <$totalmasterdata$i++) { 
  403.             if(!in_array(strval($masterdata[$i]->id),$panierL)){
  404.                 unset($masterdata[$i]);
  405.             }
  406.         }
  407.       
  408.       // Recupérer les prières
  409.         // Recherche du panier selon l'id session
  410.         $panierP $Functions->search_Basket($xmls[0],$sessId);
  411.         
  412.         // Récupérer liste d'id des prières existantes
  413.         $masterdata2 $Functions->search_All_Prayers($xmls[1],$language);
  414.         
  415.         // Créer le panier de lectures
  416.         $totalmasterdata count($masterdata2);
  417.         for ($i=0$i <$totalmasterdata$i++) { 
  418.             if(!in_array(strval($masterdata2[$i]->id),$panierP)){
  419.                 unset($masterdata2[$i]);
  420.             }
  421.         }
  422.         return $this->render('diocese/470_le_livret_de_mariage.html.twig', [
  423.         'masterdata'=>$masterdata,'xml3'=>$xmls[2],'masterdata2'=>$masterdata2,'sessId'=>$sessId,'navbar'=>$navbar
  424.          // 'xml' => $xml,'xml2' => $xml2,'desc' => $desc,'code'=>$code,'lectures'=>$leslectures,'asterisk'=>$asterisk,'lalecture'=>$laLecture
  425.      ]); 
  426.       }
  427.       /**
  428.       * @Route("/download_booklet/sessid={sessId}", name="download_booklet")
  429.       */
  430.       public function dlbooklet($sessId)
  431.       { 
  432.         $Functions = new FunctionController();
  433.         include(dirname(__FILE__) . '/headerControl.php');
  434.         $xmls $Functions->getAllXML(); // 0 : Baskets 1 : Masterdata 2 : ArbreDecision 3 : ArbreDecisionCopy (Récent)
  435.         
  436.         // Lectures
  437.         // Recherche du panier selon l'id session
  438.         $panierL $Functions->search_Basket($xmls[0],$sessId);
  439.         
  440.         // Récupérer liste d'id des lectures existantes
  441.         $masterdata $Functions->search_All_Readings($xmls[1],$language);
  442.         
  443.         // Créer le panier de lectures
  444.         $totalmasterdata count($masterdata);
  445.         for ($i=0$i <$totalmasterdata$i++) { 
  446.             if(!in_array(strval($masterdata[$i]->id),$panierL)){
  447.                 unset($masterdata[$i]);
  448.             }
  449.         }
  450.       
  451.       // Recupérer les prières
  452.         // Recherche du panier selon l'id session
  453.         $panierP $Functions->search_Basket($xmls[0],$sessId);
  454.         
  455.         // Récupérer liste d'id des prières existantes
  456.         $masterdata2 $Functions->search_All_Prayers($xmls[1],$language);
  457.         
  458.         // Créer le panier de lectures
  459.         $totalmasterdata count($masterdata2);
  460.         for ($i=0$i <$totalmasterdata$i++) { 
  461.             if(!in_array(strval($masterdata2[$i]->id),$panierP)){
  462.                 unset($masterdata2[$i]);
  463.             }
  464.         }
  465.         $booklet $Functions->createBooklet($opening,$masterdata,$masterdata2);
  466.          header('Content-Description: File Transfer');
  467.         // header('Content-Type: application/octet-stream');
  468.          header('Content-Disposition: attachment; filename='.basename($booklet));
  469.         // header('Content-Transfer-Encoding: binary');
  470.         // header('Expires: 0');
  471.         // header('Cache-Control: must-revalidate');
  472.         // header('Pragma: public');
  473.          header('Content-Length: ' filesize($booklet));
  474.         // ob_clean();
  475.         readfile($booklet);
  476.         exit;
  477.       }
  478.     /**
  479.       * @Route("/send_mail/sessid={sessId}/mail={mail}", name="send_mail")
  480.       */
  481.       public function sendMail($sessId,$mail,MailerInterface $mailer
  482.       { 
  483.         $ip $_SERVER['REMOTE_ADDR'];
  484.           $sessId $sessId;
  485.           $email = (new TemplatedEMail())
  486.           ->from('pvm@netwedd.com')
  487.           ->to($mail)
  488.           //->cc('cc@example.com')
  489.           //->bcc('bcc@example.com')
  490.           //->replyTo('fabien@example.com')
  491.           //->priority(Email::PRIORITY_HIGH)
  492.           ->subject('Votre livret de mariage')
  493.           ->htmlTemplate('diocese/email_template.html.twig')
  494.           ->context([
  495.                'sessId' => $sessId,
  496.                'ip' => $ip,
  497.            ]);
  498.         try {
  499.             $mailer->send($email);
  500.             } catch (TransportExceptionInterface $e) {
  501.             // some error prevented the email sending; display an
  502.                 // error message or try to resend the message
  503.         }
  504.         
  505.         return $this->render('diocese/confirmMail.html.twig',  [
  506.         ]); 
  507.       
  508.     }
  509.     /**
  510.       * @Route("/recover_session/sessid={sessId}", name="rec_session")
  511.       */
  512.     public function recSession($sessId,Request $request)
  513.     {   
  514.         $response = new Response();
  515.         $response->prepare($request);
  516.         $response->headers->setCookie(Cookie::create('recovery'$sessId));
  517.         $response->send();
  518.         return $this->redirecttoRoute('425_notre_choix_de_lectures');
  519.     }
  520. }