vendor/pimcore/portal-engine/src/Controller/PortalController.php line 32

Open in your IDE?
  1. <?php
  2. /**
  3.  * Pimcore
  4.  *
  5.  * This source file is available under following license:
  6.  * - Pimcore Commercial License (PCL)
  7.  *
  8.  *  @copyright  Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  9.  *  @license    http://www.pimcore.org/license     PCL
  10.  */
  11. namespace Pimcore\Bundle\PortalEngineBundle\Controller;
  12. use Pimcore\Bundle\PortalEngineBundle\Service\Document\LanguageVariantService;
  13. use Pimcore\Bundle\PortalEngineBundle\Service\PortalConfig\DefaultValuesService;
  14. use Pimcore\Bundle\PortalEngineBundle\Service\PortalConfig\FrontendBuildService;
  15. use Pimcore\Bundle\PortalEngineBundle\Service\PortalConfig\PortalConfigService;
  16. use Pimcore\Bundle\PortalEngineBundle\Service\Security\SecurityService;
  17. use Pimcore\Http\Request\Resolver\DocumentResolver;
  18. use Pimcore\Model\Document\PageSnippet;
  19. use Symfony\Component\HttpFoundation\RedirectResponse;
  20. use Symfony\Component\HttpFoundation\Request;
  21. class PortalController extends AbstractSiteController
  22. {
  23.     /**
  24.      * @return RedirectResponse|\Symfony\Component\HttpFoundation\Response
  25.      *
  26.      * @throws \Exception
  27.      */
  28.     public function pageAction(
  29.         Request $request,
  30.         DocumentResolver $documentResolver,
  31.         DefaultValuesService $defaultConfigService,
  32.         FrontendBuildService $frontendBuildService,
  33.         PortalConfigService $portalConfigService,
  34.         LanguageVariantService $languageVariantService,
  35.         SecurityService $securityService
  36.     ) {
  37.         $document $documentResolver->getDocument($request);
  38.         if (!$document instanceof PageSnippet) {
  39.             throw new \Exception('Invalid Document');
  40.         }
  41.         $defaultConfigService->setPortalPageDefaultConfig($document);
  42.         if (!$this->editmode && !$request->get('pimcore_preview') && $portalConfigService->getCurrentPortalConfig()->getEnableLanguageRedirect()) {
  43.             $mapping $languageVariantService->getPortalLanguageVariantsMapping();
  44.             $languages array_keys($mapping);
  45.             $preferredLanguage in_array($securityService->getPortalUser()->getPreferredLanguage(), $languages)
  46.                 ? $securityService->getPortalUser()->getPreferredLanguage()
  47.                 : $request->getPreferredLanguage($languages);
  48.             return new RedirectResponse($mapping[$preferredLanguage]);
  49.         }
  50.         $customizedFrontendBuilds = [[null'-']];
  51.         foreach ($frontendBuildService->getCustomizedFrontendBuilds() as $build) {
  52.             $customizedFrontendBuilds[] = [$build$build];
  53.         }
  54.         $oidcEnabled class_exists('Pimcore\\Bundle\\OpenIdConnectBundle\\PimcoreOpenIdConnectBundle');
  55.         return $this->renderTemplate('@PimcorePortalEngine/portal/page.html.twig', [
  56.             'customizedFrontendBuilds' => $customizedFrontendBuilds,
  57.             'oidcEnabled' => $oidcEnabled
  58.         ]);
  59.     }
  60.     /**
  61.      * @return \Symfony\Component\HttpFoundation\Response
  62.      */
  63.     public function contentAction()
  64.     {
  65.         return $this->renderTemplate('@PimcorePortalEngine/portal/content.html.twig');
  66.     }
  67. }