<?php
namespace App\Controller;
use App\Entity\SearchEngine;
use App\Form\SearchEngineType;
use App\Repository\SearchEngineRepository;
use App\Service\SearchEngineService;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class SearchEngineController extends AppController
{
protected $searchEngineService;
protected $searchEngineRepository;
public function __construct(SearchEngineService $searchEngineService, SearchEngineRepository $searchEngineRepository)
{
$this->searchEngineService = $searchEngineService;
$this->searchEngineRepository = $searchEngineRepository;
}
/**
* @Route({
* "fr": "/fr/recherche/demande"
* }, name="search_engine")
*/
public function index(Request $request): Response
{
// $this->searchEngineService->initializeDatabase();
$query = null;
$params = [];
$form = $this->createForm(SearchEngineType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$query = $params['content'] = $form->getData()['query'];
}
$limit = 26;
$page = $request->query->getInt("page", 1);
$total = $this->searchEngineRepository->getCount($params);
$items = $this->searchEngineRepository->getPaginated($page, $limit, $params);
$formView = $form->createView();
return $this->render('search_engine/index.html.twig', [
'items' => $items,
'page' => $page,
'limit' => $limit,
'total' => $total,
'totalPages' => ceil($total / $limit),
'searchEngineForm' => $formView,
'query' => $query
]);
}
/**
* @Route("/admin/search-engine/init", name="search_engine_admin_init")
*/
public function adminInit()
{
$this->searchEngineService->initializeDatabase();
return $this->render('search_engine/adminInit.html.twig', [
'controllerName' => 'SearchEngine',
'controllerAction' => 'adminInit'
]);
}
}