<?php
namespace App\Controller;
use App\Entity\Actualites\Actualites;
use App\Entity\Boutique\Categories\BtCategories;
use App\Entity\ContactForm;
use App\Entity\Ecoles\Ecoles;
use App\Entity\Encarts\Encarts;
use App\Entity\Fournisseurs\Fournisseurs;
use App\Entity\Www\Contenu;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
class SiteController extends AbstractController
{
private $_session;
private $_em;
/**
* Site constructor.
*/
public function __construct(SessionInterface $session, EntityManagerInterface $entityManager)
{
$this->_session = $session;
$this->_em = $entityManager;
}
/**
* Page d'accueil
* @return \Symfony\Component\HttpFoundation\Response
*/
public function home()
{
// Page
$page = $this->getDoctrine()->getRepository(Contenu::class)->findOneBy(
["cle" => 'home', "langue" => $this->_session->get("_locale")]
);
$actualites = $this->_em->getRepository(Actualites::class)->findBy(
['actif' => 1, 'idCat1' => '1', "langue" => $this->_session->get("_locale")],
["ordre" => 'ASC', "date" => 'DESC'],
4
);
//peu importe la langue, les encarts ne sont qu'images
$params = ["actif" => "1", 'ecole' => (constant('WWW_HOST') === 'abcm' ? null : constant('WWW_HOST'))];
$encarts = $this->_em->getRepository(Encarts::class)->findBy($params, ["ordre" => "ASC"], 4);
// Ecoles
$ecoles = $this->getDoctrine()->getRepository(Ecoles::class)->findBy(['actif' => 1],
["ordre" => 'ASC', "nom" => 'ASC']);
$partenaires = $this->getDoctrine()->getRepository(Fournisseurs::class)->findBy(['actif' => 1]);
return $this->render('site/home.html.twig', [
'page' => $page,
'actualites' => $actualites,
'encarts' => $encarts,
'ecoles' => $ecoles,
'partenaires' => $partenaires,
]);
}
// /**
// * Page d'accueil mini site
// * @return \Symfony\Component\HttpFoundation\Response
// */
// public function ecoleHome()
// {
// // Page
// $page = $this->getDoctrine()->getRepository(Contenu::class)->find(1);
//
// return $this->render('site/mini-site/home.html.twig', [
// //'titre_page' => $page->getTitrePage(),
// //'contenu' => $page->getTexte(),
// ]);
//
// }
/**
* Page ecole
* @return \Symfony\Component\HttpFoundation\Response
*/
public function ecole()
{
return $this->render('site/ecole.html.twig', [
'currentPage' => 'ecole',
//'titre_page' => $page->getTitrePage(),
//'contenu' => $page->getTexte(),
]);
}
// /**
// * Page ecole MINISITE
// * @return \Symfony\Component\HttpFoundation\Response
// */
// public function ecoleDetail()
// {
// // Page
// $page = $this->getDoctrine()->getRepository(Contenu::class)->find(1);
// return $this->render('site/mini-site/ecole.html.twig', [
// //'titre_page' => $page->getTitrePage(),
// //'contenu' => $page->getTexte(),
// ]);
// }
// /**
// * Page detail actu MINISITE
// * @return \Symfony\Component\HttpFoundation\Response
// */
// public function detailActuEcole()
// {
// // Page
// $page = $this->getDoctrine()->getRepository(Contenu::class)->find(1);
// return $this->render('site//mini-site/blog/actualite.html.twig', [
// //'titre_page' => $page->getTitrePage(),
// //'contenu' => $page->getTexte(),
// ]);
// }
// /**
// * Page liste actu MINISITE
// * @return \Symfony\Component\HttpFoundation\Response
// */
// public function listeActuEcole()
// {
// // Page
// $page = $this->getDoctrine()->getRepository(Contenu::class)->find(1);
// return $this->render('site//mini-site/blog/liste_actualites.html.twig', [
// //'titre_page' => $page->getTitrePage(),
// //'contenu' => $page->getTexte(),
// ]);
// }
// /**
// * Page contact MINISITE
// * @return \Symfony\Component\HttpFoundation\Response
// */
// public function contactEcole(Request $request)
// {
// $contactForm = new ContactForm();
// $form = $this->createForm("App\Form\ContactFormType", $contactForm);
// $form->handleRequest($request);
// if($form->isSubmitted() and $form->isValid()) {
// $rgpd = new \App\Entity\Rgpd\RgpdForm();
// $rgpd->setDate(new \DateTime())
// ->setEmail($contactForm->getEmail())
// ->setAdresseIp($request->getClientIp())
// ->setFormType('contact')
// ->setContactForm($contactForm)
// ->setTexteConsentement("J'accepte que mes données issues du formulaire soient transmises et utilisées
// pour répondre à ma demande. Ces données seront supprimées après le traitement de ma demande. Vous pouvez retirer votre
// consentement à n'importe quel moment en envoyant un mail à strasbourg@logicique.net. Des informations détaillées
// concernant notre politique de confidentialité sont disponibles sur la page de Confidentialité des données.");
// $this->getDoctrine()->getManager()->persist($contactForm);
// $this->getDoctrine()->getManager()->persist($rgpd);
// $this->getDoctrine()->getManager()->flush();
//
//
// $mail = $this->renderView("emails/form-contact.twig", [
// "formulaire" => $contactForm
// ]);
//
// envoiMail($contactForm->getEmail(), "test@atiweb.fr", "Demande d'informations sur A.B.C.M", $mail);
// envoiMail($contactForm->getEmail(), WWW_PARAM_EMAIL_ADMIN, "Demande d'informations sur A.B.C.M", $mail);
//
//
// $this->addFlash("success", "Votre demande a bien été envoyée");
// }
//
// // Page de contenu
// $page = $this->getDoctrine()->getRepository(Contenu::class)->findOneBy(["titreUrl" => 'contact']);
//
// return $this->render('site/mini-site/pages/contact.html.twig', [
// "form" => $form->createView(),
// 'page' => $page,
// //'titre_page' => $page->getTitrePage(),
// //'description_page' => $page->getDescription(),
// //'h1' => $page->getTitreSelect(),
// //"rgpdTexte" => $this->getDoctrine()->getRepository(Textes::class)->find("RGPD_TEXTE_CONSENTEMENT")->getFr()
// ]);
// }
/**
* Page de contenu
* @param String $url
* @return \Symfony\Component\HttpFoundation\Response
*/
public function page(Request $request, string $page = '')
{
$params = [
"titreUrl" => $page,
"langue" => $this->_session->get("_locale"),
];
if ($request->query->get('ecole') !== null) {
$ecole = $this->_em->getRepository(Ecoles::class)->findOneBy(["nomUrl" => $request->query->get('ecole')]);
if ($ecole) {
$params['ecole'] = $ecole;
}
}
// Page de contenu
$page = $this->_em->getRepository(Contenu::class)->findOneBy($params);
// Erreur
if (null === $page) {
throw $this->createNotFoundException('Page not found');
}
return $this->render('site/page.html.twig', [
'titre_page' => $page->getTitrePage(),
'contenu' => $page->getTexte(),
'currentPage' => $page->getCle(),
'page' => $page,
]);
}
/**
* Header
* @return \Symfony\Component\HttpFoundation\Response
*/
public function header(string $currentPage = '', $page = null)
{
//Récupération du menu de navigation
$params = [
'currentPage' => $currentPage,
'page' => $page,
'nav' => $this->getDoctrine()->getRepository(Contenu::class)->findBy([
"filtre" => "menu",
'ecole' => constant('WWW_HOST') === 'abcm' ? null : constant('WWW_HOST'),
], ["ordre" => "ASC"])
];
if (constant("WWW_HOST") === "abcm") {
return $this->render('site/layout/header.html.twig', $params);
}
return $this->render('site/layout/header-ecole.html.twig', $params);
}
// /**
// * Header
// * @return \Symfony\Component\HttpFoundation\Response
// */
// public function headerEcole($path)
// {
//
// $categories = $this->getDoctrine()->getRepository(BtCategories::class)->findBy(["type" => 1, "actif" => 1]);
// return $this->render('site/mini-site/layout/header.html.twig', [
// 'categories' => $categories,
// 'path' => $path
// ]);
// }
/**
* Footer
* @return \Symfony\Component\HttpFoundation\Response
*/
public function footer()
{
$derniereActu = $this->_em->getRepository(Actualites::class)->findBy(
['actif' => 1,
'idCat1' => '1',
'ecole' => constant('WWW_HOST') === 'abcm' ? null : constant('WWW_HOST'),
"langue" => $this->_session->get("_locale")],
["ordre" => 'ASC', "date" => 'DESC'],
1
);
$derniereActu = $derniereActu[0];
return $this->render('site/layout/footer.html.twig', [
'derniereActu' => $derniereActu,
]);
}
// /**
// * Page galerie MINISITE
// * @return \Symfony\Component\HttpFoundation\Response
// */
// public function galerieEcole()
// {
// // Page
// $page = $this->getDoctrine()->getRepository(Contenu::class)->find(1);
// return $this->render('site//mini-site/galerie.html.twig', [
// //'titre_page' => $page->getTitrePage(),
// //'contenu' => $page->getTexte(),
// ]);
// }
//
// /**
// * Page detail galerie MINISITE
// * @return \Symfony\Component\HttpFoundation\Response
// */
// public function detailGalerieEcole()
// {
// // Page
// $page = $this->getDoctrine()->getRepository(Contenu::class)->find(1);
// return $this->render('site//mini-site/detail-galerie.html.twig', [
// //'titre_page' => $page->getTitrePage(),
// //'contenu' => $page->getTexte(),
// ]);
// }
/**
* Switch de la langue
* @param String $langue
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
public function selectLocale(string $langue)
{
$this->_session->set("_locale", $langue);
// Redirection vers la page d'accueil
return $this->redirectToRoute('home', ["_locale" => $langue]);
}
}