src/Controller/SiteController.php line 52

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Contacto;
  4. use App\Entity\EmpresaAliada;
  5. use App\Entity\SimbiosiIndustrial;
  6. use App\Entity\Sector;
  7. use App\Entity\SliderPrincipal;
  8. use App\Entity\Usuario;
  9. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\File\UploadedFile;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\Mailer\MailerInterface;
  14. use Symfony\Component\Mime\Address;
  15. use Symfony\Component\Routing\Annotation\Route;
  16. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  17. use Symfony\Component\String\Slugger\SluggerInterface;
  18. class SiteController extends AbstractController
  19. {
  20.     /**
  21.      * @Route("/site", name="site")
  22.      */
  23.     public function index()
  24.     {
  25.         return $this->render('administrador/index.html.twig');
  26.     }
  27.     
  28.     /**
  29.      * @Route("/empresas/{sector}", name="sectores")
  30.      */
  31.     public function sectores($sector)
  32.     {
  33.         $em $this->getDoctrine()->getManager();
  34. //        $sectores = $em->getRepository(Sector::class)->findBy(array('estado' => true));
  35.         $sectores $em->getRepository(Sector::class)->findAll();
  36.         $simbiosis $em->getRepository(SimbiosiIndustrial::class)->findAll();
  37.         return $this->render('site/sectores.html.twig', array('sectores' => $sectores'seleccionado' => $sector'simbiosis' => $simbiosis));
  38.     }
  39.     /**
  40.      * @Route("/empresa/{slug}", name="empresa_view")
  41.      */
  42.     public function empresaView($slug)
  43.     {
  44.         $em $this->getDoctrine()->getManager();
  45.         $empresa $em->getRepository(Usuario::class)->findOneBy(array('slug' => $slug));
  46.         $simbiosis $em->getRepository(SimbiosiIndustrial::class)->findBy(array('empresa' => $empresa->getId()));
  47.         return $this->render('site/sector.html.twig', array('usuario' => $empresa,'simbiosis' => $simbiosis));
  48.     }
  49.     /**
  50.      * @Route("/", name="inicio")
  51.      */
  52.     public function inicio()
  53.     {
  54.         $em $this->getDoctrine()->getManager();
  55.         $sectores $em->getRepository(Sector::class)->findBy(array('estado' => true));
  56.         $sliders $em->getRepository(SliderPrincipal::class)->findBy(array('estado' => true));
  57.         $empresas $em->getRepository(EmpresaAliada::class)->findAll();
  58.         return $this->render('site/index.html.twig', array('sectores' => $sectores,'empresas' => $empresas,'sliders' => $sliders));
  59. //        if ($this->getUser()){
  60. //            return $this->redirectToRoute('site');
  61. //        }
  62. //        return $this->redirectToRoute('app_login');
  63.     }
  64.     /**
  65.      * @Route("/admin/editar-perfil", name="edit_perfil")
  66.      */
  67.     public function editPerfil()
  68.     {
  69.         $em $this->getDoctrine()->getManager();
  70.         $usuario $this->getUser();
  71.         $user $em->getRepository(Usuario::class)->findOneBy(array('id' => $usuario));
  72.         $sectores $em->getRepository(Sector::class)->findBy(array('estado' => true));
  73.         return $this->render('usuario/edit_perfil.html.twig', array('usuario' => $user'sectores' => $sectores));
  74.     }
  75.     /**
  76.      * @Route("/admin/perfil", name="perfil")
  77.      */
  78.     public function perfil()
  79.     {
  80.         $em $this->getDoctrine()->getManager();
  81.         $usuario $this->getUser();
  82.         $user $em->getRepository(Usuario::class)->findOneBy(array('id' => $usuario));
  83.         return $this->render('usuario/perfil.html.twig', array('usuario' => $user));
  84.     }
  85.     /**
  86.      * @Route("/admin/guardar-perfil", name="guardar_perfil")
  87.      */
  88.     public function guardarPerfil(Request $request,UserPasswordEncoderInterface $passwordEncoderSluggerInterface $slugger){
  89.         $email $request->request->get('email');
  90.         $empresa$request->request->get('empresa');
  91.         $direccion$request->request->get('direccion');
  92.         $telefono$request->request->get('telefono');
  93.         $sitioweb$request->request->get('sitioweb');
  94.         $password $request->request->get('password');
  95.         //$logo= $request->request->get('logo');
  96.         $logo$request->files->get('logo');
  97.         $reglamento$request->files->get('reglamento');
  98.         $otro$request->files->get('otro');
  99.         $facebook$request->request->get('facebook');
  100.         $youtube$request->request->get('youtube');
  101.         $instagram$request->request->get('instagram');
  102.         $twitter$request->request->get('twitter');
  103.         $linkedin$request->request->get('linkedin');
  104.         $descripcion$request->request->get('descripcion');
  105.         $descripcionCorta$request->request->get('descripcionCorta');
  106.         $pais$request->request->get('pais');
  107.         $provincia$request->request->get('provincia');
  108.         $ciudad$request->request->get('ciudad');
  109.         $slugsector$request->request->get('sector');
  110.         //dd($nombre);
  111.         $em $this->getDoctrine()->getManager();
  112.         $user $em->getRepository(Usuario::class)->findOneBy(array('email' => $email));
  113.         //dd($user);
  114.         if ($user){
  115.             $user->setEmpresa($empresa);
  116.             $user->setDireccion($direccion);
  117.             $user->setTelefono($telefono);
  118.             $user->setSitioWeb($sitioweb);
  119.             $user->setFacebook($facebook);
  120.             $user->setYoutube($youtube);
  121.             $user->setInstagram($instagram);
  122.             $user->setTwitter($twitter);
  123.             $user->setLinkedin($linkedin);
  124.             $user->setDescripcion($descripcion);
  125.             $user->setDescripcionCorta($descripcionCorta);
  126.             $user->setPais($pais);
  127.             $user->setProvincia($provincia);
  128.             $user->setCiudad($ciudad);
  129.             /** @var UploadedFile $brochureFile */
  130.             $brochureFile $logo;
  131.             /** @var UploadedFile $reglamentoFile */
  132.             $reglamentoFile $reglamento;
  133.             /** @var UploadedFile $otroFile */
  134.             $otroFile $otro;
  135.             // this condition is needed because the 'brochure' field is not required
  136.             // so the PDF file must be processed only when a file is uploaded
  137.             if ($brochureFile) {
  138.                 $originalFilename pathinfo($brochureFile->getClientOriginalName(), PATHINFO_FILENAME);
  139.                 // this is needed to safely include the file name as part of the URL
  140.                 $safeFilename $slugger->slug($originalFilename);
  141.                 $newFilename $safeFilename.'-'.uniqid().'.'.$brochureFile->guessExtension();
  142.                 // Move the file to the directory where brochures are stored
  143.                 try {
  144.                     $brochureFile->move(
  145.                         $this->getParameter('empresa_images'),
  146.                         $newFilename
  147.                     );
  148.                 } catch (FileException $e) {
  149.                     // ... handle exception if something happens during file upload
  150.                 }
  151.                 // updates the 'brochureFilename' property to store the PDF file name
  152.                 // instead of its contents
  153.                 $user->setImagen($newFilename);
  154.             }
  155.             if ($reglamentoFile) {
  156.                 $originalFilename1 pathinfo($reglamentoFile->getClientOriginalName(), PATHINFO_FILENAME);
  157.                 $safeFilename1 $slugger->slug($originalFilename1);
  158.                 $newFilename1 $safeFilename1.'-'.uniqid().'.'.$reglamentoFile->guessExtension();
  159.                 try {
  160.                     $reglamentoFile->move(
  161.                         $this->getParameter('proyecto_recursos'),
  162.                         $newFilename1
  163.                     );
  164.                 } catch (FileException $e) {
  165.                 }
  166.                 $user->setReglamentoProveedores($newFilename1);
  167.             }
  168.             if ($otroFile) {
  169.                 $originalFilename2 pathinfo($otroFile->getClientOriginalName(), PATHINFO_FILENAME);
  170.                 $safeFilename2 $slugger->slug($originalFilename2);
  171.                 $newFilename2 $safeFilename2.'-'.uniqid().'.'.$otroFile->guessExtension();
  172.                 try {
  173.                     $otroFile->move(
  174.                         $this->getParameter('proyecto_recursos'),
  175.                         $newFilename2
  176.                     );
  177.                 } catch (FileException $e) {
  178.                 }
  179.                 $user->setOtroPdf($newFilename2);
  180.             }
  181.             if ($slugsector){
  182.                 $sector $em->getRepository(Sector::class)->findOneBy(array('slug' => $slugsector));
  183.                 $user->setSector($sector);
  184.             }
  185.             if ($password){
  186.                 $user->setPassword($passwordEncoder->encodePassword(
  187.                     $user,
  188.                     $password
  189.                 ));
  190.             }
  191.             $entityManager $this->getDoctrine()->getManager();
  192.             $entityManager->persist($user);
  193.             $entityManager->flush();
  194.         }
  195.             return $this->redirectToRoute('perfil',array('usuario' => $user));
  196.     }
  197.     /**
  198.      * @Route("/registro-exitoso", name="registro_exitoso")
  199.      */
  200.     public function registroExitoso()
  201.     {
  202.         return $this->render('site/exitoso.html.twig');
  203.     }
  204.     /**
  205.      * @Route("/contactenos", name="contactenos")
  206.      */
  207.     public function contactenos()
  208.     {
  209.         return $this->render('site/contactenos.html.twig');
  210.     }
  211.     /**
  212.      * @Route("/enviar-contacto", methods={"POST"}, name="enviar_contacto")
  213.      */
  214.     public function enviarContacto(Request $requestMailerInterface $mailer)
  215.     {
  216.         $nombre $request->request->get("nombres");
  217.         $apellido$request->request->get("apellidos");
  218.         $telefono $request->request->get("telefono");
  219.         $email $request->request->get("email");
  220.         $mensaje $request->request->get("mensaje");
  221.         $info = new Contacto();
  222.         $info->setNombre($nombre);
  223.         $info->setApellido($apellido);
  224.         $info->setTelefono($telefono);
  225.         $info->setCorreo($email);
  226.         $info->setMensaje($mensaje);
  227.         $entityManager $this->getDoctrine()->getManager();
  228.         $entityManager->persist($info);
  229.         $entityManager->flush();
  230.         $email2 = (new TemplatedEmail())
  231.             ->from(new Address('codegurumailer@gmail.com''Inclusivo'))
  232.             ->to('cemdes@cemdes.org')
  233.             ->cc('ycosquillo@gmail.com')
  234.             ->subject('Notificacion de nuevo contacto desde Inclusivo')
  235.             ->htmlTemplate('email/contacto.html.twig')
  236.             ->context([
  237.                     'info' => $info
  238.             ])
  239.         ;
  240.         $mailer->send($email2);
  241.         $this->addFlash(
  242.             'notice',
  243.             '¡Su solicitud de contacto fue enviada con éxito!'
  244.         );
  245.         $referer $request->server->get('HTTP_REFERER');
  246.         return $this->redirect($referer);
  247.     }
  248.     /**
  249.      * @Route("/buscar-empresas", methods={"POST"}, name="buscador")
  250.      */
  251.     public function buscador(Request $request){
  252.         $em $this->getDoctrine()->getManager();
  253.         $valor $request->get('producto');
  254.         $ubicacion $request->get('ubicacion');
  255.             $repository $em->getRepository(Usuario::class);
  256.             $repository2 $em->getRepository(SimbiosiIndustrial::class);
  257.             $querySM $repository->createQueryBuilder('empresa');
  258.             $querySB $repository2->createQueryBuilder('simbiosis');
  259.             $simbiosis = array();
  260.             if($valor){
  261.                 $querySM->andWhere("empresa.descripcion LIKE :texto or empresa.descripcionCorta LIKE :texto")
  262.                     ->setParameter('texto''%' $valor '%');
  263.                 $querySB->andWhere("simbiosis.descripcion LIKE :texto")
  264.                     ->setParameter('texto''%' $valor '%');
  265.                 $simbiosis $querySB->getQuery()->getResult();
  266.             }
  267.             if ($ubicacion){
  268.                 $querySM->andWhere("empresa.provincia LIKE :texto or empresa.ciudad LIKE :texto")
  269.                     ->setParameter('texto''%' $ubicacion '%');
  270. //                $querySB ->join('simbiosis.empresa', 'emp')
  271. //                    ->addSelect('emp')
  272. //                    ->where('emp.provincia LIKE :texto or emp.ciudad LIKE :texto')
  273. //                    ->setParameter('texto', '%' . $ubicacion . '%');
  274.             }
  275.             $empresas $querySM->getQuery()->getResult();
  276.         return $this->render('site/busqueda.html.twig', array(
  277.                 "empresas" => $empresas,
  278.                 "simbiosis" => $simbiosis,
  279.                 "valor" => $valor,
  280.                 "ubicacion" => $ubicacion,
  281.             )
  282.         );
  283.     }
  284.     
  285. }