src\Controller\Site\EvenementsController.php line 32

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Site;
  3. use App\Controller\BaseController;
  4. use App\Entity\Evenement;
  5. use App\Repository\CategorieRepository;
  6. use App\Repository\EvenementRepository;
  7. use App\Repository\PaysRepository;
  8. use App\Repository\ZoneRepository;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Knp\Component\Pager\PaginatorInterface;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. class EvenementsController extends BaseController
  15. {
  16.     private $em,$paginator;
  17.     public function __construct(EntityManagerInterface $emPaginatorInterface $paginator)
  18.     {
  19.         $this->em=$em;
  20.         $this->paginator $paginator;
  21.     }
  22.     /**
  23.      * @throws \Exception
  24.      */
  25.     #[Route(path'/evenements'name'site_evenements')]
  26.     public function index(Request $requestEvenementRepository $repositoryCategorieRepository $categorieRepository,
  27.                           PaysRepository $paysRepositoryZoneRepository $zoneRepository)
  28.     {
  29.         $datenull;
  30.         $from=null;
  31.         $to=null;
  32.         $periode=false;
  33.         $pays=[]; $szone=[];
  34.         $pays=$request->query->get('pays');
  35.         $szone=$request->query->get('zone');
  36.         $viewType=$request->query->get('view');
  37.         $type=$request->query->get('type');
  38.         $selectedDate=$request->query->get('date');
  39.         $dates=$request->query->get('dates');
  40.         $importance=$request->query->get('importance');
  41.         $q=$request->query->get('q');
  42.         if($dates){
  43.             $tempexplode('-',$dates);
  44.             $from date('Y-m-d',strtotime(str_replace('/''-',trim($temp[0]))));
  45.             $to date('Y-m-d',strtotime(str_replace('/''-',trim($temp[1]))));
  46.         }
  47.         $periode true;
  48.         if($selectedDate){
  49.             $date date('Y-m-d',strtotime(trim($selectedDate)));
  50.         }
  51.         //dd($from,$to,$date,$pays,$importance,$szone);
  52.         $date=($date)?new \DateTime($date):new \DateTime();
  53.         $from=($from)?new \DateTime($from):new \DateTime(date('Y-m-d',time()));
  54.         $to=($to)?new \DateTime($to):new \DateTime(date('Y-m-d',time()));
  55.         if($viewType =='pays'){
  56.             $szone=[];
  57.         }else if($viewType == 'zone'){
  58.             $pays=[];
  59.         }
  60.         $all=$repository->findBytype($date,$from,$to,$importance,$type,$pays,$szone,$q);
  61.         $paginedData=$this->paginator->paginate($all,$request->query->getInt('page'1),20);
  62.         return $this->render('site/evenements/index.html.twig', [
  63.             'evenements'=>$paginedData,
  64.             'categories'=>$categorieRepository->findAll(),
  65.             'countries'=>$paysRepository->eventCountries(),
  66.             'zones'=>$zoneRepository->findAll(),
  67.             'selectedDate'=> $selectedDate,
  68.             'dates'=> $dates,
  69.             'type'=> $type,
  70.             'rechdate'=>null,
  71.             'periode'=>$periode,
  72.             'pays'=>$pays,
  73.             'szone'=>$szone,
  74.             'viewType'=> $viewType,
  75.             'importance'=> $importance,
  76.             'q'=>$q,
  77.         ]);
  78.     }
  79.  /**
  80.   * @throws \Exception
  81.   */
  82.  #[Route(path'/evenements/datesevices'name'evenementsds')]
  83.  public function CEDS(Request $requestEvenementRepository $repositoryCategorieRepository $categorieRepository,
  84.                           PaysRepository $paysRepositoryZoneRepository $zoneRepository)
  85.     {
  86.         $datenull;
  87.         $from=null;
  88.         $to=null;
  89.         $periode=false;
  90.         $pays=[]; $szone=[];
  91.         $pays=$request->query->get('pays');
  92.         $szone=$request->query->get('zone');
  93.         $viewType=$request->query->get('view');
  94.         $type=$request->query->get('type');
  95.         $selectedDate=$request->query->get('date');
  96.         $dates=$request->query->get('dates');
  97.         $importance=$request->query->get('importance');
  98.         $q=$request->query->get('q');
  99.         if($dates){
  100.             $tempexplode('-',$dates);
  101.             $from date('Y-m-d',strtotime(str_replace('/''-',trim($temp[0]))));
  102.             $to date('Y-m-d',strtotime(str_replace('/''-',trim($temp[1]))));
  103.         }
  104.         $periode true;
  105.         if($selectedDate){
  106.             $date date('Y-m-d',strtotime(trim($selectedDate)));
  107.         }
  108.         //dd($from,$to,$date,$pays,$importance,$szone);
  109.         $date=($date)?new \DateTime($date):new \DateTime();
  110.         $from=($from)?new \DateTime($from):new \DateTime(date('Y-m-d',time()));
  111.         $to=($to)?new \DateTime($to):new \DateTime(date('Y-m-d',time()));
  112.         if($viewType =='pays'){
  113.             $szone=[];
  114.         }else if($viewType == 'zone'){
  115.             $pays=[];
  116.         }
  117.         $all=$repository->findBytype($date,$from,$to,$importance,$type,$pays,$szone,$q);
  118.         $paginedData=$this->paginator->paginate($all,$request->query->getInt('page'1),20);
  119.         return $this->render('site/evenements/CEDS.html.twig', [
  120.             'evenements'=>$paginedData,
  121.             'categories'=>$categorieRepository->findAll(),
  122.             'countries'=>$paysRepository->eventCountries(),
  123.             'zones'=>$zoneRepository->findAll(),
  124.             'selectedDate'=> $selectedDate,
  125.             'dates'=> $dates,
  126.             'type'=> $type,
  127.             'rechdate'=>null,
  128.             'periode'=>$periode,
  129.             'pays'=>$pays,
  130.             'szone'=>$szone,
  131.             'viewType'=> $viewType,
  132.             'importance'=> $importance,
  133.             'q'=>$q,
  134.         ]);
  135.     }
  136.     #[Route(path'/evenements/{id}'name'site_evenement_show')]
  137.     public function show(Request $request,Evenement $evenement,EvenementRepository $EvenementRepository)
  138.     {
  139.         $repo=$this->em->getRepository(Evenement::class);
  140.         $events=$repo->findRelated($evenement);
  141.          $historiques=[];$repo->findHisto($evenement);
  142.          $status=true;
  143.          $nom=$evenement->getNom();
  144.          $categorie=$evenement->getCategorie();
  145.          $pays=$evenement->getPays();
  146.          $histo=$EvenementRepository->findByDCEA($status,$nom,$categorie,$pays,'ASC');
  147.          //récuperation des valeurs actuelles dans un tableau --
  148.          $chartvaluesarray_map(function ($element){
  149.              if($element->getActuelle()){
  150.                  $temp=trim(str_replace(',','.',$element->getActuelle()));
  151.                  return (float) $temp;
  152.              }
  153.          },$histo);
  154.          //récupération des dates dans un tableau --
  155.          $chartdates array_map(function ($element){
  156.              if($element->getActuelle()) {
  157.                  return '"' $element->getDate()->format('d/m/Y') . '"';
  158.              }
  159.          },$histo);
  160.          //filtrer les element vides
  161.         $chartvalues array_filter($chartvalues,fn($element) => !is_null($element));
  162.         $chartdates array_filter($chartdates,fn($element) => !is_null($element));
  163.          //récupération de l'unité
  164.          $unit '';
  165.          $i=0;
  166.          while(count($histo) > $i AND !($histo[$i])->getActuelle()){
  167.              $i++;
  168.          }
  169.          if(array_key_exists($i,$histo) AND ($histo[$i])->getActuelle()){
  170.              $unit substr((string) ($histo[$i])->getActuelle(),-1,1);
  171.              $unit = (ctype_digit($unit))? '':$unit;
  172.          }
  173.         //dd($chartvalues,$chartdates,$unit);
  174.          $chartvalues implode(',',$chartvalues);
  175.          $chartdates implode(',',$chartdates);
  176.         $histo=$EvenementRepository->findByDCEA($status,$nom,$categorie,$pays);
  177.          $paginedData=$this->paginator->paginate($histo,$request->query->getInt('page'1),15);
  178.         return $this->render('site/evenements/show.html.twig', [
  179.             'evenement'=>$evenement,
  180.             'events'=>$events,
  181.             'historiques'=>$historiques,
  182.             'histoeven'=>$paginedData,
  183.             'chartdates'=>$chartdates,
  184.             "chartvalues"=>$chartvalues,
  185.             "unit"=>$unit,
  186.         ]);
  187.     }
  188.     
  189.     #[Route(path'/evenements/CE/{id}'name'site_evenement_CE')]
  190.     public function showCEDS(Request $request,Evenement $evenement,EvenementRepository $EvenementRepository)
  191.     {
  192.         $repo=$this->em->getRepository(Evenement::class);
  193.         $events=$repo->findRelated($evenement);
  194.          $historiques=[];$repo->findHisto($evenement);
  195.          $status=true;
  196.          $nom=$evenement->getNom();
  197.          $categorie=$evenement->getCategorie();
  198.          $pays=$evenement->getPays();
  199.          $histo=$EvenementRepository->findByDCEA($status,$nom,$categorie,$pays,'ASC');
  200.          //récuperation des valeurs actuelles dans un tableau --
  201.          $chartvaluesarray_map(function ($element){
  202.              if($element->getActuelle()){
  203.                  $temp=trim(str_replace(',','.',$element->getActuelle()));
  204.                  return (float) $temp;
  205.              }
  206.          },$histo);
  207.          //récupération des dates dans un tableau --
  208.          $chartdates array_map(function ($element){
  209.              if($element->getActuelle()) {
  210.                  return '"' $element->getDate()->format('d/m/Y') . '"';
  211.              }
  212.          },$histo);
  213.          //filtrer les element vides
  214.         $chartvalues array_filter($chartvalues,fn($element) => !is_null($element));
  215.         $chartdates array_filter($chartdates,fn($element) => !is_null($element));
  216.          //récupération de l'unité
  217.          $unit '';
  218.          $i=0;
  219.          while(count($histo) > $i AND !($histo[$i])->getActuelle()){
  220.              $i++;
  221.          }
  222.          if(array_key_exists($i,$histo) AND ($histo[$i])->getActuelle()){
  223.              $unit substr((string) ($histo[$i])->getActuelle(),-1,1);
  224.              $unit = (ctype_digit($unit))? '':$unit;
  225.          }
  226.         //dd($chartvalues,$chartdates,$unit);
  227.          $chartvalues implode(',',$chartvalues);
  228.          $chartdates implode(',',$chartdates);
  229.         $histo=$EvenementRepository->findByDCEA($status,$nom,$categorie,$pays);
  230.          $paginedData=$this->paginator->paginate($histo,$request->query->getInt('page'1),15);
  231.         return $this->render('site/evenements/show_CEDS.html.twig', [
  232.             'evenement'=>$evenement,
  233.             'events'=>$events,
  234.             'historiques'=>$historiques,
  235.             'histoeven'=>$paginedData,
  236.             'chartdates'=>$chartdates,
  237.             "chartvalues"=>$chartvalues,
  238.             "unit"=>$unit,
  239.         ]);
  240.     }
  241. }