src/Controller/Front/SeoController.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use Symfony\Component\HttpFoundation\Response;
  4. use Symfony\Component\Routing\Annotation\Route;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Doctrine\ORM\EntityManager;
  7. use App\Service\Search;
  8. use App\Manager\StoreManager;
  9. class SeoController extends FrontController
  10. {
  11. /**
  12. * @Route("/professionnel/product_info.php", name="old_product", requirements={"id"="\d+"})
  13. */
  14. public function oldProduct(Request $request, \Doctrine\ORM\EntityManagerInterface $em)
  15. {
  16. $pid = $request->get('products_id');
  17. $lang = $request->get('language', 'fr');
  18. if($pid){
  19. $product = $em->getRepository('App:Product')->find($pid);
  20. if($product){
  21. $desc = $product->getProductDescription($lang);
  22. return $this->redirectToRoute('product',[
  23. '_locale' => $lang,
  24. 'id' => $pid,
  25. 'url' => $desc ? $desc->getUrl() : ''
  26. ], 301);
  27. }
  28. }
  29. return $this->redirectToRoute('index', ['_locale'=>$lang], 301);
  30. }
  31. /**
  32. * @Route("/professionnel/index.php", name="old_page")
  33. */
  34. public function oldIndex(Request $request, \Doctrine\ORM\EntityManagerInterface $em)
  35. {
  36. $cPath = $request->get('cPath');
  37. $lang = $request->get('language', 'fr');
  38. if($cPath){
  39. $cids = explode('_',$cPath);
  40. $category = $em->getRepository('App:Category')->find(array_pop($cids));
  41. if($category){
  42. $desc = $category->getCategoryDescription($lang);
  43. return $this->redirectToRoute('category',[
  44. '_locale' => $lang,
  45. 'id' => $category->getId(),
  46. 'url' => $desc ? $desc->getUrl() : ''
  47. ], 301);
  48. }
  49. }
  50. return $this->redirectToRoute('index', ['_locale'=>$lang], 301);
  51. }
  52. /**
  53. * @Route("/professional/index.php", name="old_page_en")
  54. */
  55. public function oldIndexEn(Request $request, \Doctrine\ORM\EntityManagerInterface $em)
  56. {
  57. return $this->redirectToRoute('index', ['_locale'=>'fr'], 301);
  58. }
  59. /**
  60. * @Route("/professionnel/faq.php", name="old_faq", requirements={"id"="\d+"})
  61. */
  62. public function oldFaq(Request $request, \Doctrine\ORM\EntityManagerInterface $em)
  63. {
  64. return $this->redirectToRoute('index', ['_locale'=>"fr"], 301);
  65. }
  66. /**
  67. * @Route("/category/{category}/page/{page}/", name="old_faq", requirements={"page"="\d+","category"="[a-zA-Z]+"})
  68. */
  69. public function oldCategory($category, $page, Request $request, \Doctrine\ORM\EntityManagerInterface $em)
  70. {
  71. return $this->redirectToRoute('index', ['_locale'=>"fr"], 301);
  72. }
  73. /**
  74. * @Route("/{url}", name="default_controller", requirements={ "url": "^(?!media)[€\+&=ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØŒŠþÙÚÛÜÝŸàáâãäåæçèéêëìíîïðñòóôõöøœšÞùúûüýÿa-zA-Z0-9\-_\/%\s.^]+" }, priority=-10)
  75. */
  76. public function defaultRoute($url, Request $request, \Doctrine\ORM\EntityManagerInterface $em, \App\Manager\RedirectionManager $redirectMgr)
  77. {
  78. $redirect = $em->getRepository('App:Redirection')->findOneByFromUrl($url);
  79. if($redirect){
  80. return $this->redirect($redirectMgr->getRedirectUrl($redirect), 301);
  81. }
  82. throw new \Symfony\Component\HttpKernel\Exception\NotFoundHttpException();
  83. }
  84. }