<?phpnamespace App\Controller\ThemesWebsite\Whileresume\Website;use App\Entity\Core\Users;use App\Entity\Pages\Pages;use App\Entity\Pages\PagesHasBlocks;use App\Services\EncryptionService;use Symfony\Component\HttpFoundation\Request;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Doctrine\ORM\EntityManagerInterface;use Psr\Log\LoggerInterface;use function App\Controller\Vitrine\dump;/** * Gestion des pages */class PagesController extends AbstractController{ private $em; private $us; private $es; private $decryptionLogger; public function __construct(EntityManagerInterface $em, \App\Services\Core\Users $us, EncryptionService $es, LoggerInterface $decryptionLogger ){ $this->em = $em; $this->us = $us; $this->es = $es; $this->decryptionLogger = $decryptionLogger; } /** * 1er niveau * @param Request $request * @param $folderslug * @return mixed */ public function fiche(Request $request, $folderslug) { $themeSelection = $_ENV['THEME_BLOG']; $session = $request->getSession(); $locale = $request->getLocale(); // Article sur une page. $pageArticle = $this->em->getRepository(\App\Entity\Articles\Articles::class)->getPage($locale,$folderslug); if($pageArticle !== null) { return $this->render('application/whileresume/website/page_article.html.twig', [ 'article' => $pageArticle ]); } $page = $this->em->getRepository(Pages::class)->getPage($locale,$folderslug); if(!$page) { return $this->redirectToRoute('homepage'); } $user = $this->getUser(); if($user == null) { if($page->getType() == "brouillon") { return $this->redirectToRoute('homepage'); } if(!empty($page->getRedirect())) { return $this->redirect($page->getRedirect()); } } else { $grant = $this->em->getRepository(Users::class)->userHasRole($user->getId(),"ROLE_SUPER_ADMIN"); if($grant == "0") { if($page->getType() == "brouillon") { return $this->redirectToRoute('homepage'); } if(!empty($page->getRedirect())) { return $this->redirect($page->getRedirect()); } } } $blocks = $this->em->getRepository(PagesHasBlocks::class)->findBy(['page' => $page, 'type' => 'prod', 'startPage' => false],['sequence' => 'ASC']); $page->setViews((int)$page->getViews() + 1); $this->em->persist($page); $this->em->flush(); return $this->render('application/whileresume/website/page.html.twig',[ 'page' => $page, 'blocks' => $blocks ]); } /** * 2ème niveau * @param Request $request * @param $folderslug * @param $folderslug2 * @return mixed */ public function fiche2(Request $request, $folderslug, $folderslug2) { $themeSelection = $_ENV['THEME_BLOG']; $locale = $request->getLocale(); $user = $this->getUser(); $pageArticle = $this->em->getRepository(\App\Entity\Articles\Articles::class)->getPage($locale,$folderslug,$folderslug2); if($pageArticle !== null) { return $this->render('application/whileresume/website/page_article.html.twig', [ 'article' => $pageArticle ]); } $page = $this->em->getRepository(Pages::class)->getPage($locale,$folderslug,$folderslug2); if(!$page) { return $this->redirectToRoute('homepage'); } if($user == null) { if($page->getType() == "brouillon") { return $this->redirectToRoute('homepage'); } if(!empty($page->getRedirect())) { return $this->redirect($page->getRedirect()); } } else { $grant = $this->em->getRepository(Users::class)->userHasRole($user->getId(),"ROLE_SUPER_ADMIN"); if($grant == "0") { if($page->getType() == "brouillon") { return $this->redirectToRoute('homepage'); } if(!empty($page->getRedirect())) { return $this->redirect($page->getRedirect()); } } } $blocks = $this->em->getRepository(PagesHasBlocks::class)->findBy(['page' => $page, 'type' => 'prod', 'startPage' => false],['sequence' => 'ASC']); $page->setViews((int)$page->getViews() + 1); $this->em->persist($page); $this->em->flush(); return $this->render('application/whileresume/website/page.html.twig',[ 'page' => $page, 'blocks' => $blocks ]); } /** * 3ème niveau * @param Request $request * @param $folderslug * @param $folderslug2 * @param $folderslug3 * @return mixed */ public function fiche3(Request $request, $folderslug, $folderslug2, $folderslug3) { $themeSelection = $_ENV['THEME_BLOG']; $locale = $request->getLocale(); $user = $this->getUser(); $pageArticle = $this->em->getRepository(\App\Entity\Articles\Articles::class)->getPage($locale,$folderslug,$folderslug2,$folderslug3); if($pageArticle !== null) { return $this->render('application/whileresume/website/page_article.html.twig', [ 'article' => $pageArticle ]); } $page = $this->em->getRepository(Pages::class)->getPage($locale,$folderslug,$folderslug2,$folderslug3); if(!$page) { return $this->redirectToRoute('homepage'); } $user = $this->getUser(); if($user == null) { if($page->getType() == "brouillon") { return $this->redirectToRoute('homepage'); } if(!empty($page->getRedirect())) { return $this->redirect($page->getRedirect()); } } else { $grant = $this->em->getRepository(Users::class)->userHasRole($user->getId(),"ROLE_SUPER_ADMIN"); if($grant == "0") { if($page->getType() == "brouillon") { return $this->redirectToRoute('homepage'); } if(!empty($page->getRedirect())) { return $this->redirect($page->getRedirect()); } } } $blocks = $this->em->getRepository(PagesHasBlocks::class)->findBy(['page' => $page, 'type' => 'prod', 'startPage' => false],['sequence' => 'ASC']); $page->setViews((int)$page->getViews() + 1); $this->em->persist($page); $this->em->flush(); return $this->render('application/whileresume/website/page.html.twig',[ 'page' => $page, 'blocks' => $blocks ]); }}