src/Controller/ActivityController.php line 35

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Formation\Activity;
  4. use App\Entity\Formation\Participant;
  5. use App\Form\ParticipantType;
  6. use App\Repository\Formation\ActivityRepository;
  7. use App\Repository\Formation\CategoryRepository;
  8. use App\Repository\Formation\ParticipantRepository;
  9. use App\Repository\Training\RegistrationRepository;
  10. use App\Repository\Training\TrainingRepository;
  11. use App\Entity\Training\Registration;
  12. use App\Entity\Training\Training;
  13. use App\Form\RegistrationType;
  14. use App\Service\SchoolyearService;
  15. use DateTime;
  16. use Doctrine\Common\Collections\ArrayCollection;
  17. use Ensepar\Html2pdfBundle\Factory\Html2pdfFactory;
  18. use Exception;
  19. use Knp\Component\Pager\Pagination\PaginationInterface;
  20. use Knp\Component\Pager\PaginatorInterface;
  21. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  22. use Symfony\Component\HttpFoundation\JsonResponse;
  23. use Symfony\Component\HttpFoundation\Request;
  24. use Symfony\Component\HttpFoundation\Response;
  25. use Symfony\Component\Routing\Annotation\Route;
  26. use Symfony\Component\Yaml\Yaml;
  27. #[Route('/formations'name'hs_public_activity_')]
  28. class ActivityController extends AbstractController
  29. {
  30.     Public function __construct(){}
  31.     #[Route(path'/{slug}'name'index'options: ['expose' => true], defaults: ['slug' => "all"])]
  32.     public function indexAction($slugActivityRepository $activiteRepositoryCategoryRepository $categoryRepositoryPaginatorInterface $paginatorRequest $request)
  33.     {
  34.         if($slug=='all'){
  35.             $category="all";
  36.             $activitys=$activiteRepository->findBy(['published'=>true], ['forder' => 'ASC']);
  37.         } else {
  38.             $category=$categoryRepository->findOneBySlug($slug);
  39.             $activitys=$activiteRepository->findBy(['category'=>$category'published'=>true], ['forder' => 'ASC']);
  40.         }
  41.         $items=$paginator->paginate($activitys$request->query->get('page',1), 8);
  42.         return $this->render('activity/index.html.twig', ['items'=>$items'current'=>'activity''category'=>$category]);
  43.     }
  44.     #[Route(path'/single/{slug}/{position}'name'single'options: ['expose' => true], defaults: ['position' => "details"])]
  45.     public function singleAction(Activity $activite$positionActivityRepository $activiteRepositoryParticipantRepository $participantRepositorySchoolyearService $schoolyearServiceRequest $request)
  46.     {
  47.         $item = new Participant();
  48.         $form $this->createForm(ParticipantType::class, $item);
  49.         $form->handleRequest($request);
  50.         if($activite->getClasseOpned()!==null){
  51.             $item->setClasse($activite->getClasseOpned());
  52.             if ($form->isSubmitted() && $form->isValid()) {
  53.                 try {
  54.                     $participantRepository->save($itemtrue);
  55.                     $this->addFlash('success''Votre demande sera prise en compte et nous vous répondrons dans les meilleurs délais');
  56.                     return $this->redirectToRoute('hs_public_activity_single', ['slug' => $activite->getSlug()]);
  57.                 } catch (Exception $e) {
  58.                     $this->addFlash('danger''Une erreur s\'est produite lors de cette opération');
  59.                 }
  60.             }
  61.         }
  62.         $otherActivites $activiteRepository->findBy(['published'=>true'featured'=>true], ['forder' => 'ASC']);
  63.         return $this->render(
  64.             'activity/single.html.twig',
  65.             array(
  66.                 'form' => $form->createView(),
  67.                 'item' => $item,
  68.                 'activite' => $activite,
  69.                 "position" => $position,
  70.                 'otherActivites' => $otherActivites,
  71.                 'current' => 'activity'
  72.             )
  73.         );
  74.     }
  75. }