src/Controller/DefaultController.php line 32

Open in your IDE?
  1. <?php
  2. /**
  3.  * Pimcore
  4.  *
  5.  * This source file is available under two different licenses:
  6.  * - GNU General Public License version 3 (GPLv3)
  7.  * - Pimcore Enterprise License (PEL)
  8.  * Full copyright and license information is available in
  9.  * LICENSE.md which is distributed with this source code.
  10.  *
  11.  * @copyright  Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  12.  * @license    http://www.pimcore.org/license     GPLv3 and PEL
  13.  */
  14. namespace App\Controller;
  15. use App\Form\SettingsFormType;
  16. use Exception;
  17. use Pimcore\Log\ApplicationLogger;
  18. use Pimcore\Mail;
  19. use Pimcore\Model\Asset;
  20. use Pimcore\Model\WebsiteSetting;
  21. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  22. use Symfony\Component\HttpFoundation\RedirectResponse;
  23. use Symfony\Component\HttpFoundation\Request;
  24. use Symfony\Component\HttpFoundation\Response;
  25. use Symfony\Component\Routing\Annotation\Route;
  26. use Symfony\Contracts\Translation\TranslatorInterface;
  27. use Pimcore\Model\DataObject;
  28. use Pimcore\Model\DataObject\Setting;
  29. class DefaultController extends BaseController
  30. {
  31.     /**
  32.      * @Template
  33.      *
  34.      * @param Request $request
  35.      *
  36.      * @return array
  37.      */
  38.     public function defaultAction(Request $request): array
  39.     {
  40.         return [];
  41.     }
  42.     public function latestEditAction() {
  43.     }
  44.     /**
  45.      * @Route("/", name="portal-page")
  46.      * @Template
  47.      * @param Request $request
  48.      * @param ApplicationLogger $logger
  49.      * @param TranslatorInterface $translator
  50.      * @return array|Response
  51.      * @throws Exception
  52.      */
  53.     public function contentAction(Request $requestApplicationLogger $loggerTranslatorInterface $translator): array|Response
  54.     {
  55.         if (!$this->editmode) {
  56.             
  57.             if ($request->get('token') == $_ENV['CUSTOM_SEARCH_TOKEN'] || $this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY') == null) {
  58.                 $settingsForm $this->settingsForm($request$logger$translator);
  59.                 $success false;
  60.                 if ($settingsForm == "submitted") {
  61.                     $success true;
  62.                 }
  63.                 $device \Pimcore\Tool\DeviceDetector::getInstance();
  64.                 $device->getDevice(); // returns "phone", "tablet" or "desktop"
  65.                 return $this->render('default/content.html.twig', [
  66.                     'isDesktop' => $device->isDesktop(),
  67.                     'isTablet' => $device->isTablet(),
  68.                     'isPhone' => $device->isPhone(),
  69.                     'deviceType' => $device->getDevice(),
  70.                     'settingsForm' => $settingsForm,
  71.                     'success' => $success
  72.                 ]);
  73.             }
  74.         } else {
  75.             /*return [];*/
  76.             $settingsForm $this->settingsForm($request$logger$translator);
  77.             $success false;
  78.             if ($settingsForm == "submitted") {
  79.                 $success true;
  80.             }
  81.             return $this->render('default/content.html.twig', [
  82.                 'settingsForm' => $settingsForm,
  83.                 'success' => $success
  84.             ]);
  85.         }
  86.     }
  87.     /**
  88.      * @throws Exception
  89.      */
  90.     public function settingsForm(Request $requestApplicationLogger $loggerTranslatorInterface $translator): \Symfony\Component\Form\FormView|string
  91.     {
  92.         $settingsObject Setting::getById(34);
  93.         $buttons $settingsObject->getButtons();
  94.         $buttonColor =$settingsObject->getButtonColor();
  95.         $gallery $settingsObject->getGallerieNavigation();
  96.         $colorSwatches $settingsObject->getColorSwatches();
  97.         $gutter $settingsObject->getGutter();
  98.         // build form
  99.         $form $this->createForm(SettingsFormType::class, [
  100.             'buttons'=> $buttons,
  101.             'buttonColor' => $buttonColor,
  102.             'gallerieNavigation'=> $gallery,
  103.             'colorSwatches'=> $colorSwatches,
  104.             'gutter' => $gutter
  105.         ]);
  106.         // get form request
  107.         $form->handleRequest($request);
  108.         if ($form->isSubmitted() && $form->isValid()) {
  109.             // get form fields
  110.             $data $form->getData();
  111.             $settingObject DataObject\Setting::getById(34);
  112.             $settingObject->setButtons($data['buttons']);
  113.             $settingObject->setButtonColor($data['buttonColor']);
  114.             $settingObject->setGallerieNavigation($data['gallerieNavigation']);
  115.             $settingObject->setColorSwatches($data['colorSwatches']);
  116.             $settingObject->setGutter($data['gutter']);
  117.             $settingObject->setPublished(true);
  118.             $settingObject->save();
  119.             return 'submitted';
  120.         } else {
  121.             return $form->createView();
  122.         }
  123.     }
  124.     /**
  125.      * @param Request $request
  126.      *
  127.      * @return Response
  128.      */
  129.     public function genericMailAction(Request $request)
  130.     {
  131.         return $this->render('default/generic_mail.html.twig');
  132.     }
  133.     /**
  134.      * @param Request $request
  135.      *
  136.      * @return Response
  137.      */
  138.     public function galleryRenderletAction(Request $request)
  139.     {
  140.         $params = [];
  141.         if ($request->get('id') && $request->get('type') === 'asset') {
  142.             $params['asset'] = Asset::getById($request->get('id'));
  143.         }
  144.         return $this->render('default/gallery_renderlet.html.twig'$params);
  145.     }
  146. }