src/Controller/FunctionController.php line 56

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 mysqli;
  7. use App\Entity\Baskets;
  8. use App\Entity\Masterdata;
  9. use App\Form\BasketsType;
  10. use App\Form\CaptchaType;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Gregwar\Captcha\CaptchaBuilder;
  16. use App\Service;
  17. class FunctionController extends AbstractController
  18. {
  19.     /**
  20.      * @Route("/function", name="function")
  21.      */
  22.     public function index(): Response
  23.     {
  24.         return $this->render('function/index.html.twig', [
  25.             'controller_name' => 'FunctionController',
  26.         ]);
  27.     }
  28.     
  29.     public function getHeader()
  30.     {   
  31.         $mysqli = new mysqli("localhost""root""""netweddfront");
  32.         require_once($_SERVER['DOCUMENT_ROOT'] . '/Diocese/admin/sanitize.php');
  33.         $_SESSION['locale'] = 'fr_FR';
  34.         $language = (isset($_GET['language'])) ? sanitize_paranoid_string($mysqli,$_GET['language']) : $_SESSION['locale'];
  35.         $_SESSION['locale'] = $language
  36.         if (strpos($_SERVER["HTTP_USER_AGENT"], "Safari")
  37.             && !strpos($_SERVER["HTTP_USER_AGENT"], "Chrome")) {
  38.             if (count($_COOKIE) === 0) {
  39.                 echo "<script> 
  40.                 top.location = 'http://www.pourvotremariage.net/scripts/setSession.php';
  41.                 </script>";
  42.                 exit(); // need to be there in order not to load the rest of the page
  43.             }
  44.         }  
  45.         
  46.     }
  47.     public function getAllXML ()
  48.     {   
  49.         $xmls = array();
  50.         $url =$_SERVER["DOCUMENT_ROOT"] . '/baskets.xml';
  51.         $xml simplexml_load_file($url'SimpleXMLElement');
  52.         // $url =$_SERVER["DOCUMENT_ROOT"] . '/Projetdiocese/public/baskets.xml';
  53.         // $xml = simplexml_load_file($url, 'SimpleXMLElement');
  54.         $url2 =$_SERVER["DOCUMENT_ROOT"] . '/Diocese/scripts/masterdata.xml';
  55.         $xml2 simplexml_load_file($url2'SimpleXMLElement');
  56.         $url3 =$_SERVER["DOCUMENT_ROOT"] . '/Diocese/scripts/arbredecision.xml';
  57.         $xml3 simplexml_load_file($url3'SimpleXMLElement');
  58.         $url4 =$_SERVER["DOCUMENT_ROOT"] . '/Diocese/scripts/arbredecisioncopy.xml';
  59.         $xml4 simplexml_load_file($url4'SimpleXMLElement');
  60.         $xmls[] = $xml;
  61.         $xmls[] = $xml2;
  62.         $xmls[] = $xml3;
  63.         $xmls[] = $xml4;
  64.         return $xmls;
  65.     }
  66.     public function search_Basket($unXml,$unIdSession)
  67.     {   
  68.         $leslectures = array();
  69.         // Recherche du panier selon l'id session
  70.         foreach($unXml->baskets->Basket as $lePanier){
  71.             if($lePanier->phpsessid == $unIdSession){
  72.                 $leslectures[] = $lePanier->element;
  73.             }
  74.         }
  75.         return $leslectures;
  76.     }
  77.     public function searchOne($numType,$xmlmasterdata,$language,$code)
  78.     {   
  79.         $laLecture = array();
  80.         foreach($xmlmasterdata->masterdata->Ecrits as $lesEcrits)
  81.         {
  82.          if($lesEcrits->type == $numType && $lesEcrits->language == $language && $lesEcrits->code == $code){
  83.                 if (!in_array($lesEcrits,$laLecture)){
  84.                     $laLecture[] = $lesEcrits
  85.                 }
  86.             }
  87.         }
  88.         return $laLecture;
  89.     }
  90.     public function search_All_Readings($unXml,$uneLangue)
  91.     {   
  92.         $masterdata = array();
  93.         foreach($unXml->masterdata->Ecrits as $desEcrits){
  94.             if($desEcrits->type 2000 and $desEcrits->type 3000 and $desEcrits->language=$uneLangue){
  95.                 $masterdata[]=$desEcrits;
  96.             }
  97.         }
  98.         return $masterdata;
  99.     }
  100.     public function search_All_Prayers($unXml,$uneLangue)
  101.     {   
  102.         $masterdata = array();
  103.         foreach($unXml->masterdata->Ecrits as $desEcrits){
  104.             if($desEcrits->type 3000 and $desEcrits->type 4000 and $desEcrits->language=$uneLangue){
  105.                 $masterdata[]=$desEcrits;
  106.             }
  107.         }
  108.         return $masterdata;
  109.     }
  110.     public function getPartie($unXml)
  111.     {   
  112.         foreach ($unXml as $collection){
  113.             switch ($collection->type) {
  114.                 case 2100:
  115.                     $collection->typeStr "PROPHETS";
  116.                     $collection->typeTrd "Ancien Testament";
  117.                     break;
  118.                 case 2200:
  119.                     $collection->typeStr "PSALM";
  120.                     $collection->typeTrd "Psaumes";
  121.                     break;
  122.                 case 2300:
  123.                     $collection->typeStr "APOSTLES";
  124.                     $collection->typeTrd "Nouveau Testament";
  125.                     break;
  126.                 case 2500:
  127.                     $collection->typeStr "GOSPEL";
  128.                     $collection->typeTrd "Evangiles";
  129.                     break;  
  130.                 case 3100:
  131.                     $collection->typeStr "CREED";
  132.                     $collection->typeTrd "Profession de Foi";
  133.                     break;
  134.                 case 3200:
  135.                     $collection->typeStr "DIALOGUE";
  136.                     $collection->typeTrd "Dialogue initial";
  137.                     break;
  138.                 case 3310:
  139.                     $collection->typeStr "VOWS";
  140.                     $collection->typeTrd "Echange des consentements";
  141.                     break;
  142.                 case 3500:
  143.                     $collection->typeStr "BLESSING";
  144.                     $collection->typeTrd "Bénédiction nuptiale";
  145.                     break;  
  146.                 case 3700:
  147.                     $collection->typeStr "INTERCESSIONS";
  148.                     $collection->typeTrd "Prière universelle";
  149.                     break;
  150.             }
  151.             
  152.         }
  153.     }
  154.     public function msgChoixL($masterdata,$arbredecisioncopy)
  155.     {
  156.         $message "";
  157.         $dossier = array(); 
  158.         foreach ($masterdata as $collection) {
  159.            $dossier[] = $collection->typeStr;
  160.         }
  161.         $typesPanier = array();
  162.         if(count($dossier)>0){
  163.             for ($i=0$i count($dossier); $i++) {    
  164.                 foreach ($arbredecisioncopy->Lecture->{$dossier[$i]} as $Choix) {
  165.                     $typesPanier[] = $Choix;
  166.                 }
  167.             }
  168.         }
  169.         $dom dom_import_simplexml($arbredecisioncopy->Choix);
  170.         $countfc 0;
  171.         $countcd 0;
  172.             foreach ($dossier as $leslectures) {
  173.                 for ($i=0$i count($leslectures) ; $i++) { 
  174.                     if($arbredecisioncopy->Lecture->{$leslectures[$i]}->Contrainte == "Facultatif"){
  175.                         $countfc +=1;
  176.                     }
  177.                     if($arbredecisioncopy->Lecture->{$leslectures[$i]}->Contrainte == "Condition" && in_array(strval($arbredecisioncopy->Lecture->{$leslectures[$i]}->Contrainte->Condition),$dossier)){
  178.                         $countcd +=1;
  179.                     }
  180.                 }
  181.             }
  182.         // Vérifier les types de lecture en double
  183.         $doublons = array();
  184.         $double 0;
  185.         for ($i=0$i count($dossier) ; $i++) { 
  186.             
  187.             if($i==count($dossier)-1){
  188.                 // var_dump($dossier[$i],$doublons);
  189.                 if(in_array(strval($dossier[$i]),$doublons)){
  190.                     $doublons[] = $dossier[$i];
  191.                     $double +=1;
  192.                 }
  193.             }
  194.             else {
  195.                 if(in_array($dossier[$i],$doublons)){
  196.                     $double +=1;
  197.                 }
  198.                 $doublons[] = $dossier[$i];
  199.             }
  200.         }
  201.         if (count($dossier)<4) {
  202.             // Vérifier les lectures facultatives
  203.             if(count($dossier)==&& $countfc >=&& $countcd == 0){
  204.                 if(!str_contains($message,$arbredecisioncopy->Complet3)){
  205.                     $message $arbredecisioncopy->Complet3;
  206.                 }
  207.             }
  208.             elseif(count($dossier)==&& $countfc <&& $countcd >=1){
  209.                 if(!str_contains($message,$arbredecisioncopy->Complet3L)){
  210.                     $message $arbredecisioncopy->Complet3L;
  211.                 }
  212.             }
  213.             elseif(count($dossier)==&& $countfc <&& $countcd <1){
  214.                 if(!str_contains($message,$arbredecisioncopy->Complet3)){
  215.                     $message $arbredecisioncopy->Complet3;
  216.                 }
  217.             }
  218.             elseif(count($dossier)==&& $countfc <&& $countcd >=1){
  219.                 if(!str_contains($message,$arbredecisioncopy->Complet3)){
  220.                     $message $arbredecisioncopy->Complet3;
  221.                 }
  222.             }
  223.             elseif(count($dossier)==&& $countfc <&& $countcd ==0){
  224.                 if(!str_contains($message,$arbredecisioncopy->Complet3)){
  225.                     $message $arbredecisioncopy->Complet3;
  226.                 }
  227.             }
  228.             elseif(!str_contains($message,$dom->childNodes->item(0)->nodeName)){
  229.                 $message .= $dom->childNodes->item(0)->nodeValue;
  230.             }
  231.         }
  232.         // || count($dossier)==3 && $countfc <1 && $countcd <1
  233.         for ($i=1$i count($dom->childNodes) ; $i++) {
  234.             if(!in_array($dom->childNodes->item($i)->nodeName,$typesPanier)){
  235.                 // if(!(count($dossier)==3 && $countfc >=1 && $countcd == 0 )){
  236.                 //     $message .= $dom->childNodes->item($i)->nodeValue;
  237.                 // }
  238.                 $message .= $dom->childNodes->item($i)->nodeValue;
  239.             }
  240.             else{
  241.                 if (count($dossier)>|| $double>=1) {
  242.                     if(!str_contains($message,$arbredecisioncopy->Surplus)){
  243.                         $message $arbredecisioncopy->Surplus;
  244.                     }
  245.                 }
  246.                 elseif(count($dossier)==4){
  247.                     if(!str_contains($message,$arbredecisioncopy->Complet)){
  248.                         $message $arbredecisioncopy->Complet;
  249.                     }
  250.                 }
  251.             }
  252.         }
  253.         return $message;
  254.     }
  255.     public function msgChoixP($masterdata,$arbredecisioncopy)
  256.     {
  257.         $message "";
  258.         $dossier = array(); 
  259.         foreach ($masterdata as $collection) {
  260.            $dossier[] = $collection->typeStr;
  261.         }
  262.         $typesPanier = array();
  263.         
  264.         if(count($dossier)>0){
  265.             for ($i=0$i count($dossier); $i++) {    
  266.                 foreach ($arbredecisioncopy->Prière->{$dossier[$i]} as $Choix) {
  267.                     $typesPanier[] = $Choix;
  268.                 }
  269.             }
  270.         }
  271.         $dom dom_import_simplexml($arbredecisioncopy->Choix2);
  272.             $countfc 0;
  273.             foreach ($dossier as $lesPrières) {
  274.                 for ($i=0$i count($lesPrières) ; $i++) { 
  275.                     if($arbredecisioncopy->Prière->{$lesPrières[$i]}->Contrainte == "Facultatif"){
  276.                         $countfc +=1;
  277.                     }
  278.                 }
  279.             }
  280.             if (count($dossier)<5) {
  281.             if(!str_contains($message,$dom->childNodes->item(0)->nodeName)){
  282.                 $message .= $dom->childNodes->item(0)->nodeValue;
  283.             }
  284.             }
  285.             for ($i=1$i count($dom->childNodes) ; $i++) { 
  286.             if(!in_array($dom->childNodes->item($i)->nodeName,$typesPanier)){
  287.                     $message .= $dom->childNodes->item($i)->nodeValue;
  288.                     
  289.             }
  290.             else{
  291.                 if(count($dossier)==5){
  292.                     if(!str_contains($message,$arbredecisioncopy->CompletP)){
  293.                         $message $arbredecisioncopy->CompletP;
  294.                     }
  295.                 }
  296.                 elseif (count($dossier)>=5) {
  297.                     if(!str_contains($message,$arbredecisioncopy->SurplusP)){
  298.                         $message $arbredecisioncopy->SurplusP;
  299.                     }
  300.                 }
  301.             }
  302.          }
  303.          return $message;
  304.     }
  305.     public function create_Basket($sessId,$xmlmasterdata,$xmlbaskets,$code)
  306.     {
  307.         $id 0;
  308.         $basket = new Baskets();
  309.         $basket-> setPhpsessid($sessId);
  310.         foreach($xmlmasterdata->masterdata->Ecrits as $lesEcrits){
  311.             if($lesEcrits->code == $code){
  312.                 $id $lesEcrits->id;
  313.                 break;
  314.             }
  315.         }
  316.         // Récupérer le type d'Ecrit
  317.         $typeEcrit 0;
  318.         foreach($xmlmasterdata->masterdata->Ecrits as $lesEcrits){
  319.           if($lesEcrits->code == $code){
  320.               $typeEcrit $lesEcrits->type;
  321.               break;
  322.           }
  323.         }
  324.         
  325.         $basket->setElement(intval($id));
  326.         $basket->setCreated(date_create("now"));
  327.         
  328.         $newbasket $xmlbaskets->baskets->addChild('Basket');
  329.         $newbasket->addChild("phpsessid",strval($basket->getPhpsessid()));
  330.         $newbasket->addChild("element",strval($basket->getElement()));
  331.         $newbasket->addChild("created",date_format($basket->getCreated(), 'Y-m-d H:i:s'));
  332.         $xmlbaskets->saveXML('baskets.xml');
  333.         return $typeEcrit;
  334.     }
  335.     public function delete_Basket($sessId,$xmlmasterdata,$xmlbaskets,$code)
  336.     {
  337.         $id 0;
  338.         $basket = new Baskets();
  339.         $basket-> setPhpsessid($sessId);
  340.         foreach($xmlmasterdata->masterdata->Ecrits as $lesEcrits){
  341.             if($lesEcrits->code == $code){
  342.                 $id $lesEcrits->id;
  343.                 break;
  344.             }
  345.         }
  346.         // Récupérer le type d'Ecrit
  347.         $typeEcrit 0;
  348.         foreach($xmlmasterdata->masterdata->Ecrits as $lesEcrits){
  349.           if($lesEcrits->code == $code){
  350.               $typeEcrit $lesEcrits->type;
  351.               break;
  352.           }
  353.         }
  354.         
  355.         // Supprime le panier
  356.         foreach($xmlbaskets->baskets->Basket as $lePanier){
  357.             if($lePanier->phpsessid == $sessId && $lePanier->element == intval($id)){
  358.                 $dom dom_import_simplexml($lePanier);
  359.                 $dom->parentNode->removeChild($dom);
  360.                 $xmlbaskets->saveXML('baskets.xml');
  361.             }
  362.           }
  363.         return $typeEcrit;
  364.     }
  365.     
  366.     public function searchByType($numType,$xmlmasterdata,$language,$code)
  367.     {   
  368.         $leslectures = array();
  369.         foreach($xmlmasterdata->masterdata->Ecrits as $lesEcrits)
  370.         {
  371.          if($lesEcrits->type == $numType && $lesEcrits->language == $language){
  372.                 if (!in_array($lesEcrits,$leslectures)){
  373.                     $leslectures[] = $lesEcrits
  374.                 }
  375.             }
  376.         }
  377.         return $leslectures;
  378.     }
  379.     public function createBooklet($opening,$masterdata,$masterdata2)
  380.     {
  381.         $texte ="";
  382.         foreach ($masterdata as $lesEcrits) {
  383.             $texte .= "<strong>$lesEcrits->name</strong>";
  384.             $texte .= "<br>";
  385.             $texte .= "Lectures du ";
  386.             $texte .= $lesEcrits->book;
  387.             $texte .= "<br>";
  388.             $texte .= $lesEcrits->chapters;
  389.             $texte .= "<br>";
  390.             $texte .= $lesEcrits->print;
  391.         }
  392.         foreach ($masterdata2 as $lesEcrits) {
  393.             $texte .= "<strong>$lesEcrits->name</strong>";
  394.             $texte .= "<br>";
  395.             $texte .= $lesEcrits->book;
  396.             $texte .= "<br>";
  397.             $texte .= $lesEcrits->screen;
  398.         }
  399.         $phpWord = new \PhpOffice\PhpWord\PhpWord();
  400.         $section $phpWord->addSection();
  401.         $section->addText
  402.             $opening $texte
  403.        );
  404.         $objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord'HTML');
  405.         $date date_create("now");
  406.         $date date_format($date'Ymd-His');
  407.         $objWriter->save("$date.doc");
  408.     chmod("$date.doc",0755);
  409.         return "$date.doc";
  410.     }
  411. }