src/Controller/HomeController.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\ContactType;
  4. use App\Service\Api;
  5. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Mailer\MailerInterface;
  10. use Symfony\Component\Mime\Address;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Component\Routing\RouterInterface;
  13. use Symfony\Contracts\Translation\TranslatorInterface;
  14. class HomeController extends AbstractController
  15. {
  16.     /**
  17.      * @Route("/", name="home")
  18.      */
  19.     public function index(Request $requestMailerInterface $mailerTranslatorInterface $translatorApi $apiService)
  20.     {
  21.         
  22.         $form $this->createForm(ContactType::class);
  23.         $form->handleRequest($request);
  24.         if ($form->isSubmitted()) {
  25.             if ($form->isValid()) {
  26.                 $email = (new TemplatedEmail())
  27.                     ->from(new Address($this->getParameter('app.contactEmail'), 'CONTACT FORM'))
  28.                     ->to(new Address($this->getParameter('app.supportEmail')))
  29.                     ->subject($form->getData()['subject'])
  30.                     ->html(
  31.                         $this->renderView(
  32.                             'emails/contact-us.html.twig',
  33.                             ['contact' => $form->getData()]
  34.                         )
  35.                     );
  36.                 $mailer->send($email);
  37.                 $this->addFlash('success'$translator->trans("Your message has been sent successfully, one of our experts will contact you as soon as possible. Thank you for your trust."));
  38.                 return $this->redirect($request->getUri());
  39.             } else {
  40.                 $this->addFlash("danger"$translator->trans("An error has occurred while sending your request! please check the form for errors and try again."));
  41.             }
  42.         }
  43.         
  44.         $data['contactForm'] = $form->createView();
  45.         $data['services'] = $apiService->getAllServices();
  46.         $data["icons"] = $apiService->getServicesIcons();
  47.         
  48.         return $this->render('home/index.html.twig'$data);
  49.     }
  50.     /**
  51.      * @Route("/home", name="home2")
  52.      */
  53.     public function home(Request $requestMailerInterface $mailerTranslatorInterface $translatorApi $apiService)
  54.     {
  55.         $form $this->createForm(ContactType::class);
  56.         $form->handleRequest($request);
  57.         if ($form->isSubmitted()) {
  58.             if ($form->isValid()) {
  59.                 $email = (new TemplatedEmail())
  60.                     ->from(new Address($this->getParameter('app.contactEmail'), 'CONTACT FORM'))
  61.                     ->to(new Address($this->getParameter('app.supportEmail')))
  62.                     ->subject($form->getData()['subject'])
  63.                     ->html(
  64.                         $this->renderView(
  65.                             'emails/contact-us.html.twig',
  66.                             ['contact' => $form->getData()]
  67.                         )
  68.                     );
  69.                 $mailer->send($email);
  70.                 $this->addFlash('success'$translator->trans("Your message has been sent successfully, one of our experts will contact you as soon as possible. Thank you for your trust."));
  71.                 return $this->redirect($request->getUri());
  72.             } else {
  73.                 $this->addFlash("danger"$translator->trans("An error has occurred while sending your request! please check the form for errors and try again."));
  74.             }
  75.         }
  76.         $data['contactForm'] = $form->createView();
  77.         $data['services'] = $apiService->getAllServices();
  78.         $data["icons"] = $apiService->getServicesIcons();
  79.         return $this->render('home/home.html.twig'$data);
  80.     }
  81.     function printr($data) {
  82.         echo  "<pre>" print_r($data,true) . "</pre>";
  83.     }
  84.     /**
  85.      * @Route("/sitemap.xml", name="sitemap", defaults={"_format"="xml"})
  86.      */
  87.     public function sitemap(Api $apiService): Response
  88.     {
  89.         $services $apiService->getAllServices();
  90.         $urls=[];
  91.         foreach ($services as $service){
  92.             $url='https://wizzsocial.com/services/'.$service['SocialNetwork'].'/'.$service['IDSN'];
  93.             $urls[]=$url;
  94.             foreach ($service['subs'] as $s){
  95.                 $url='https://wizzsocial.com/services/'.$service['SocialNetwork'].'/'.str_replace(' ','-',$s['Text']).'/'.$s['IDSN'].'/'.$s['IDGService'];
  96.                 $urls[]=$url;
  97.             }
  98.         }
  99.         $response = new Response(
  100.             $this->renderView('home/sitemap.xml.twig', ['urls' => $urls]),
  101.             200
  102.         );
  103.         $response->headers->set('Content-Type''text/xml');
  104.         return $response;
  105.     }
  106. }