vendor/kobizo/cms-bundle/src/Controller/FePageController.php line 20

Open in your IDE?
  1. <?php
  2. namespace Kobizo\Bundle\CmsBundle\Controller;
  3. use Kobizo\Bundle\CmsBundle\Controller\Page\FeObjectHelper;
  4. use Kobizo\Bundle\CmsBundle\Controller\Page\GetPageTranslationHelper;
  5. use Kobizo\Bundle\CmsBundle\Controller\ViewHelper\PageViewHelper;
  6. use Kobizo\Component\Attributes\Type\PageTypesAttribute;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. class FePageController extends KobizoFeAbstractController
  12. {
  13.     /**
  14.      * @Route("/%kobizo.slug.page%/{slug}", name="display_a_page", methods={"GET"})
  15.      * @Route("/{slug}", name="display_a_page_short", methods={"GET"})
  16.      */
  17.     public function showPageBySlug(
  18.         Request $request,
  19.         string $slug,
  20.         GetPageTranslationHelper $getPageTranslationHelper,
  21.         FeObjectHelper $feObjectHelper,
  22.         PageViewHelper $pageViewHelper
  23.     ): Response {
  24.         $locale $request->getLocale();
  25.         $pageTranslation $getPageTranslationHelper->getByLocaleAndSlug($locale$slug);
  26.         if (!$pageTranslation) {
  27.             throw new NotFoundHttpException('No page found.');
  28.         }
  29.         if ($pageTranslation->getSlug() !== $slug) {
  30.             return $this->redirectToRoute(
  31.                 $request->get('_route'),
  32.                 [
  33.                     '_locale' => $pageTranslation->getLanguageCode(),
  34.                     'slug' => $pageTranslation->getSlug(),
  35.                 ]
  36.             );
  37.         }
  38.         $page $pageTranslation->getPage();
  39.         if (($position strpos($page->getType(), PageTypesAttribute::HIDDEN)) !== false && $position === 0) {
  40.             throw new NotFoundHttpException('No page found.');
  41.         }
  42.         return $this->render(
  43.             $pageViewHelper->getView($page'@KobizoCms/frontend/page.twig'),
  44.             $feObjectHelper->getObjectArray($locale$page$pageTranslation)
  45.         );
  46.     }
  47. }