<?php
namespace App\Controller\Front;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use Doctrine\ORM\EntityManager;
use App\Service\Search;
use App\Manager\StoreManager;
class SeoController extends FrontController
{
/**
* @Route("/professionnel/product_info.php", name="old_product", requirements={"id"="\d+"})
*/
public function oldProduct(Request $request, \Doctrine\ORM\EntityManagerInterface $em)
{
$pid = $request->get('products_id');
$lang = $request->get('language', 'fr');
if($pid){
$product = $em->getRepository('App:Product')->find($pid);
if($product){
$desc = $product->getProductDescription($lang);
return $this->redirectToRoute('product',[
'_locale' => $lang,
'id' => $pid,
'url' => $desc ? $desc->getUrl() : ''
], 301);
}
}
return $this->redirectToRoute('index', ['_locale'=>$lang], 301);
}
/**
* @Route("/professionnel/index.php", name="old_page")
*/
public function oldIndex(Request $request, \Doctrine\ORM\EntityManagerInterface $em)
{
$cPath = $request->get('cPath');
$lang = $request->get('language', 'fr');
if($cPath){
$cids = explode('_',$cPath);
$category = $em->getRepository('App:Category')->find(array_pop($cids));
if($category){
$desc = $category->getCategoryDescription($lang);
return $this->redirectToRoute('category',[
'_locale' => $lang,
'id' => $category->getId(),
'url' => $desc ? $desc->getUrl() : ''
], 301);
}
}
return $this->redirectToRoute('index', ['_locale'=>$lang], 301);
}
/**
* @Route("/professional/index.php", name="old_page_en")
*/
public function oldIndexEn(Request $request, \Doctrine\ORM\EntityManagerInterface $em)
{
return $this->redirectToRoute('index', ['_locale'=>'fr'], 301);
}
/**
* @Route("/professionnel/faq.php", name="old_faq", requirements={"id"="\d+"})
*/
public function oldFaq(Request $request, \Doctrine\ORM\EntityManagerInterface $em)
{
return $this->redirectToRoute('index', ['_locale'=>"fr"], 301);
}
/**
* @Route("/category/{category}/page/{page}/", name="old_faq", requirements={"page"="\d+","category"="[a-zA-Z]+"})
*/
public function oldCategory($category, $page, Request $request, \Doctrine\ORM\EntityManagerInterface $em)
{
return $this->redirectToRoute('index', ['_locale'=>"fr"], 301);
}
/**
* @Route("/{url}", name="default_controller", requirements={ "url": "^(?!media)[€\+&=ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØŒŠþÙÚÛÜÝŸàáâãäåæçèéêëìíîïðñòóôõöøœšÞùúûüýÿa-zA-Z0-9\-_\/%\s.^]+" }, priority=-10)
*/
public function defaultRoute($url, Request $request, \Doctrine\ORM\EntityManagerInterface $em, \App\Manager\RedirectionManager $redirectMgr)
{
$redirect = $em->getRepository('App:Redirection')->findOneByFromUrl($url);
if($redirect){
return $this->redirect($redirectMgr->getRedirectUrl($redirect), 301);
}
throw new \Symfony\Component\HttpKernel\Exception\NotFoundHttpException();
}
}