src/Controller/MagazineController.php line 91
<?phpnamespace App\Controller;use App\Controller\Traits\HreflangsControllerTrait;use App\Controller\Traits\MetatagsControllerTrait;use App\Controller\Traits\StaticPageHelperTrait;use App\Entity\Magazine;use App\Repository\MagazineRepository;use Doctrine\ORM\EntityManagerInterface;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;use Symfony\Component\Routing\Annotation\Route;use Symfony\Contracts\Translation\TranslatorInterface;class MagazineController extends AbstractController{use MetatagsControllerTrait, HreflangsControllerTrait, StaticPageHelperTrait;private $em;private $transalor;public function __construct(EntityManagerInterface $em, TranslatorInterface $translator){$this->em = $em;$this->transalor = $translator;}/*** MAGAZINE*/#[Route(['it' => '/magazine','en' => '/en/magazine',// 'es' => '/es/revista'], name: 'app_magazine_index')]public function magazineIndex(Request $request, EntityManagerInterface $em){list ($metatags, $hreflangs) = $this->getStaticPageMetatagsAndHreflangs($request, $em, ['it']);/** @var MagazineRepository $magazineRepository */$magazineRepository = $this->em->getRepository(Magazine::class);$magazines = $magazineRepository->findMagazine(1, 'MAGAZINE', $request->getLocale());$magazinesNumber = $magazineRepository->findAllMagazineByType('MAGAZINE', $request->getLocale());$pagesNumber = ceil(count($magazinesNumber) / 12);return $this->render('magazine/magazineIndex.html.twig', ['magazines' => $magazines,'magazineType' => 'magazine','pages' => $pagesNumber,'metatags' => $metatags,'hreflangs' => $hreflangs]);}#[Route(['it' => '/magazine/{slug}','en' => '/en/magazine/{slug}',// 'es' => '/es/revista/{slug}'], name: 'app_magazine_detail')]public function magazineDetail(Request $request, string $slug){/** @var MagazineRepository $magazineRepository */$magazineRepository = $this->em->getRepository(Magazine::class);$magazine = $magazineRepository->findOneBy(['type' => 'MAGAZINE','isEnabled' => true,'slug' => $slug,'locale' => $request->getLocale()]);if (!$magazine) {return $this->redirectToRoute('app_magazine_index');}$correlatedMagazines = $magazineRepository->findCorrelatedMagazine('MAGAZINE',$magazine->getId(), $request->getLocale());$metatags = $this->getMetatags($magazine, 'title', 'text');return $this->render('magazine/magazineDetail.html.twig', ['metatags' => $metatags,'magazine' => $magazine,'correlatedMagazines' => $correlatedMagazines]);}/*** NEWS*/#[Route(['it' => '/news','en' => '/en/news',// 'es' => '/es/noticias'], name: 'app_news_index')]public function newsIndex(Request $request, EntityManagerInterface $em){list ($metatags, $hreflangs) = $this->getStaticPageMetatagsAndHreflangs($request, $em, ['it']);/** @var MagazineRepository $magazineRepository */$magazineRepository = $this->em->getRepository(Magazine::class);$magazines = $magazineRepository->findMagazine(1, 'NEWS', $request->getLocale());$magazinesNumber = $magazineRepository->findAllMagazineByType('NEWS', $request->getLocale());$pagesNumber = ceil(count($magazinesNumber) / 12);return $this->render('magazine/magazineIndex.html.twig', ['magazines' => $magazines,'magazineType' => 'news','pages' => $pagesNumber,'metatags' => $metatags,'hreflangs' => $hreflangs]);}#[Route(['it' => '/news/{slug}','en' => '/en/news/{slug}',// 'es' => '/es/noticias/{slug}'], name: 'app_news_detail')]public function newsDetail(Request $request, string $slug){/** @var MagazineRepository $magazineRepository */$magazineRepository = $this->em->getRepository(Magazine::class);$magazine = $magazineRepository->findOneBy(['type' => 'NEWS','isEnabled' => true,'slug' => $slug,'locale' => $request->getLocale()]);if (!$magazine) {return $this->redirectToRoute('app_news_index');}$correlatedMagazines = $magazineRepository->findCorrelatedMagazine('NEWS', $magazine->getId(), $request->getLocale());$metatags = $this->getMetatags($magazine, 'title', 'text');return $this->render('magazine/magazineDetail.html.twig', ['metatags' => $metatags,'magazine' => $magazine,'correlatedMagazines' => $correlatedMagazines]);}/*** SPONSOR*/#[Route(['it' => '/sponsor','en' => '/en/sponsorship',// 'es' => '/es/patrocinios'], name: 'app_sponsor_index')]public function sponsorIndex(Request $request, EntityManagerInterface $em){list ($metatags, $hreflangs) = $this->getStaticPageMetatagsAndHreflangs($request, $em, ['it']);/** @var MagazineRepository $magazineRepository */$magazineRepository = $this->em->getRepository(Magazine::class);$magazines = $magazineRepository->findMagazine(1, 'SPONSOR', $request->getLocale());$magazinesNumber = $magazineRepository->findAllMagazineByType('SPONSOR', $request->getLocale());$pagesNumber = ceil(count($magazinesNumber) / 12);return $this->render('magazine/magazineIndex.html.twig', ['magazines' => $magazines,'magazineType' => 'sponsor','pages' => $pagesNumber,'metatags' => $metatags,'hreflangs' => $hreflangs]);}#[Route(['it' => '/sponsor/{slug}','en' => '/en/sponsorship/{slug}',// 'es' => '/es/patrocinios/{slug}'], name: 'app_sponsor_detail')]public function sponsorDetail(Request $request, string $slug){/** @var MagazineRepository $magazineRepository */$magazineRepository = $this->em->getRepository(Magazine::class);$magazine = $magazineRepository->findOneBy(['type' => 'SPONSOR','isEnabled' => true,'slug' => $slug,'locale' => $request->getLocale()]);if (!$magazine) {return $this->redirectToRoute('app_sponsor_index');}$correlatedMagazines = $magazineRepository->findCorrelatedMagazine('SPONSOR', $magazine->getId(), $request->getLocale());$metatags = $this->getMetatags($magazine, 'title', 'text');return $this->render('magazine/magazineDetail.html.twig', ['metatags' => $metatags,'magazine' => $magazine,'correlatedMagazines' => $correlatedMagazines]);}/*** API GENERALI*/#[Route(path: [ '/magazine/api/v1'], name: 'checkMagazineAjax')]public function recipeApiIndex(Request $request){if ($request->getMethod() == 'POST') {$type = $request->get('type');$current_page = $request->get('page');/** @var MagazineRepository $magazineRepository */$magazineRepository = $this->em->getRepository(Magazine::class);$magazines = $magazineRepository->findMagazine($current_page, $type, $request->getLocale());$magazinesNumber = $magazineRepository->findAllMagazineByType($type, $request->getLocale());$pagesNumber = ceil(count($magazinesNumber) / 12);$response['html'] = $this->renderView('magazine/_magazineApi.html.twig', ['magazines' => $magazines]);$response['pages'] = $pagesNumber;$response['current_page'] = $current_page;return new JsonResponse($response);}return new JsonResponse('Page not found', 404);}}