<?php
namespace AppBundle\Controller\Site;
use AppBundle\Entity\Site\Advice;
use AppBundle\Entity\Site\AdviceSearch;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\Config\Definition\Exception\Exception;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
/**
* @Route("/porady", name="advice")
*/
class AdviceController extends Controller
{
/**
* @Route("", name="advice_tips")
*/
public function tipsAction(Request $request)
{
$advicesPerPage = 12;
$em = $this->getDoctrine()->getManager();
$ar = $em->getRepository(Advice::class);
$page = $request->get('page', 1);
$search = $request->get('search', '');
$pages = ceil($ar->getAdvicesCount($search) / $advicesPerPage);
$advices = $ar->getByOffset(($page-1) * $advicesPerPage, $advicesPerPage, $search);
$searchQuery = '';
if($search) {
$searchQuery = '&search=' . $search;
$adviceSearch = new AdviceSearch();
$adviceSearch->setSearchQuery($search);
$em = $this->getDoctrine()->getManager();
try {
$em->persist($adviceSearch);
$em->flush();
} catch (\Exception $e) {
}
}
return $this->render('Site/Advice/advices.html.twig', [
'advices' => $advices,
'page' => $page,
'pages' => $pages,
'searchString' => $search,
'searchQuery' => $searchQuery
]);
}
/**
* @Route("/wszystkie-porady", name="all_advice_tips")
*/
public function allTipsAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$ar = $em->getRepository(Advice::class);
//WHERE a.active = 1 ORDER BY a.hierarchy ASC, a.contentDate DESC
$advices = $ar->findBy(['active' => 1], ['hierarchy' => 'ASC', 'contentDate' => 'DESC']);
return $this->render('Site/Advice/advices.html.twig', [
'advices' => $advices,
'page' => 1,
'pages' => 1,
'searchString' => '',
'searchQuery' => ''
]);
}
/**
* @Route("/ubezpieczenie")
* @Route("/oc")
* @Route("/ac")
* @Route("/szkoda")
* @Route("/ubezpieczenia")
*/
public function redirectAction(){
return $this->redirectToRoute('adviceadvice_tips', [], 301);
}
/**
* @Route("/historia-pojazdu")
*/
public function vehHistoryAction(){
return $this->redirect('/porady/historia-pojazdu%E2%80%93jak-ja-sprawdzic', 301);
}
/**
* @Route("/przerejestrowanie-samochodu")
*/
public function przerejestrowanieAction(){
return $this->redirect('/porady/przerejestrowanie-samochodu%E2%80%93co-trzeba-wiedziec', 301);
}
/**
* @Route("/{link}", name="advice_tip")
* @param Advice $advice
* @return Response
*/
public function tipAction(Advice $advice = null)
{
if($advice != null) {
$advices = $this->getDoctrine()->getRepository(Advice::class)->getSimilarTo($advice, 3);
return $this->render('Site/Advice/advice.html.twig', [
'advice' => $advice,
'advices' => $advices
]);
} else {
return new Response($this->renderView('Site/Error/error.html.twig'), Response::HTTP_NOT_FOUND);
}
}
}