src/Controller/SectorsDefaultController.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Sectors;
  4. use App\Annotation\CmsComponent;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. class SectorsDefaultController extends AbstractController
  11. {
  12. public function __construct(private EntityManagerInterface $em)
  13. {
  14. }
  15. /**
  16. * @CmsComponent("Sector Slider", active=true, routeName="embed_sectors_slider")
  17. */
  18. #[Route('/tlb-sectors/slider', name: 'embed_sectors_slider')]
  19. public function slider(): Response
  20. {
  21. $sectors = $this->em->getRepository(Sectors::class)->findBy(['active' => 1, 'deleted' => 0], ['sortOrder' => 'ASC']);
  22. return $this->render('@theme/sectors/slider.html.twig', [
  23. 'sectors' => $sectors
  24. ]);
  25. }
  26. /**
  27. * @CmsComponent("Sector List", active=true, routeName="embed_sectors_list")
  28. */
  29. #[Route('/tlb-sectors/list', name: 'embed_sectors_list')]
  30. public function list(): Response
  31. {
  32. $sectors = $this->em->getRepository(Sectors::class)->findBy(['active' => 1, 'deleted' => 0], ['sortOrder' => 'ASC']);
  33. return $this->render('@theme/sectors/list.html.twig', [
  34. 'sectors' => $sectors
  35. ]);
  36. }
  37. /**
  38. * @CmsComponent("Sector List Full", active=true, routeName="embed_sectors_list_full")
  39. */
  40. #[Route('/tlb-sectors/list-full', name: 'embed_sectors_list_full')]
  41. public function list2(): Response
  42. {
  43. $sectors = $this->em->getRepository(Sectors::class)->findBy(['active' => 1, 'deleted' => 0], ['sortOrder' => 'ASC']);
  44. return $this->render('@theme/sectors/list_full.html.twig', [
  45. 'sectorChunks' => array_chunk($sectors, 3)
  46. ]);
  47. }
  48. /**
  49. * @CmsComponent("Single Sector", slug="{sector_slug}", slugEntity="Sectors", active=true, routeName="embed_sector_content")
  50. */
  51. #[Route('/tlb-sectors/content/{sector_slug}', name: 'embed_sector_content')]
  52. public function embedSectorContent(mixed $sector_slug): Response
  53. {
  54. $sector = $this->em->getRepository(Sectors::class)->findBySlugWithGallery($sector_slug);
  55. if (!$sector) {
  56. return new Response('Not Found');
  57. }
  58. return $this->render('@theme/sectors/article.html.twig', [
  59. 'sector' => $sector
  60. ]);
  61. }
  62. }