src/Controller/Frontend/FrontendController.php line 32

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Frontend;
  3. use App\Entity\Gos\PortalSettings;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use ScssPhp\ScssPhp\Compiler;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  8. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\HttpKernel\KernelInterface;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. class FrontendController extends AbstractController
  14. {
  15.     private EntityManagerInterface $em;
  16.     private KernelInterface $kernel;
  17.     public function __construct(
  18.         EntityManagerInterface $em,
  19.         KernelInterface $kernel
  20.     ) {
  21.         $this->em $em;
  22.         $this->kernel $kernel;
  23.     }
  24.     /**
  25.      * @Route("/", name="fmFrontendHome", host="www.%gos_url%")
  26.      */
  27.     public function indexAction(): Response
  28.     {
  29.         return $this->render('frontend/index.html.twig');
  30.     }
  31.     /**
  32.      * @Route("/get-scss", name="fmFrontendCompileScss")
  33.      */
  34.     public function compileScssAction(): Response
  35.     {
  36.         $scss = new Compiler();
  37.         $scss->setImportPaths(
  38.             $this->kernel->getProjectDir() . '/public/frontend/scss/'
  39.         );
  40.         $css        $scss->compileString('@import "main.scss"');
  41.         $response   = new Response();
  42.         $response->setContent($css->getCss());
  43.         $response->setStatusCode(Response::HTTP_OK);
  44.         $response->headers->set('Content-Type''text/css');
  45.         return $response;
  46.     }
  47.     /**
  48.      * @Route("/show/portal/settings", name="fmFrontendShowPortalSettings")
  49.      * @Template("/frontend/show_portal_settings.html.twig")
  50.      */
  51.     public function showProtalSettingsAction(Request $request): array
  52.     {
  53.         $em                 $this->em;
  54.         $portalSettingsHash $request->getSession()->get('portalSettingsHash');
  55.         $portalSettings     $em->getRepository(PortalSettings::class)->findOneByHash($portalSettingsHash);
  56.         return ['portalSettings' => $portalSettings];
  57.     }
  58.     /**
  59.      * @Route("/karmicCalculator", name="fmKarmicCalculator")
  60.      */
  61.     public function karmicCalculatorAction(): Response
  62.     {
  63.         return $this->render('uniqskills/frontend/karmicCalculator.html.twig');
  64.     }
  65. }