<?php
namespace App\Controller\Frontend;
use App\Entity\Gos\PortalSettings;
use Doctrine\ORM\EntityManagerInterface;
use ScssPhp\ScssPhp\Compiler;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\KernelInterface;
use Symfony\Component\Routing\Annotation\Route;
class FrontendController extends AbstractController
{
private EntityManagerInterface $em;
private KernelInterface $kernel;
public function __construct(
EntityManagerInterface $em,
KernelInterface $kernel
) {
$this->em = $em;
$this->kernel = $kernel;
}
/**
* @Route("/", name="fmFrontendHome", host="www.%gos_url%")
*/
public function indexAction(): Response
{
return $this->render('frontend/index.html.twig');
}
/**
* @Route("/get-scss", name="fmFrontendCompileScss")
*/
public function compileScssAction(): Response
{
$scss = new Compiler();
$scss->setImportPaths(
$this->kernel->getProjectDir() . '/public/frontend/scss/'
);
$css = $scss->compileString('@import "main.scss"');
$response = new Response();
$response->setContent($css->getCss());
$response->setStatusCode(Response::HTTP_OK);
$response->headers->set('Content-Type', 'text/css');
return $response;
}
/**
* @Route("/show/portal/settings", name="fmFrontendShowPortalSettings")
* @Template("/frontend/show_portal_settings.html.twig")
*/
public function showProtalSettingsAction(Request $request): array
{
$em = $this->em;
$portalSettingsHash = $request->getSession()->get('portalSettingsHash');
$portalSettings = $em->getRepository(PortalSettings::class)->findOneByHash($portalSettingsHash);
return ['portalSettings' => $portalSettings];
}
/**
* @Route("/karmicCalculator", name="fmKarmicCalculator")
*/
public function karmicCalculatorAction(): Response
{
return $this->render('uniqskills/frontend/karmicCalculator.html.twig');
}
}