<?php
namespace App\Controller;
use App\Entity\Produits;
use App\Repository\CategorieProduitsRepository;
use App\Repository\ProduitsRepository;
use App\Repository\UserRepository;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\CategorieProduits;
use App\Services\Visite\VisiteService;
class IndexController extends AbstractController
{
/**
* @Route("/", name="app_accueil")
*/
public function index(CategorieProduitsRepository $categorieRepository, ProduitsRepository $produitsRepository, UserRepository $userRepository)
{
$produits = $produitsRepository->findBy(
['active' => true],
['id' => 'DESC'],
10);
$producteurs = $userRepository->UserByRoles('ROLE_ACTEUR_FUPRO');
return $this->render('front/index.html.twig', [
'categories' => $categorieRepository->findAll(),
'produits' => $produits,
'meilleursVentes' => $produits,
'produitsPopulaires' => $produits,
'producteurs' => $producteurs
]);
}
/**
* @Route("/produits/{slug}", name="app_fiche_produit")
*/
public function ficheProduit(Produits $produit, ProduitsRepository $produitsRepository, VisiteService $visite)
{
$visite->produitvisite($produit);
$produits = $produitsRepository->findBy(['categorie' => $produit->getCategorie()]);
return $this->render('front/fiche_produit.html.twig', [
'produit' => $produit,
'produits' => $produits
]);
}
/**
* @Route("/nos-produits", name="app_boutique")
*/
public function boutique(Request $request, ProduitsRepository $produitsRepository, PaginatorInterface $paginator)
{
$produits = $produitsRepository->findBy(
['active' => true],
['id' => 'DESC']);
$produits = $paginator->paginate($produits = $produitsRepository->findBy(
['active' => true],
['id' => 'DESC'])
, // Requête contenant les données à paginer (ici nos articles)
$request->query->getInt('page', 1), // Numéro de la page en cours, passé dans l'URL, 1 si aucune page
15 // Nombre de résultats par page
);
return $this->render('front/notre-boutique.html.twig', [
'type' => null,
'produits' => $produits
]);
}
/**
* @Route("/categorie/{slug}", name="app_categorie_boutique")
*/
public function categorieProduits(Request $request, CategorieProduits $categorieProduits, PaginatorInterface $paginator)
{
$produits = $paginator->paginate($categorieProduits->getProduits()
, // Requête contenant les données à paginer (ici nos articles)
$request->query->getInt('page', 1), // Numéro de la page en cours, passé dans l'URL, 1 si aucune page
15 // Nombre de résultats par page
);
return $this->render('front/notre-boutique.html.twig', [
'produits' => $produits,
'type' => 'categorie',
'categorie' => $categorieProduits->getLibelle()
]);
}
/**
* @Route("/cgu", name="app_cgu")
*/
public function cgu()
{
return $this->render('front/cgu.html.twig');
}
/**
* @Route("/politique-de-confidentialite", name="app_politique")
*/
public function politique()
{
return $this->render('front/cgu.html.twig');
}
/**
* @Route("/contact", name="app_contact")
*/
public function contact()
{
return $this->render('front/contact.html.twig');
}
/**
* @Route("/eYobu", name="app_eyobu")
*/
public function eyobu()
{
return $this->render('front/abouts_us.html.twig');
}
}