<?php
namespace App\Controller\Uniqskills;
use App\Entity\Gos\PortalSettings;
use App\Entity\Gos\StaticPage;
use App\Utils\Uniqskills\StaticPageUtils;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/{_locale}")
*/
class StaticPageController extends AbstractController
{
private $em;
private $staticPageUtils;
public function __construct(EntityManagerInterface $_em, StaticPageUtils $staticPageUtils)
{
$this->em = $_em;
$this->staticPageUtils = $staticPageUtils;
}
/**
* @Route("/page/{slug}", name="fmUniqskillsStaticPage")
* @Route("/s/{category}/{slug}/", name="fmUniqskillsStaticPageCategory")
*/
public function indexAction(Request $request, $slug, $category = null)
{
$pSettings = $this->em->getRepository(PortalSettings::class)->findOneByHash($_ENV['US_PORTAL_SETTINGS']);
$staticPage = $this->em->getRepository(StaticPage::class)->findOneActiveBySlug($slug, $pSettings);
if ($staticPage === null
|| ($staticPage->getCategory() && $category && $staticPage->getCategory()->getCategorySlug() !== $category))
{
throw $this->createNotFoundException();
}
if ($category === null && $staticPage->getCategory())
{
return $this->redirectToRoute(
'fmUniqskillsStaticPageCategory',
array(
'category' => $staticPage->getCategory()->getCategorySlug(),
'slug' => $slug
),
301
);
}
return $this->render('/uniqskills/staticpage/index.html.twig', array(
'static' => $staticPage,
'statics' => $this->em->getRepository(StaticPage::class)->findAllByPortalSettingsAndLanguage($pSettings, $request->getLocale())
));
}
/**
* @Route("/sitemap.xml", defaults={"_format"="xml"}, name="usSitemap")
*/
public function sitemapAction(Request $request)
{
$locale = $request->getLocale();
$urls = $this->staticPageUtils->getAllUrls($locale);
return $this->render('/uniqskills/sitemap.xml.twig', ['urls' => $urls]);
}
}