<?php
namespace App\Controller\Marketplace;
use App\Entity\Workshop;
use App\Form\Marketplace\SearchType;
use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class AllEventsController extends AbstractController
{
/**
* @var EntityManagerInterface
*/
private $em;
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
/**
* @Route("/voir-tous-les-ateliers", name="app_event_all")
*/
public function seeAllEvents(Request $request, PaginatorInterface $paginator): Response
{
$data = [];
if(!empty($request->query->get('env'))){
if ($request->query->get('env') == 'collective') {
$data['isVirtual'] = false;
}else{
$data['isVirtual'] = true;
}
}
$form = $this->createForm(SearchType::class, $data, ['categorySearch' => true, 'allSearch' => true, 'method' => 'GET']);
$form->handleRequest($request);
$marketplaceCategs = [];
if ($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
$family = $data['family'];
// $marketplaceCategs = $this->em->getRepository(MarketplaceCategory::class)->findCollectiveCategories($family);
}
try {
$params = [
'marketplaceIsDisplay' => true,
'isVirtual' => $data['isVirtual']
];
if (!empty($family)) {
$params['marketplaceFamily'] = $family;
}
// $workshops = $this->em->getRepository(Workshop::class)->findBy($params) ?? [];
$qb = $this->em->getRepository(Workshop::class)->findMarketplaceWorkshopsQuery($params);
$pagination = $paginator->paginate(
$qb->getQuery(),
$request->query->getInt('page', 1),
$request->query->getInt('count', 10)
);
} catch (\Throwable $th) {
//throw $th;
}
return $this->render('marketplace/all_events/list_search_result.html.twig', [
'searchForm' => $form->createView(),
// 'category' => $category,
'workshops' => $pagination ?? [],
'seeAll' => true
]);
}
}