src/Controller/Front/TutoController.php line 18

Open in your IDE?
  1. <?php 
  2. namespace App\Controller\Front;
  3. use App\Repository\TutorialRepository;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use App\Repository\TutorialCategoryRepository;
  6. use App\Repository\WebsiteLanguageRepository;
  7. use Doctrine\Persistence\ObjectManager;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. #[Route(path'/{_locale}')]
  11. class TutoController extends AbstractController 
  12. {
  13.     #[Route(path'/tutorials'name'tutos')]
  14.     public function tutos(TutorialRepository $tutorialRepositoryWebsiteLanguageRepository $wlTutorialCategoryRepository $tutorialCategoryRepositoryRequest $request
  15.     {
  16.         $locale = ($request->getLocale() ? $request->getLocale() : 'en');
  17.         $language $wl->findOneBy(['slug' => $locale]);
  18.         $tutos $tutorialRepository->findBy(['websiteLanguage' => $language]);
  19.         $categories $tutorialCategoryRepository->findAll();
  20.         $infos = [];
  21.         foreach($categories as $category){
  22.                 
  23.             $tutos $tutorialRepository->findTutosByCategories(null$category$locale);
  24.             $infos[] =  [
  25.                 $category,
  26.                 $tutos
  27.             ];
  28.             
  29.         }
  30.         return $this->render("front/tuto/tutos.html.twig", [
  31.             'infos' => $infos,
  32.             'preview' => false
  33.         ]);
  34.     }
  35.     #[Route(path'/tutorials/read/{slug}'name'tuto_detail')]
  36.     public function detailTuto($slugTutorialRepository $tutorialRepositoryRequest $requestObjectManager $manager
  37.     {
  38.         $tuto $tutorialRepository->findOneBy(['slug' => $slug]);
  39.         if (!$tuto) {
  40.             return $this->redirectToRoute('tutos');
  41.         }
  42.         $locale = ($request->getLocale() ? $request->getLocale() : 'fr');
  43.         if ($tuto->getWebsiteLanguage()->getSlug() != $locale) {
  44.             $tutorialInLocale $tutorialRepository->getLocaleTutorialByUnit($tuto->getUnit(), $locale);
  45.             if (!$tutorialInLocale) {
  46.                 return $this->redirectToRoute('tutos');
  47.             }
  48.             return $this->redirectToRoute('tuto_detail', ['slug' => $tutorialInLocale->getSlug()]);
  49.         }
  50.         $othersTuto $tutorialRepository->findTutosByCategories($tuto$tuto->getCategories()->first(), $locale4);
  51.         
  52.         return $this->render("front/tuto/single-tuto.html.twig", [
  53.             'tuto' => $tuto,
  54.             'othersTuto' => $othersTuto,
  55.             'preview' => false
  56.         ]);
  57.     }
  58. }