<?phpnamespace App\Controller\Blog;use App\Entity\Articles\Articles;use App\Entity\Articles\ArticlesHasCategories;use App\Entity\Pages\Pages;use App\Entity\Seo\Redirection;use App\Services\Seo\Redir;use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache;use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\EventDispatcher\EventDispatcherInterface;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Doctrine\ORM\EntityManagerInterface;use Knp\Component\Pager\PaginatorInterface;/** * Système d'articles */class ArticlesController extends AbstractController{ private $em; private $paginator; public function __construct(EntityManagerInterface $em, PaginatorInterface $paginator, Redir $redir ) { $this->em = $em; $this->paginator = $paginator; $this->redir = $redir; } public function articles(Request $request) { $session = $request->getSession(); $user = $this->getUser(); if ($request->query->has('aecid')) { $aecid = $request->query->get('aecid'); $session->set("ae", $aecid); } if($request->getLocale() != null) { $lang = $request->getLocale(); $session->set("lang",$lang); if($user != null) { $user->setLanguage($lang); $this->em->persist($user); $this->em->flush(); } } if(empty($lang)) { $session->set("lang","en"); $lang = "en"; } $page = $this->em->getRepository(Pages::class)->findOneBy(['name' => 'articles', 'locale' => $lang]); $articles = $this->em->getRepository(Articles::class)->getLocaleWebsite($lang); $page->setViews((int)$page->getViews() + 1); $this->em->persist($page); $this->em->flush(); return $this->render('vitrine/articles/list.html.twig', [ 'articles' => $articles, 'page' => $page, 'lang' => $lang ]); } public function parentCategory(Request $request, $slug) { $session = $request->getSession(); $user = $this->getUser(); if ($request->query->has('aecid')) { $aecid = $request->query->get('aecid'); $session->set("ae", $aecid); } if($request->getLocale() != null) { $lang = $request->getLocale(); $session->set("lang",$lang); if($user != null) { $user->setLanguage($lang); $this->em->persist($user); $this->em->flush(); } } if(empty($lang)) { $session->set("lang","en"); $lang = "en"; } $parentCategory = $this->em->getRepository(ArticlesHasCategories::class)->findOneBy(['parent' => true, 'slug' => $slug, 'locale' => $lang]); $page = $this->em->getRepository(Pages::class)->findOneBy(['name' => 'articles', 'locale' => $lang]); $articles = $this->em->getRepository(Articles::class)->getLocaleParentWebsite($lang,$parentCategory); return $this->render('vitrine/articles/parent_category.html.twig', [ 'articles' => $articles, 'parentCategory' => $parentCategory, 'page' => $page, 'lang' => $lang ]); } public function category(Request $request, $slug, $slug2) { $session = $request->getSession(); $user = $this->getUser(); if ($request->query->has('aecid')) { $aecid = $request->query->get('aecid'); $session->set("ae", $aecid); } if($request->getLocale() != null) { $lang = $request->getLocale(); $session->set("lang",$lang); if($user != null) { $user->setLanguage($lang); $this->em->persist($user); $this->em->flush(); } } if(empty($lang)) { $session->set("lang","en"); $lang = "en"; } $parentCategory = $this->em->getRepository(ArticlesHasCategories::class)->findOneBy(['parent' => true, 'slug' => $slug, 'locale' => $lang]); $category = $this->em->getRepository(ArticlesHasCategories::class)->findOneBy(['slug' => $slug2, 'locale' => $lang]); $page = $this->em->getRepository(Pages::class)->findOneBy(['name' => 'articles', 'locale' => $lang]); $articles = $this->em->getRepository(Articles::class)->getLocaleCategoryWebsite($lang,$category); return $this->render('vitrine/articles/category.html.twig', [ 'articles' => $articles, 'parentCategory' => $parentCategory, 'category' => $category, 'page' => $page, 'lang' => $lang ]); } public function article(Request $request, $slug) { $session = $request->getSession(); $user = $this->getUser(); if ($request->query->has('aecid')) { $aecid = $request->query->get('aecid'); $session->set("ae", $aecid); } if($request->getLocale() != null) { $lang = $request->getLocale(); $session->set("lang",$lang); if($user != null) { $user->setLanguage($lang); $this->em->persist($user); $this->em->flush(); } } $article = $this->em->getRepository(Articles::class)->getArticleWebsite($slug,$lang); if($article == null) { $article = $this->em->getRepository(Articles::class)->getArticleWebsite($slug,"en"); } if ($this->isGranted('ROLE_SUPER_ADMIN')) { $article = $this->em->getRepository(Articles::class)->findOneBy(["slug" => $slug, "locale" => $lang]); } if(empty($lang)) { $session->set("lang","en"); $lang = "en"; } if (!$this->isGranted('ROLE_SUPER_ADMIN')) { if ($article->getVisibility() === false) { return $this->redirectToRoute('homepage'); } } if($article->isOnlyPage() === true) { if(!empty($article->getPageSlug3())) { if($lang == "en") { return $this->redirect('/'.$article->getPageSlug().'/'.$article->getPageSlug2().'/'.$article->getPageSlug3()); } return $this->redirect('/'.$lang.'/'.$article->getPageSlug().'/'.$article->getPageSlug2().'/'.$article->getPageSlug3()); } if(!empty($article->getPageSlug2())) { if($lang == "en") { return $this->redirect('/'.$article->getPageSlug().'/'.$article->getPageSlug2()); } return $this->redirect('/'.$lang.'/'.$article->getPageSlug().'/'.$article->getPageSlug2()); } if(!empty($article->getPageSlug())) { if($lang == "en") { return $this->redirect('/'.$article->getPageSlug()); } return $this->redirect('/'.$lang.'/'.$article->getPageSlug()); } return $this->redirectToRoute('homepage'); } return $this->render('vitrine/articles/article.html.twig',[ 'article' => $article, 'lang' => $lang ]); }}