src/Controller/Front/PageController.php line 123

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use App\Constant\ContactMessageStatus;
  4. use App\Constant\ContactMessageType;
  5. use App\Constant\NotificationType;
  6. use App\Controller\AppController;
  7. use App\Entity\Accommodation;
  8. use App\Entity\ContactMessage;
  9. use App\Entity\Page;
  10. use App\Form\Front\ContactInvestorType;
  11. use App\Form\Front\ContactRoomType;
  12. use App\Form\Front\ContactType;
  13. use App\Repository\AccommodationRepository;
  14. use App\Repository\OptionRepository;
  15. use App\Repository\QuestionAnswerRepository;
  16. use Symfony\Component\HttpFoundation\Request;
  17. use Symfony\Component\Routing\Annotation\Route;
  18. /**
  19.  * @Route("", name="front_page_")
  20.  */
  21. class PageController extends AppController
  22. {
  23.     public const HOMEPAGE_VERSION_OPTION_SLUG 'homepage_version';
  24.     /**
  25.      * @Route("/", name="home")
  26.      */
  27.     public function home(Request $requestOptionRepository $optionRepositoryAccommodationRepository $accommodationRepository){
  28.         // ------------------------------------------------
  29.         // Find homepage template to use
  30.         $homepageTemplate $optionRepository->findOneBy(['slug' => self::HOMEPAGE_VERSION_OPTION_SLUG]);
  31.         $templateName "homepage-1";
  32.         if(!empty($homepageTemplate) && in_array($homepageTemplate->getValue(), [
  33.             "homepage-2""homepage-3""homepage-4""homepage-5""homepage-6""homepage-7"
  34.         ])) {
  35.             $templateName $homepageTemplate->getValue();
  36.         }
  37.         $version $request->query->get('version');
  38.         if (!empty($version)) {
  39.             switch($version) {
  40.                 case "1":
  41.                 case "2":
  42.                 case "3":
  43.                 case "4":
  44.                 case "5":
  45.                 case "6":
  46.                 case "7":
  47.                 $templateName "homepage-$version";
  48.                     break;
  49.             }
  50.         }
  51.         // ------------------------------------------------
  52.         // Get the featured accommodations
  53.         $accommodations $accommodationRepository->searchAccommodations(["active" => true], 19); // TODO - Filter the list
  54.         $totalAccommodations $accommodationRepository->countAccommodations(["active" => true]);
  55.         // ------------------------------------------------
  56.         // Render the page
  57.         $page = new Page();
  58.         $page->setMetaTitle("Citizens");
  59.         return $this->render('front/homepage/'.$templateName.'.html.twig', [
  60.             'page' => $page,
  61.             'accommodations' => $accommodations,
  62.             'totalAccommodations' => $totalAccommodations,
  63.         ]);
  64.     }
  65.     /**
  66.      * @Route("/home-5", name="home5")
  67.      */
  68.     public function home5(AccommodationRepository $accommodationRepository){
  69.         $templateName "homepage-5";
  70.         // ------------------------------------------------
  71.         // Get the featured accommodations
  72.         $accommodations $accommodationRepository->searchAccommodations(["active" => true], 19); // TODO - Filter the list
  73.         $totalAccommodations $accommodationRepository->countAccommodations(["active" => true]);
  74.         // ------------------------------------------------
  75.         // Render the page
  76.         $page = new Page();
  77.         $page->setMetaTitle("Citizens");
  78.         return $this->render('front/homepage/'.$templateName.'.html.twig', [
  79.             'page' => $page,
  80.             'accommodations' => $accommodations,
  81.             'totalAccommodations' => $totalAccommodations,
  82.         ]);
  83.     }
  84.     /**
  85.      * @Route("/membership", name="membership")
  86.      */
  87.     public function membership(){
  88.         $page = new Page();
  89.         $page->setMetaTitle("Membres - Citizens");
  90.         return $this->render('front/pages/membership.html.twig', [
  91.             'page' => $page,
  92.         ]);
  93.     }
  94.     /**
  95.      * @Route("/investisseurs", name="investors")
  96.      */
  97.     public function investors(Request $request){
  98.         $message = new ContactMessage();
  99.         $form $this->createForm(ContactInvestorType::class, $message);
  100.         $form->handleRequest($request);
  101.         if ($form->isSubmitted() && $form->isValid()) {
  102.             $message->setType(ContactMessageType::INVESTOR);
  103.             $message->setStatus(ContactMessageStatus::TODO);
  104.             $this->em->persist($message);
  105.             $this->em->flush();
  106.             $this->notifier->admin(NotificationType::ADMIN_CONTACT, ["message" => $message]);
  107.             return $this->redirectToRoute('front_page_investors', ['success' => true]);
  108.         }
  109.         $page = new Page();
  110.         $page->setMetaTitle("Investir dans un bien coliving - Citizens");
  111.         switch($request->query->get('version'"2")) {
  112.             case "1":
  113.                 $pageVersion 'investors-1';
  114.                 break;
  115.             default:
  116.                 $pageVersion 'investors-2';
  117.         }
  118.         return $this->render('front/pages/' $pageVersion '.html.twig', [
  119.             'page' => $page,
  120.             'form' => $form->createView(),
  121.             'form2' => $form->createView(),
  122.             'success' => !empty($request->query->get('success')),
  123.         ]);
  124.     }
  125.     /**
  126.      * @Route("/proprietaires", name="owners")
  127.      */
  128.     public function owners(Request $request){
  129.         $message = new ContactMessage();
  130.         $form $this->createForm(ContactInvestorType::class, $message);
  131.         $form->handleRequest($request);
  132.         if ($form->isSubmitted() && $form->isValid()) {
  133.             $message->setType(ContactMessageType::INVESTOR);
  134.             $message->setStatus(ContactMessageStatus::TODO);
  135.             $this->em->persist($message);
  136.             $this->em->flush();
  137.             $this->notifier->admin(NotificationType::ADMIN_CONTACT, ["message" => $message]);
  138.             return $this->redirectToRoute('front_page_owners', ['success' => true]);
  139.         }
  140.         $page = new Page();
  141.         $page->setMetaTitle("Transformer son bien en coliving - Citizens");
  142.         return $this->render('front/pages/owners.html.twig', [
  143.             'page' => $page,
  144.             'form' => $form->createView(),
  145.             'success' => !empty($request->query->get('success')),
  146.         ]);
  147.     }
  148.     /**
  149.      * @Route("/membres", name="members")
  150.      */
  151.     public function members(){
  152.         $page = new Page();
  153.         $page->setMetaTitle("Membres - Citizens");
  154.         return $this->render('front/pages/members.html.twig', [
  155.             'page' => $page,
  156.         ]);
  157.     }
  158.     /**
  159.      * @Route("/loisirs", name="community")
  160.      */
  161.     public function community(){
  162.         $page = new Page();
  163.         $page->setMetaTitle("Communautés - Citizens");
  164.         return $this->render('front/pages/community.html.twig', [
  165.             'page' => $page,
  166.         ]);
  167.     }
  168.     /**
  169.      * @Route("/faq", name="faq")
  170.      */
  171.     public function faq(QuestionAnswerRepository $questionAnswerRepository){
  172.         $faq $questionAnswerRepository->searchQA([], 1100);
  173.         $page = new Page();
  174.         $page->setMetaTitle("FAQ - Citizens");
  175.         return $this->render('front/pages/faq.html.twig', [
  176.             'page' => $page,
  177.             'faq' => $faq,
  178.         ]);
  179.     }
  180.     /**
  181.      * @Route("/contact", name="contact")
  182.      */
  183.     public function contact(Request $request){
  184.         $message = new ContactMessage();
  185.         $form $this->createForm(ContactType::class, $message);
  186.         $form->handleRequest($request);
  187.         if ($form->isSubmitted() && $form->isValid()) {
  188.             $message->setType(ContactMessageType::CONTACT);
  189.             $message->setStatus(ContactMessageStatus::TODO);
  190.             $this->em->persist($message);
  191.             $this->em->flush();
  192.             $this->notifier->admin(NotificationType::ADMIN_CONTACT, ["message" => $message]);
  193.             return $this->redirectToRoute('front_page_contact', ['success' => true]);
  194.         }
  195.         $page = new Page();
  196.         $page->setMetaTitle("Contact - Citizens");
  197.         return $this->render('front/pages/contact.html.twig', [
  198.             'page' => $page,
  199.             'form' => $form->createView(),
  200.             'success' => !empty($request->query->get('success')),
  201.         ]);
  202.     }
  203.     /**
  204.      * @Route("/contact/{id}", name="contact_room")
  205.      */
  206.     public function contact_room(Request $requestAccommodation $accommodation){
  207.         $message = new ContactMessage();
  208.         $form $this->createForm(ContactRoomType::class, $message);
  209.         $form->handleRequest($request);
  210.         if ($form->isSubmitted() && $form->isValid()) {
  211.             $message->setAccommodation($accommodation);
  212.             // $message->setRoom($room);
  213.             $message->setType(ContactMessageType::ROOM);
  214.             $message->setStatus(ContactMessageStatus::TODO);
  215.             $this->em->persist($message);
  216.             $this->em->flush();
  217.             $this->notifier->admin(NotificationType::ADMIN_CONTACT, ["message" => $message]);
  218.             return $this->redirectToRoute('front_page_contact_room', ['success' => true'id' => $accommodation->getId()]);
  219.         }
  220.         $page = new Page();
  221.         $page->setMetaTitle("Contact - Citizens");
  222.         return $this->render('front/pages/contact_room.html.twig', [
  223.             'page' => $page,
  224.             'accommodation' => $accommodation,
  225.             'form' => $form->createView(),
  226.             'success' => !empty($request->query->get('success')),
  227.         ]);
  228.     }
  229.     /**
  230.      * @Route("/concept/qualite", name="benefits_quality")
  231.      */
  232.     public function benefits_quality(){
  233.         $page = new Page();
  234.         $page->setMetaTitle("100% Qualité - Avantages - Citizens");
  235.         return $this->render('front/pages/benefits/quality.html.twig', [
  236.             'page' => $page,
  237.         ]);
  238.     }
  239.     /**
  240.      * @Route("/concept/services", name="benefits_service")
  241.      */
  242.     public function benefits_service(){
  243.         $page = new Page();
  244.         $page->setMetaTitle("100% Service - Avantages - Citizens");
  245.         return $this->render('front/pages/benefits/service.html.twig', [
  246.             'page' => $page,
  247.         ]);
  248.     }
  249.     /**
  250.      * @Route("/concept/citoyens", name="benefits_citizens")
  251.      */
  252.     public function benefits_citizens(){
  253.         $page = new Page();
  254.         $page->setMetaTitle("100% Citoyens - Avantages - Citizens");
  255.         return $this->render('front/pages/benefits/citizens.html.twig', [
  256.             'page' => $page,
  257.         ]);
  258.     }
  259.     /**
  260.      * @Route("/concept/plaisir", name="benefits_pleasure")
  261.      */
  262.     public function benefits_pleasure(){
  263.         $page = new Page();
  264.         $page->setMetaTitle("100% Plaisir - Avantages - Citizens");
  265.         return $this->render('front/pages/benefits/pleasure.html.twig', [
  266.             'page' => $page,
  267.         ]);
  268.     }
  269.     /**
  270.      * @Route("/organigramme", name="company_organizational_chart")
  271.      */
  272.     public function organizational_chart(){
  273.         $page = new Page();
  274.         $page->setMetaTitle("Organigramme - Citizens");
  275.         throw $this->createNotFoundException('Not found');
  276.         /*return $this->render('front/pages/organizational-chart.html.twig', [
  277.             'page' => $page,
  278.         ]);*/
  279.     }
  280.     /**
  281.      * @Route("/nos-metiers", name="company_our_jobs")
  282.      */
  283.     public function our_jobs(){
  284.         $page = new Page();
  285.         $page->setMetaTitle("Nos métiers - Citizens");
  286.         return $this->render('front/pages/our-jobs.html.twig', [
  287.             'page' => $page,
  288.         ]);
  289.     }
  290.     /**
  291.      * @Route("/a-propos-de-citizens", name="company_about")
  292.      */
  293.     public function about(){
  294.         $page = new Page();
  295.         $page->setMetaTitle("À propos de CITIZENS - Citizens");
  296.         return $this->render('front/pages/about.html.twig', [
  297.             'page' => $page,
  298.         ]);
  299.     }
  300.     /**
  301.      * @Route("/services", name="services")
  302.      */
  303.     public function services(){
  304.         $page = new Page();
  305.         $page->setMetaTitle("Services - Citizens");
  306.         return $this->render('front/pages/services.html.twig', [
  307.             'page' => $page,
  308.         ]);
  309.     }
  310.     /**
  311.      * @Route("/confort-5-etoiles", name="comfort")
  312.      */
  313.     public function comfort(){
  314.         $page = new Page();
  315.         $page->setMetaTitle("Confort 5 étoiles - Citizens");
  316.         return $this->render('front/pages/comfort.html.twig', [
  317.             'page' => $page,
  318.         ]);
  319.     }
  320.     /**
  321.      * @Route("/privacy", name="privacy")
  322.      */
  323.     public function privacy(){
  324.         $page = new Page();
  325.         $page->setMetaTitle("Confidentialité - Citizens");
  326.         return $this->render('front/pages/privacy.html.twig', [
  327.             'page' => $page,
  328.         ]);
  329.     }
  330.     /**
  331.      * @Route("/terms-conditions", name="terms_conditions")
  332.      */
  333.     public function terms_conditions(){
  334.         $page = new Page();
  335.         $page->setMetaTitle("Conditions générales d'utilisation - Citizens");
  336.         return $this->render('front/pages/terms-conditions.html.twig', [
  337.             'page' => $page,
  338.         ]);
  339.     }
  340. }