<?php
namespace App\Controller\Front;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Doctrine\ORM\EntityManager;
class PageController extends FrontController
{
/**
* @Route("/{_locale}/pg/{id}/{url}", name="page", requirements={"id"="\d+"})
*/
public function page(Request $request, $id,$url="")
{
$em = $this->getDoctrine()->getManager();
$page = $em->getRepository('App:Page')->find($id);
if(empty($page)){
throw new \Symfony\Component\HttpKernel\Exception\NotFoundHttpException();
}
$locale = $request->getLocale();
$pageDescription = null;
$descriptions = $page->getDescriptions();
foreach($descriptions as $description){
if($description->getLanguage()->getCode() == $locale)
$pageDescription = $description;
}
if($pageDescription->getUrl()!=$url)
return $this->redirectToRoute('page', ['url'=>$pageDescription->getUrl(),'id'=>$page->getId()], 301);
$cid = $request->get('cID', false);
if($cid){
return $this->redirectToRoute('page', ['url'=>$pageDescription->getUrl(),'id'=>$page->getId()], 301);
}
return $this->render('front/cms/page.html.twig',[
'page'=>$page,
'pageDescription'=>$pageDescription
]);
return new Response($pageDescription->getBody());
}
}