src/Controller/Front/PageController.php line 36

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use Symfony\Component\HttpFoundation\Response;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Doctrine\ORM\EntityManager;
  7. class PageController extends FrontController
  8. {
  9. /**
  10. * @Route("/{_locale}/pg/{id}/{url}", name="page", requirements={"id"="\d+"})
  11. */
  12. public function page(Request $request, $id,$url="")
  13. {
  14. $em = $this->getDoctrine()->getManager();
  15. $page = $em->getRepository('App:Page')->find($id);
  16. if(empty($page)){
  17. throw new \Symfony\Component\HttpKernel\Exception\NotFoundHttpException();
  18. }
  19. $locale = $request->getLocale();
  20. $pageDescription = null;
  21. $descriptions = $page->getDescriptions();
  22. foreach($descriptions as $description){
  23. if($description->getLanguage()->getCode() == $locale)
  24. $pageDescription = $description;
  25. }
  26. if($pageDescription->getUrl()!=$url)
  27. return $this->redirectToRoute('page', ['url'=>$pageDescription->getUrl(),'id'=>$page->getId()], 301);
  28. $cid = $request->get('cID', false);
  29. if($cid){
  30. return $this->redirectToRoute('page', ['url'=>$pageDescription->getUrl(),'id'=>$page->getId()], 301);
  31. }
  32. return $this->render('front/cms/page.html.twig',[
  33. 'page'=>$page,
  34. 'pageDescription'=>$pageDescription
  35. ]);
  36. return new Response($pageDescription->getBody());
  37. }
  38. }