src/Controller/FrontendController.php line 24
<?phpnamespace App\Controller;use App\Entity\Filtre;use App\Entity\Utilisateur;use App\Form\FiltreType;use App\Repository\ConfigurationRepository;use App\Repository\DocumentationRepository;use App\Repository\MarqueRepository;use App\Repository\ProduitRepository;use App\Repository\UrlRepository;use App\Repository\VendeurRepository;use App\Service\CrawlService;use PhpParser\Node\Expr\Array_;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\HttpFoundation\Request;class FrontendController extends AbstractController{#[Route('/', name: 'homepage')]public function index(?Utilisateur $utilisateur, UrlRepository $urlRepository): Response{$derniereUrl = $urlRepository->findBy([],["dateTimeMaj"=>"DESC"],['limit'=>1]);return $this->render('frontend/camouflage.html.twig', ['derniereUrl' => $derniereUrl[0]->getDateTimeMaj()]);}#[Route('/documentation', name: 'app_documentation')]public function documentation(DocumentationRepository $documentationRepository): Response{return $this->render('frontend/documentation.html.twig', ['documentation' => $documentationRepository->findAll(),]);}#[Route('/dashboard/{mode?}', name: 'app_dashboard', defaults: ['mode' => null], methods: ['GET', 'POST'])]public function dashboard(Request $request,ProduitRepository $produitRepository,UrlRepository $urlRepository,VendeurRepository $vendeurRepository,ConfigurationRepository $configurationRepository,$mode): Response{//tableau pour le stockage des résultats [nomProduit] = Array(urlEntity1, urlEntity2...)$resultat = Array();$correspondanceProduitId = Array();$prixReferents = Array();$tousLesVendeurs = $vendeurRepository->findAll();//récupère tous les produits//$produits = $produitRepository->findAll();if($mode == null){$produits = $produitRepository->getProduits();}elseif($mode == "integrateur"){$produits = $produitRepository->findBy([],['id' => 'DESC']);}$vendeurReferentPrimaire = $configurationRepository->findOneBy(["parametre" => "vendeurReferentPrimaire"])->getValeur();$vendeurReferentSecondaire = $configurationRepository->findOneBy(["parametre" => "vendeurReferentSecondaire"])->getValeur();$dashboardUrlsRapide = $configurationRepository->findOneBy(["parametre" => "dashboardUrlsRapide"])->getValeur();//filtre de recherche pour le dashboard//création du formulaire$filtre = new Filtre();$form = $this->createForm(FiltreType::class, $filtre);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {/*/Si une ou plusieurs marques ont été choisi, on prend le tableau des valeur du formulaire et on lance/une nouvelle récupération des produits qui respectent la ou les marques choisi*/if(isset($_POST['filtre']['marque'])){$produits = $produitRepository->findBy(['marque' => $_POST['filtre']['marque']]);}/*/Si une ou plusieurs produits ont été choisi, on prend le tableau des valeurs du formulaire et on lance/une nouvelle récupération des produits qui respectent la ou les produits choisi*/if(isset($_POST['filtre']['produit'] )){$produits = $produitRepository->findBy(['id' => $_POST['filtre']['produit']]);}}//findUrlsByIdProduitAndVendeur//Mise en variable des résultats [nomProduit] = Array(urlEntity1, urlEntity2...)foreach ($produits as $produit) {$resultat[$produit->getNom()] = $urlRepository->findUrlsByIdProduit($produit->getId());$correspondanceProduitId[$produit->getNom()] = $produit->getId();if ($form->isSubmitted() && $form->isValid()) {if(isset($_POST['filtre']['vendeur'])){$resultat[$produit->getNom()] = $urlRepository->findUrlsByIdProduitAndVendeur($produit->getId(),$_POST['filtre']['vendeur']);}}foreach ($urlRepository->findUrlsByIdProduit($produit->getId()) as $url){if($url->getVendeur() == $vendeurReferentPrimaire || $url->getVendeur() == $vendeurReferentSecondaire){$prixReferents[$produit->getNom()] = $url->getPrix();}}}return $this->render('frontend/index.html.twig', ['produits' => $resultat,'correspondanceProduitId' => $correspondanceProduitId,'prixReferents' => $prixReferents,'tousLesVendeurs' => $tousLesVendeurs,'dashboardUrlsRapide'=>$dashboardUrlsRapide,'form' => $form->createView(),]);}}