<?php
namespace App\Controller;
use App\Entity\Product;
use App\Entity\ProductCategory;
use App\Repository\ProductImageRepository;
use Core\Controller\Traits\BaseController;
use Symfony\Component\HttpFoundation\Request;
use App\Controller\Traits\FunctionsController;
use User\Controller\Traits\BaseUserController;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
/**
* Controller répondant aux methods "GET" de l'application
*/
class PageController extends AbstractController
{
use BaseController;
use BaseUserController;
use FunctionsController;
/**
* Page "Accueil"
*/
public function home(Request $request)
{
$template = $request->attributes->get('vars')['controller']['core_page']->getTemplate();
return $this->generateTemplate('@' . $template->getModule() . '/' . $template->getName());
}
/**
* Page "Aides et subventions"
*/
public function subventions(Request $request)
{
$template = $request->attributes->get('vars')['controller']['core_page']->getTemplate();
return $this->generateTemplate('@' . $template->getModule() . '/' . $template->getName());
}
/**
* Page "Contact"
*/
public function contact(Request $request)
{
$template = $request->attributes->get('vars')['controller']['core_page']->getTemplate();
return $this->generateTemplate('@' . $template->getModule() . '/' . $template->getName());
}
/**
* Page "Catégorie - Affichage d'une catégorie"
*/
public function products(Request $request)
{
$slug = $this->getCurrentPageSlug($request, 0);
$this->vars['category'] = $object = $this->getEntityBySlug($slug, ProductCategory::class);
if ($object == null) {
return $this->redirectNotFoundException($request);
}
$template = $request->attributes->get('vars')['controller']['core_page']->getTemplate();
return $this->generateTemplate('@' . $template->getModule() . '/' . $template->getName());
}
/**
* Page "Produit - Affichage d'un produit"
*/
public function product(Request $request, ProductImageRepository $productImageRepository)
{
$slug = $this->getCurrentPageSlug($request, 1);
$this->vars['product'] = $object = $this->getEntityBySlug($slug, Product::class);
if ($object == null) {
return $this->redirectNotFoundException($request);
}
$this->vars['category'] = $this->getDoctrine()->getRepository(ProductCategory::class)->find($object->getProductCategory());
$pagination = 1;
$limit = 6;
$filter = $object->getId();
$this->vars['product_images_max_pagination'] = $productImageRepository->find_max_pagination($filter);
$this->vars['product_images'] = $productImageRepository->select_by_pagination($pagination, $filter, $limit);
$template = $request->attributes->get('vars')['controller']['core_page']->getTemplate();
return $this->generateTemplate('@' . $template->getModule() . '/' . $template->getName());
}
/**
* Compte - Connexion
*/
public function page_default_5ffd7ab83644b(Request $request)
{
return $this->forward('User\Controller\PageController::connect', [
'vars' => $this->vars
]);
}
/**
* Compte - Déconnexion
*/
public function page_default_5ffd9e9eaa0e5(Request $request)
{
return $this->forward('User\Controller\PageController::disconnect', [
'vars' => $this->vars
]);
}
/**
* Compte - Mot de passe oublié
*/
public function page_default_5fc9203cb6e67(Request $request)
{
return $this->forward('User\Controller\PageController::forgot_password', [
'vars' => $this->vars
]);
}
/**
* Compte - Mot de passe oublié - Réinitialisation
*/
public function page_default_5fc920768c12c(Request $request)
{
return $this->forward('User\Controller\PageController::forgot_password_reset', [
'vars' => $this->vars
]);
}
}