<?php
namespace App\Controller;
use App\Entity\Center;
use App\Entity\Condition;
use App\Entity\Formulaire;
use App\Entity\StayInContact;
use Doctrine\ORM\EntityManagerInterface;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class DefaultController extends AbstractController
{
/**
* @Route("/{center}",
* name="mmpp_front_preinscriptions",
* defaults={"center": "bordeaux"},
* requirements={"center": "bordeaux|antilles"},
* host="%inscription_host%"
* )
* @ParamConverter("center", options={"mapping": {"center" = "slug"}})
*/
public function preinscriptionsAction(EntityManagerInterface $em, Center $center)
{
$this->formulaires = $em->getRepository(Formulaire::class)
->findAllWithFormation($center);
return $this->render('preinscription/pre-inscriptions.html.twig', array(
'center' => $center,
'formulaires' => $this->formulaires
));
}
/**
* @Route("/stat-proxy/{key}", name="front_stat_proxy", host="%inscription_host%")
*/
public function statProxy(
EntityManagerInterface $em,
Request $request,
string $key
) {
$url = urldecode($request->query->get('url'));
$stat = (new StayInContact())
->setDate(new \DateTime())
->setUrl($url)
->setKey($key)
->setReferer(\json_encode($request->headers->get('referer')));
$em->persist($stat);
$em->flush();
return $this->redirect($url);
}
/**
* @Route("/conditions", name="mmpp_front_conditions", host="%inscription_host%")
*/
public function conditionAction(EntityManagerInterface $em)
{
$conditions = $em->getRepository(Condition::class)
->findAll();
return $this->render('preinscription/conditions.html.twig', array(
'path' => 'condition',
'conditions' => $conditions[0],
));
}
/**
* @Route("/privacy", name="front_privacy", host="%inscription_host%")
*/
public function privacy()
{
return $this->render('preinscription/privacy.html.twig');
}
}