<?php
namespace App\Controller;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\Producto;
use App\Entity\Configuracion;
use App\Entity\Categoria;
use App\Entity\Publicacion;
use App\Entity\Curso;
use App\Entity\AccesoDirecto;
use App\Entity\Contacto;
class DefaultController extends AbstractController
{
private $entityManager;
//Repositorios
private $productoRepository;
private $publicacionRepository;
private $cursoRepository;
private $categoriaRepository;
private $contactoRepository;
private $accesoDirectoRepository;
private $configuracionRepository;
public function __construct(EntityManagerInterface $entityManager, ParameterBagInterface $parameterBag)
{
//Doctrine
$this->entityManager = $entityManager;
$this->publicacionRepository = $this->entityManager->getRepository(Publicacion::class);
$this->productoRepository = $this->entityManager->getRepository(Producto::class);
$this->cursoRepository = $this->entityManager->getRepository(Curso::class);
$this->categoriaRepository = $this->entityManager->getRepository(Categoria::class);
$this->accesoDirectoRepository = $this->entityManager->getRepository(AccesoDirecto::class);
$this->configuracionRepository = $this->entityManager->getRepository(Configuracion::class);
$this->contactoRepository = $this->entityManager->getRepository(Contacto::class);
}
//Funcion del Index del Sitio
public function index(): Response
{
//Obtengo todos los Productos
$productos = $this->productoRepository->findByProductosDestacados();
//Obtengo las ultimas noticias
$publicaciones = $this->publicacionRepository->findByUltimasNoticias();
//Obtengo todas las categorias existentes
$categorias = $this->categoriaRepository->findByCategoriasActivas();
//Obtengo todos los cursos para mostrar
$cursos = $this->cursoRepository->findByCursosDestacados();
$categoriasCursos = $this->categoriaRepository->findByCategoriasCursos();
//Obtengo los accesos directos
$accesosDirectos = $this->accesoDirectoRepository->findByAccesosActivos();
//Obtengo los Mensajes de la Home Principal
$mensajeHome = $this->configuracionRepository->find(1);
//Obtengo los Contactos
$contactos = $this->contactoRepository->findByContactoDestacados();
//Retorno a la vista
return $this->render(
'index.html.twig',
[
'productos' => $productos,
'cursos' => $cursos,
'categoriasCursos' => $categoriasCursos,
'publicaciones' => $publicaciones,
'categorias' => $categorias,
'accesosDirectos' => $accesosDirectos,
'mensajeHome' => $mensajeHome,
'contactos' => $contactos,
]
);
}
}