src/Controller/Front/BlogController.php line 86

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Knp\Component\Pager\PaginatorInterface;
  7. use App\Repository\Blog\PostRepository;
  8. use App\Repository\MediaRepository;
  9. use App\Repository\Banner\BannerRepository;
  10. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  11. use App\Entity\Blog\Post;
  12. class BlogController extends AbstractController
  13. {
  14.     /** @var BannerRepository */
  15.     private $bannerRepository;
  16.     /** @var PostRepository */
  17.     private $postRepository;
  18.     /** @var MediaRepository */
  19.     private $mediaRepository;
  20.     /** @var SessionInterface */
  21.     private $session;
  22.     /** @var string $theme */
  23.     private $theme;
  24.     /**
  25.      * @param BannerRepository $bannerRepository
  26.      * @param PostRepository $postRepository
  27.      * @param MediaRepository $mediaRepository
  28.      * @param Session $session
  29.      */
  30.     public function __construct(BannerRepository $bannerRepositoryPostRepository $postRepositoryMediaRepository $mediaRepositorySessionInterface $session)
  31.     {
  32.         $this->bannerRepository $bannerRepository;
  33.         $this->postRepository $postRepository;
  34.         $this->mediaRepository $mediaRepository;
  35.         $this->session $session;
  36.         $this->theme $this->session->get('theme''horse');
  37.     }
  38.     public function index(Request $requestPaginatorInterface $paginator): Response
  39.     {
  40.         $localeCode $request->getLocale();
  41.         $banner $this->bannerRepository->findOneBy(['type' => $this->theme]);
  42.         $query $this->postRepository->findPostsQuery($localeCode);
  43.         $posts $paginator->paginate($query$request->query->getInt('page'1), 5);
  44.         $recentPosts $this->postRepository->recentPosts($localeCodenull5);
  45.         $medias $paginator->paginate$this->mediaRepository->findMedias(), 16);
  46.         return $this->render('front/blog/index.html.twig'compact('posts''recentPosts''medias''banner'));
  47.     }
  48.     public function show(Request $request$idPaginatorInterface $paginator): Response
  49.     {
  50.         $localeCode $request->getLocale();
  51.     
  52.         $banner $this->bannerRepository->findOneBy(['type' => $this->theme]);
  53.         $post $this->postRepository->findPost($id$localeCode);
  54.         $recentPosts $this->postRepository->recentPosts($localeCodenull5);
  55.         $medias $paginator->paginate$this->mediaRepository->findMedias(), 16);
  56.         return $this->render('front/blog/show.html.twig'compact('post''recentPosts''medias''banner'));
  57.     }
  58.     public function recent(Request $request): Response
  59.     {
  60.         $localeCode $request->getLocale();
  61.         $recentPosts $this->postRepository->recentPosts($localeCode$this->theme);
  62.         return $this->render('front/blog/recent_blogs.html.twig'compact('recentPosts'));
  63.     }
  64.     public function footerBlogs(Request $request): Response
  65.     {
  66.         $localeCode $request->getLocale();
  67.         $posts $this->postRepository->recentPosts($localeCode$this->theme2);
  68.         return $this->render('front/blog/footer_blogs.html.twig'compact('posts'));
  69.     }
  70. }