<?php
namespace App\Controller;
use App\Entity\Page\Page;
use App\Repository\ArrayJsonRepository;
use App\Repository\ConfigurationRepository;
use App\Repository\Page\PageRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Security;
class PageController extends AbstractController
{
#[Route('/page/{urlAccess}', name: 'app_page_show')]
public function page(Page $page, ConfigurationRepository $configurationRepository, Security $security, ArrayJsonRepository $arrayJsonRepository): Response
{
$config = $configurationRepository->findOneBy([]);
$skeleton = $arrayJsonRepository->findOneBy(['name' => 'skeleton_template']);
$dynamicLinkArray = $arrayJsonRepository->findOneBy(['name' => 'dynamic_link']);
if ($dynamicLinkArray == null) {
$dynamicLink = null;
} else {
$dynamicLink = $dynamicLinkArray->getContent() ?? null;
}
$is_online = $config->isIsOnline();
if ($is_online == true) {
if ($security->isGranted('ROLE_ADMIN')) {
} else {
return $this->redirectToRoute('app_maintenance');
}
}
$metaDescription = $page->getMetaDescription();
$metaImg = $page->getMetaImg();
if ($metaImg == null) {
$metaImg = $config->getMetaImgDefault();
}
return $this->render('page/index.html.twig', [
'page' => $page,
'noIndex' => $page->isIsNoIndex(),
'title' => $page->getName(),
'metaDescription' => $metaDescription,
'metaImg' => $metaImg,
'isHeaderComponent' => $page->isIsHeaderComponent(),
'skeleton' => $skeleton,
'dynamicLink' => $dynamicLink,
]);
}
#[Route('/t/{prefix}/{slug}', name: 'app_page_show_typed')]
public function pageTyped(string $prefix, string $slug, ConfigurationRepository $configurationRepository, Security $security, ArrayJsonRepository $arrayJsonRepository, PageRepository $pageRepository): Response
{
$page = $pageRepository->findOneByPrefixAndSlug($prefix, $slug);
$config = $configurationRepository->findOneBy([]);
$skeleton = $arrayJsonRepository->findOneBy(['name' => 'skeleton_template']);
$dynamicLinkArray = $arrayJsonRepository->findOneBy(['name' => 'dynamic_link']);
if ($dynamicLinkArray == null) {
$dynamicLink = null;
} else {
$dynamicLink = $dynamicLinkArray->getContent() ?? null;
}
$is_online = $config->isIsOnline();
if ($is_online == true) {
if ($security->isGranted('ROLE_ADMIN')) {
} else {
return $this->redirectToRoute('app_maintenance');
}
}
$metaDescription = $page->getMetaDescription();
$metaImg = $page->getMetaImg();
if ($metaImg == null) {
$metaImg = $config->getMetaImgDefault();
}
return $this->render('page/index.html.twig', [
'page' => $page,
'noIndex' => $page->isIsNoIndex(),
'title' => $page->getName(),
'metaDescription' => $metaDescription,
'metaImg' => $metaImg,
'isHeaderComponent' => $page->isIsHeaderComponent(),
'skeleton' => $skeleton,
'dynamicLink' => $dynamicLink,
]);
}
#[Route('/mentions-legal', name: 'app_mentions')]
public function mentions(PageRepository $pageRepository, ArrayJsonRepository $arrayJsonRepository): Response
{
$skeleton = $arrayJsonRepository->findOneBy(['name' => 'skeleton_template']);
$page = $pageRepository->findOneBy(['id' => 2]);
$dynamicLinkArray = $arrayJsonRepository->findOneBy(['name' => 'dynamic_link']);
if ($dynamicLinkArray == null) {
$dynamicLink = null;
} else {
$dynamicLink = $dynamicLinkArray->getContent() ?? null;
}
return $this->render('page/index.html.twig', [
'page' => $page,
'title' => "Mentions Légales",
'isHeaderComponent' => $page->isIsHeaderComponent(),
'skeleton' => $skeleton,
'dynamicLink' => $dynamicLink,
]);
}
}