src/Controller/HomeController.php line 92

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use Doctrine\Persistence\ManagerRegistry;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\Mailer\MailerInterface;
  7. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  8. use Symfony\Component\Mime\Email;
  9. use Symfony\Component\HttpFoundation\{RedirectResponseRequestResponseJsonResponse};
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use App\Utils\Ticketing;
  12. use App\Utils\Functions;
  13. class HomeController extends AbstractController
  14. {
  15.     private $ticketing;
  16.     private $functions;
  17.     /**
  18.      * @var ManagerRegistry
  19.      */
  20.     private $doctrine;
  21.     public function __construct(Ticketing $ticketingFunctions $functions,  ManagerRegistry $doctrine)
  22.     {
  23.         $this->ticketing $ticketing;
  24.         $this->functions $functions;
  25.         $this->doctrine  $doctrine;
  26.     }
  27.     /**
  28.      * @Route("/", name="home")
  29.      */
  30.     public function index(Request $request): RedirectResponse
  31.     {
  32.         // Obtiene el locale actual
  33.         $locale $request->getLocale();
  34.         // Redirige a la ruta correspondiente segĂșn el locale
  35.         return $this->redirectToRoute('home_main', ['_locale' => $locale]);
  36.     }
  37.     /**
  38.      * @Route("/{_locale}/home", name="home_main")
  39.      */
  40.     public function home(Request $request): Response
  41.     {
  42.         // General function to set discount ref/affId
  43.         $this->functions->setDiscount($request);
  44.         // Events
  45.         $events $this->ticketing->curl("events?dateNext=true&orderBy=eventDate&order=DESC&limit=24""normal", [], "GET");
  46.         if (empty($events['events'])) {
  47.             $events['events'] = [];
  48.         }
  49.         if (empty($events)) $events["events"] = '';
  50.         if (empty($marketplace)) $marketplace['tickets'] = '';
  51.         return $this->render('home.html.twig', [
  52.             'events' => $events["events"],
  53.             'marketplace' => $events["events"],
  54.         ]);
  55.     }
  56.     /**
  57.      * @Route("/{_locale}/terms-and-conditions", name="terms")
  58.      */
  59.     public function terms(Request $request): Response
  60.     {
  61.         // General function to set discount ref/affId
  62.         $this->functions->setDiscount($request);
  63.         return $this->render('terms.html.twig');
  64.     }
  65.     /**
  66.      * @Route("/policy-privacy-cookies", name="policy")
  67.      */
  68.     public function policy(Request $request): Response
  69.     {
  70.         // General function to set discount ref/affId
  71.         $this->functions->setDiscount($request);
  72.         return $this->render('policy.html.twig');
  73.     }
  74.     /**
  75.      * @Route("/{_locale}/contact", name="contact")
  76.      */
  77.     public function contact(Request $requestMailerInterface $mailer): Response
  78.     {
  79.         // General function to set discount ref/affId
  80.         $this->functions->setDiscount($request);
  81.         $status "";
  82.         
  83.         if($request->get('send-form')){
  84.         
  85.             $name $request->get('name');
  86.             $surname $request->get('surname');
  87.             $email $request->get('email');
  88.             $phone $request->get('phone');
  89.             $text $request->get('subject');
  90.             $mail = (new TemplatedEmail())
  91.                 ->from($this->getParameter('mailer_from'))
  92.                 ->to('contacto@dowcenterbahia.com.ar')
  93.                 ->cc('ahernandez@oaro.net')
  94.                 ->subject('DOW - Solicitud de contacto')
  95.                 ->htmlTemplate('mail/contact.html.twig')
  96.                 ->context([
  97.                     'name' => $name,
  98.                     'surname' => $surname,
  99.                     'correo' => $email,
  100.                     'phone' => $phone,
  101.                     'text' => $text
  102.                 ]);
  103.     
  104.                 $mailer->send($mail);
  105.     
  106.                 $status "done";
  107.         }
  108.         
  109.         return $this->render('user/contact.html.twig', [
  110.             'status' => $status
  111.         ]);
  112.     }
  113.     /**
  114.      * @Route("/{_locale}/work", name="work")
  115.      */
  116.     public function workWithUs(Request $requestMailerInterface $mailer): Response
  117.     {
  118.         // General function to set discount ref/affId
  119.         $this->functions->setDiscount($request);
  120.         $status "";
  121.         if($request->get('send-form')){
  122.             $name $request->get('name');
  123.             $surname $request->get('surname');
  124.             $email $request->get('email');
  125.             $phone $request->get('phone');
  126.             $text $request->get('subject');
  127.             $mail = (new TemplatedEmail())
  128.                 ->from($this->getParameter('mailer_from'))
  129.                 ->to('hi@masqueentradas.com')
  130.                 ->subject('DOW - Trabaja con nosotros')
  131.                 ->htmlTemplate('mail/contact.html.twig')
  132.                 ->context([
  133.                     'name' => $name,
  134.                     'surname' => $surname,
  135.                     'correo' => $email,
  136.                     'phone' => $phone,
  137.                     'text' => $text
  138.                 ]);
  139.             $mailer->send($mail);
  140.             $status "done";
  141.         }
  142.         return $this->render('user/work-with-us.html.twig', [
  143.             'status' => $status
  144.         ]);
  145.     }
  146.     /**
  147.      * @Route("/{_locale}/faqs", name="faqs")
  148.      */
  149.     public function faqs(Request $request): Response
  150.     {
  151.         // General function to set discount ref/affId
  152.         $this->functions->setDiscount($request);
  153.         return $this->render('faqs.html.twig');
  154.     }
  155.     /**
  156.      * @Route("/check_captcha", name="xml_check_captcha")
  157.      */
  158.     public function checkCaptcha(Request $request): Response
  159.     {
  160.         return new JsonResponse([
  161.             'status' => $this->functions->checkCaptcha($request->get('g-recaptcha-response'))
  162.         ]);
  163.     }
  164.     /**
  165.      * @Route("/{_locale}/site-map",defaults={"_format"="xml"}, name="site_map")
  166.      */
  167.     public function siteMap(Request $request)
  168.     {
  169.         $response = new Response();
  170.         $response->headers->set('Content-Type''text/xml');
  171.         return $this->render('site-map.html.twig');
  172.     }
  173.     /**
  174.      * @param $sintax
  175.      * @return array|mixed
  176.      */
  177.     private function onSaleByUsers(){
  178.         // On sale false
  179.         $sintax "&onSaleByUser=true";
  180.         // Searching params for tickets
  181.         $userAlias ' ';
  182.         $page $this->ticketing->curl("tickets?orderBy=price".$sintax"normal", [], "GET");
  183.         foreach($page["tickets"] as $key => $ticket){
  184.             $em $this->doctrine->getManager();
  185.             if (!empty($page["tickets"][$key]["user"]['userId']))
  186.                 $userAlias $em->getRepository(User::class)->findOneBy(['user_id' => $page["tickets"][$key]["user"]["userId"]])->getAlias();
  187.             $page["tickets"][$key]["user"]["userAlias"] = $userAlias;
  188.         }
  189.         return $page;
  190.     }
  191. }