src/Controller/SiteController.php line 268

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Actualites\Actualites;
  4. use App\Entity\Boutique\Categories\BtCategories;
  5. use App\Entity\ContactForm;
  6. use App\Entity\Ecoles\Ecoles;
  7. use App\Entity\Encarts\Encarts;
  8. use App\Entity\Fournisseurs\Fournisseurs;
  9. use App\Entity\Www\Contenu;
  10. use Doctrine\ORM\EntityManagerInterface;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  14. class SiteController extends AbstractController
  15. {
  16.     private $_session;
  17.     private $_em;
  18.     /**
  19.      * Site constructor.
  20.      */
  21.     public function __construct(SessionInterface $sessionEntityManagerInterface $entityManager)
  22.     {
  23.         $this->_session $session;
  24.         $this->_em $entityManager;
  25.     }
  26.     /**
  27.      * Page d'accueil
  28.      * @return \Symfony\Component\HttpFoundation\Response
  29.      */
  30.     public function home()
  31.     {
  32.         // Page
  33.         $page $this->getDoctrine()->getRepository(Contenu::class)->findOneBy(
  34.             ["cle" => 'home'"langue" => $this->_session->get("_locale")]
  35.         );
  36.         $actualites $this->_em->getRepository(Actualites::class)->findBy(
  37.             ['actif' => 1'idCat1' => '1'"langue" => $this->_session->get("_locale")],
  38.             ["ordre" => 'ASC'"date" => 'DESC'],
  39.             4
  40.         );
  41.         //peu importe la langue, les encarts ne sont qu'images
  42.         $params = ["actif" => "1"'ecole' => (constant('WWW_HOST') === 'abcm' null constant('WWW_HOST'))];
  43.         $encarts $this->_em->getRepository(Encarts::class)->findBy($params, ["ordre" => "ASC"], 4);
  44.         // Ecoles
  45.         $ecoles $this->getDoctrine()->getRepository(Ecoles::class)->findBy(['actif' => 1],
  46.             ["ordre" => 'ASC'"nom" => 'ASC']);
  47.         $partenaires $this->getDoctrine()->getRepository(Fournisseurs::class)->findBy(['actif' => 1]);
  48.         return $this->render('site/home.html.twig', [
  49.             'page'        => $page,
  50.             'actualites'  => $actualites,
  51.             'encarts'     => $encarts,
  52.             'ecoles'      => $ecoles,
  53.             'partenaires' => $partenaires,
  54.         ]);
  55.     }
  56. //    /**
  57. //     * Page d'accueil mini site
  58. //     * @return \Symfony\Component\HttpFoundation\Response
  59. //     */
  60. //    public function ecoleHome()
  61. //    {
  62. //        // Page
  63. //        $page = $this->getDoctrine()->getRepository(Contenu::class)->find(1);
  64. //
  65. //        return $this->render('site/mini-site/home.html.twig', [
  66. //            //'titre_page' => $page->getTitrePage(),
  67. //            //'contenu' => $page->getTexte(),
  68. //        ]);
  69. //
  70. //    }
  71.     /**
  72.      * Page ecole
  73.      * @return \Symfony\Component\HttpFoundation\Response
  74.      */
  75.     public function ecole()
  76.     {
  77.         return $this->render('site/ecole.html.twig', [
  78.             'currentPage' => 'ecole',
  79.             //'titre_page' => $page->getTitrePage(),
  80.             //'contenu' => $page->getTexte(),
  81.         ]);
  82.     }
  83. //    /**
  84. //     * Page ecole MINISITE
  85. //     * @return \Symfony\Component\HttpFoundation\Response
  86. //     */
  87. //    public function ecoleDetail()
  88. //    {
  89. //        // Page
  90. //        $page = $this->getDoctrine()->getRepository(Contenu::class)->find(1);
  91. //        return $this->render('site/mini-site/ecole.html.twig', [
  92. //            //'titre_page' => $page->getTitrePage(),
  93. //            //'contenu' => $page->getTexte(),
  94. //        ]);
  95. //    }
  96. //    /**
  97. //     * Page detail actu MINISITE
  98. //     * @return \Symfony\Component\HttpFoundation\Response
  99. //     */
  100. //    public function detailActuEcole()
  101. //    {
  102. //        // Page
  103. //        $page = $this->getDoctrine()->getRepository(Contenu::class)->find(1);
  104. //        return $this->render('site//mini-site/blog/actualite.html.twig', [
  105. //            //'titre_page' => $page->getTitrePage(),
  106. //            //'contenu' => $page->getTexte(),
  107. //        ]);
  108. //    }
  109. //    /**
  110. //     * Page liste actu MINISITE
  111. //     * @return \Symfony\Component\HttpFoundation\Response
  112. //     */
  113. //    public function listeActuEcole()
  114. //    {
  115. //        // Page
  116. //        $page = $this->getDoctrine()->getRepository(Contenu::class)->find(1);
  117. //        return $this->render('site//mini-site/blog/liste_actualites.html.twig', [
  118. //            //'titre_page' => $page->getTitrePage(),
  119. //            //'contenu' => $page->getTexte(),
  120. //        ]);
  121. //    }
  122. //    /**
  123. //     * Page contact MINISITE
  124. //     * @return \Symfony\Component\HttpFoundation\Response
  125. //     */
  126. //    public function contactEcole(Request $request)
  127. //    {
  128. //        $contactForm = new ContactForm();
  129. //        $form = $this->createForm("App\Form\ContactFormType", $contactForm);
  130. //        $form->handleRequest($request);
  131. //        if($form->isSubmitted() and $form->isValid()) {
  132. //            $rgpd = new \App\Entity\Rgpd\RgpdForm();
  133. //            $rgpd->setDate(new \DateTime())
  134. //                ->setEmail($contactForm->getEmail())
  135. //                ->setAdresseIp($request->getClientIp())
  136. //                ->setFormType('contact')
  137. //                ->setContactForm($contactForm)
  138. //                ->setTexteConsentement("J'accepte que mes données issues du formulaire soient transmises et utilisées
  139. //                pour répondre à ma demande. Ces données seront supprimées après le traitement de ma demande. Vous pouvez retirer votre
  140. //                consentement à n'importe quel moment en envoyant un mail à strasbourg@logicique.net. Des informations détaillées
  141. //                concernant notre politique de confidentialité sont disponibles sur la page de Confidentialité des données.");
  142. //            $this->getDoctrine()->getManager()->persist($contactForm);
  143. //            $this->getDoctrine()->getManager()->persist($rgpd);
  144. //            $this->getDoctrine()->getManager()->flush();
  145. //
  146. //
  147. //            $mail = $this->renderView("emails/form-contact.twig", [
  148. //                "formulaire" => $contactForm
  149. //            ]);
  150. //
  151. //            envoiMail($contactForm->getEmail(), "test@atiweb.fr", "Demande d'informations sur A.B.C.M", $mail);
  152. //            envoiMail($contactForm->getEmail(), WWW_PARAM_EMAIL_ADMIN, "Demande d'informations sur A.B.C.M", $mail);
  153. //
  154. //
  155. //            $this->addFlash("success", "Votre demande a bien été envoyée");
  156. //        }
  157. //
  158. //        // Page de contenu
  159. //        $page = $this->getDoctrine()->getRepository(Contenu::class)->findOneBy(["titreUrl" => 'contact']);
  160. //
  161. //        return $this->render('site/mini-site/pages/contact.html.twig', [
  162. //            "form" => $form->createView(),
  163. //            'page' => $page,
  164. //            //'titre_page' => $page->getTitrePage(),
  165. //            //'description_page' => $page->getDescription(),
  166. //            //'h1' => $page->getTitreSelect(),
  167. //            //"rgpdTexte" => $this->getDoctrine()->getRepository(Textes::class)->find("RGPD_TEXTE_CONSENTEMENT")->getFr()
  168. //        ]);
  169. //    }
  170.     /**
  171.      * Page de contenu
  172.      * @param String $url
  173.      * @return \Symfony\Component\HttpFoundation\Response
  174.      */
  175.     public function page(Request $requeststring $page '')
  176.     {
  177.         $params = [
  178.             "titreUrl" => $page,
  179.             "langue"   => $this->_session->get("_locale"),
  180.         ];
  181.         if ($request->query->get('ecole') !== null) {
  182.             $ecole $this->_em->getRepository(Ecoles::class)->findOneBy(["nomUrl" => $request->query->get('ecole')]);
  183.             if ($ecole) {
  184.                 $params['ecole'] = $ecole;
  185.             }
  186.         }
  187.         // Page de contenu
  188.         $page $this->_em->getRepository(Contenu::class)->findOneBy($params);
  189.         // Erreur
  190.         if (null === $page) {
  191.             throw $this->createNotFoundException('Page not found');
  192.         }
  193.         return $this->render('site/page.html.twig', [
  194.             'titre_page'  => $page->getTitrePage(),
  195.             'contenu'     => $page->getTexte(),
  196.             'currentPage' => $page->getCle(),
  197.             'page'        => $page,
  198.         ]);
  199.     }
  200.     /**
  201.      * Header
  202.      * @return \Symfony\Component\HttpFoundation\Response
  203.      */
  204.     public function header(string $currentPage ''$page null)
  205.     {
  206.         //Récupération du menu de navigation
  207.         $params = [
  208.             'currentPage' => $currentPage,
  209.             'page'        => $page,
  210.             'nav' => $this->getDoctrine()->getRepository(Contenu::class)->findBy([
  211.                 "filtre" => "menu",
  212.                 'ecole' => constant('WWW_HOST') === 'abcm' null constant('WWW_HOST'),
  213.             ], ["ordre" => "ASC"])
  214.         ];
  215.         if (constant("WWW_HOST") === "abcm") {
  216.             return $this->render('site/layout/header.html.twig'$params);
  217.         }
  218.         return $this->render('site/layout/header-ecole.html.twig'$params);
  219.     }
  220. //    /**
  221. //     * Header
  222. //     * @return \Symfony\Component\HttpFoundation\Response
  223. //     */
  224. //    public function headerEcole($path)
  225. //    {
  226. //
  227. //        $categories = $this->getDoctrine()->getRepository(BtCategories::class)->findBy(["type" => 1, "actif" => 1]);
  228. //        return $this->render('site/mini-site/layout/header.html.twig', [
  229. //            'categories' => $categories,
  230. //            'path' => $path
  231. //        ]);
  232. //    }
  233.     /**
  234.      * Footer
  235.      * @return \Symfony\Component\HttpFoundation\Response
  236.      */
  237.     public function footer()
  238.     {
  239.         $derniereActu $this->_em->getRepository(Actualites::class)->findBy(
  240.             ['actif' => 1,
  241.              'idCat1' => '1',
  242.              'ecole' => constant('WWW_HOST') === 'abcm' null constant('WWW_HOST'),
  243.              "langue" => $this->_session->get("_locale")],
  244.             ["ordre" => 'ASC'"date" => 'DESC'],
  245.             1
  246.         );
  247.         $derniereActu $derniereActu[0];
  248.         return $this->render('site/layout/footer.html.twig', [
  249.             'derniereActu' => $derniereActu,
  250.         ]);
  251.     }
  252. //    /**
  253. //     * Page galerie MINISITE
  254. //     * @return \Symfony\Component\HttpFoundation\Response
  255. //     */
  256. //    public function galerieEcole()
  257. //    {
  258. //        // Page
  259. //        $page = $this->getDoctrine()->getRepository(Contenu::class)->find(1);
  260. //        return $this->render('site//mini-site/galerie.html.twig', [
  261. //            //'titre_page' => $page->getTitrePage(),
  262. //            //'contenu' => $page->getTexte(),
  263. //        ]);
  264. //    }
  265. //
  266. //    /**
  267. //     * Page detail galerie MINISITE
  268. //     * @return \Symfony\Component\HttpFoundation\Response
  269. //     */
  270. //    public function detailGalerieEcole()
  271. //    {
  272. //        // Page
  273. //        $page = $this->getDoctrine()->getRepository(Contenu::class)->find(1);
  274. //        return $this->render('site//mini-site/detail-galerie.html.twig', [
  275. //            //'titre_page' => $page->getTitrePage(),
  276. //            //'contenu' => $page->getTexte(),
  277. //        ]);
  278. //    }
  279.     /**
  280.      * Switch de la langue
  281.      * @param String $langue
  282.      * @return \Symfony\Component\HttpFoundation\RedirectResponse
  283.      */
  284.     public function selectLocale(string $langue)
  285.     {
  286.         $this->_session->set("_locale"$langue);
  287.         // Redirection vers la page d'accueil
  288.         return $this->redirectToRoute('home', ["_locale" => $langue]);
  289.     }
  290. }