src/Controller/Frontend/FrontendController.php line 35

Open in your IDE?
  1. <?php
  2. // src/Controller/Frontend/FrontendController.php
  3. namespace App\Controller\Frontend;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  9. use Symfony\Component\Security\Core\Security;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use App\Repository\CountryRepository;
  12. use App\Entity\SongProgram;
  13. use App\Entity\SongSchema;
  14. use App\Entity\Song;
  15. use App\Entity\SongProgramItem;
  16. use App\Entity\SongProgramSchema;
  17. use App\Service\HelperService;
  18. use Nzo\UrlEncryptorBundle\Encryptor\Encryptor;
  19. class FrontendController extends AbstractController
  20. {
  21.     
  22.     
  23.     private $encryptor;
  24.     public function __construct(Encryptor $encryptor)
  25.     {
  26.         $this->encryptor $encryptor;
  27.     }
  28.  
  29.     /**
  30.      * @Route("/", name="homepage_website", methods={"GET", "POST"})
  31.      */
  32.     public function homepage(Request $request): Response
  33.     {
  34.               
  35.         $serverName $_SERVER["SERVER_NAME"];        
  36.         if($serverName == 'somosalientodevida.com' || $serverName == 'www.somosalientodevida.com')
  37.         {      
  38.             return $this->redirectToRoute('app_login', [], Response::HTTP_SEE_OTHER);
  39.         } else {              
  40.             
  41.                return $this->render('website/index.html.twig', [
  42.                 
  43.             ]);
  44.             
  45.         }        
  46.     }
  47.     
  48.     
  49.     /**
  50.      * @Route("/registro", name="homepage_register", methods={"GET", "POST"})
  51.      */
  52.     public function registerpage(Request $requestCountryRepository $countryRepository): Response
  53.     {
  54.            
  55.         $plan $request->get('plan','');   
  56.         $countries $countryRepository->findBy(["is_active" => 1], ['name' => 'ASC']);   
  57.               
  58.            return $this->render('website/register.html.twig', [
  59.             'countries' => $countries,
  60.             'plan'  => $plan            
  61.         ]);
  62.         
  63.     }
  64.     
  65.     
  66.     /**
  67.      * @Route("/privacidad", name="homepage_privacy", methods={"GET", "POST"})
  68.      */
  69.     public function privacyPage(Request $requestCountryRepository $countryRepository): Response
  70.     {
  71.            
  72.               
  73.            return $this->render('website/privacy.html.twig', [
  74.     
  75.         ]);
  76.         
  77.     }    
  78.     /**
  79.      * @Route("/completar_registro", name="homepage_register_execute", methods={"GET", "POST"})
  80.      */
  81.     public function registerExecutePage(Request $requestCountryRepository $countryRepositoryHelperService $helperService): Response
  82.     {
  83.            
  84.    
  85.         if($request->get("register"))
  86.         {  
  87.             
  88.             $secret "6LcZFegeAAAAAEAky6s4h4bcKDr9IWFWBM8R1-HO";
  89.             $recaptcha_response $request->get('g-recaptcha-response');
  90.             $remoteip $_SERVER["REMOTE_ADDR"];
  91.             $url "https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$recaptcha_response&remoteip=$remoteip";
  92.             $response file_get_contents($url);
  93.             $response json_decode($response);
  94.             if ($response->success){
  95.                 $register $request->get('register');                
  96.                 
  97.                 //Email para la persona que te hace la solicitud
  98.                 $message "<p>Muchas gracias por su interés en la Plataforma Iglesia Virtual. Su proceso de Registro ha iniciado, un asesor ha sido asignado para que continue los siguientes pasos. El asesor asignado se comunicará con usted en un lapso no mayor a 24 horas para completar la información. <br><br>¡Nos comunicaremos en breve!</p>";
  99.                             
  100.                 $mailTo  $register['email'];
  101.                 $subject "Registro Iniciado para ".$register['church_name'];
  102.                 
  103.                 if($helperService->sendEmail($mailTo$subject$messagefalse'Iglesia Virtual'))
  104.                 {                
  105.                     
  106.                     //Email para el equipo de Iglesia Virtual
  107.                     $message "<p>La siguiente información fue enviada desde el formulario de solicitud de Registro:</p><br>";
  108.                     $message .= "<p><b>Nombre de contacto:</b> ".$register['name']."</p>";
  109.                     $message .= "<p><b>Email de contacto:</b> ".$register['email']."</p>";
  110.                     $message .= "<p><b>Posición del contacto:</b> ".$register['position']."</p>";            
  111.                     $message .= "<p><b>Teléfono de contacto:</b> ".$register['phone']."</p>";                        
  112.                     $message .= "<p><b>Nombre de Iglesia:</b> ".$register['church_name']."</p>";                                    
  113.                     $message .= "<p><b>Cantidad de miembros:</b> ".$register['plan']."</p>";                    
  114.                     $message .= "<p><b>Denominación:</b> ".$register['denomination']."</p>";                                    
  115.                     $message .= "<p><b>País:</b> ".$register['country']."</p>";                                                
  116.                                 
  117.                     $mailTo  'servicio@aguilalibreweb.com';
  118.                     $subject "Solicitud de Registro - ".$register['church_name'];
  119.                     
  120.                     $mailsCc = array('djuarez@laiglesiavirtual.com');
  121.                     if($helperService->sendEmail($mailTo$subject$message$mailsCc'Iglesia Virtual'))
  122.                     {
  123.                         $this->addFlash('success'"Su mensaje ha sido enviado correctamente. Pronto nos pondremos en contacto con usted.");                    
  124.                         return $this->redirectToRoute('homepage_register', [], Response::HTTP_SEE_OTHER);                            
  125.                     };                                                           
  126.                 
  127.                 };
  128.             
  129.             } else {
  130.                 $this->addFlash('error'"No se pudo enviar el mensaje en este momento. Por favor intente de nuevo más tarde.");                        
  131.                 return $this->redirectToRoute('homepage_website', ['_fragment' => 'contact'], Response::HTTP_SEE_OTHER);            
  132.             }            
  133.             
  134.         } 
  135.     
  136.         $this->addFlash('error'"No se pudo enviar el mensaje en este momento. Por favor intente de nuevo más tarde.");                            
  137.         return $this->redirectToRoute('homepage_register', [], Response::HTTP_SEE_OTHER);            
  138.         
  139.         
  140.     }
  141.     
  142.    
  143.     /**
  144.      * @Route("/completar_contacto", name="homepage_contact_execute", methods={"GET", "POST"})
  145.      */
  146.     public function contactExecutePage(Request $requestCountryRepository $countryRepositoryHelperService $helperService): Response
  147.     {
  148.            
  149.    
  150.         if($request->get("contact"))
  151.         {              
  152.             $secret "6LcZFegeAAAAAEAky6s4h4bcKDr9IWFWBM8R1-HO";
  153.             $recaptcha_response $request->get('g-recaptcha-response');
  154.             $remoteip $_SERVER["REMOTE_ADDR"];
  155.             $url "https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$recaptcha_response&remoteip=$remoteip";
  156.             $response file_get_contents($url);
  157.             $response json_decode($response);
  158.             if ($response->success) {
  159.                 $register $request->get('contact');
  160.             
  161.                 $message "<p>La siguiente información fue enviada desde el formulario de solicitud de Contacto:</p><br>";
  162.                 $message .= "<p><b>Nombre de contacto:</b> ".$register['name']."</p>";
  163.                 $message .= "<p><b>Email de contacto:</b> ".$register['email']."</p>";
  164.                 $message .= "<p><b>Nombre de Iglesia:</b> ".$register['church_name']."</p>";            
  165.                 $message .= "<p><b>Comentarios:</b> ".$register['comments']."</p>";                                                
  166.                             
  167.                 $mailTo  'servicio@aguilalibreweb.com';
  168.                 $subject "Solicitud de Contacto - ".$register['church_name'];
  169.                 
  170.                 $mailsCc = array('djuarez@laiglesiavirtual.com');            
  171.                 if($helperService->sendEmail($mailTo$subject$message$mailsCc'Iglesia Virtual'))
  172.                 {
  173.                     $this->addFlash('success'"Su mensaje ha sido enviado correctamente. Pronto nos pondremos en contacto con usted.");    
  174.                     return $this->redirectToRoute('homepage_website', ['_fragment' => 'contact'], Response::HTTP_SEE_OTHER);                                    
  175.                 };    
  176.             } else {
  177.                 $this->addFlash('error'"No se pudo enviar el mensaje en este momento. Por favor intente de nuevo más tarde.");                        
  178.                 return $this->redirectToRoute('homepage_website', ['_fragment' => 'contact'], Response::HTTP_SEE_OTHER);            
  179.             }                                         
  180.         
  181.         }
  182.         
  183.         $this->addFlash('error'"No se pudo enviar el mensaje en este momento. Por favor intente de nuevo más tarde.");                        
  184.         return $this->redirectToRoute('homepage_website', ['_fragment' => 'contact'], Response::HTTP_SEE_OTHER);            
  185.         
  186.         
  187.     }
  188.     
  189.     
  190.      
  191.     /**
  192.      * @Route("/song_viewer/{id}", name="homepage_song_viewer", methods={"GET", "POST"})
  193.      */
  194.     public function songViewerPage(Request $requestHelperService $helperServiceEntityManagerInterface $entityManager$id): Response
  195.     {
  196.         
  197.         
  198.         $songId $this->encryptor->decrypt($id);
  199.         $song $entityManager->getRepository(Song::class)->findOneBy([          
  200.             'songId' => $songId
  201.         ]);
  202.         $schemas $entityManager->getRepository(SongSchema::class)->findBy([          
  203.             'Song' => $songId,
  204.             'is_active' => 1
  205.         ]); 
  206.         return $this->render('website/song_viewer.html.twig', [
  207.            'song' => $song,
  208.            'schemas' => $schemas
  209.         ]);
  210.     }    
  211.     
  212.     /**
  213.      * @Route("/song_program_viewer/{id}", name="homepage_song_program_viewer", methods={"GET", "POST"})
  214.      */
  215.     public function programViewerPage(Request $requestHelperService $helperServiceEntityManagerInterface $entityManager$id): Response
  216.     {
  217.            
  218.        $songId $this->encryptor->decrypt($id);        
  219.     
  220.        $songProgram $entityManager->getRepository(SongProgram::class)->findOneBy([          
  221.            'songProgramId' => $songId
  222.        ]);
  223.        $items $entityManager->getRepository(SongProgramItem::class)->findBy([          
  224.             'SongProgram' => $songId
  225.        ]);
  226.        
  227.        $arr = [];
  228.        foreach($items as $item)
  229.        {
  230.          $schemas $entityManager->getRepository(SongSchema::class)->findBy([          
  231.                'Song' => $item->getSong()->getSongId(),
  232.                'is_active' => 1
  233.           ],['weight'=>'ASC']);
  234.          $arr[] = [
  235.            'items' => $item,
  236.            'schemas' => $schemas
  237.          ];
  238.        }                      
  239.     
  240.       return $this->render('website/song_program_viewer.html.twig', [
  241.          'songProgram' => $songProgram,
  242.          'arr' => $arr
  243.       ]);
  244.         
  245.         
  246.     }    
  247.     
  248.     
  249.     
  250.     
  251.     
  252.   }