<?php
namespace App\Controller\Site;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use App\Entity\Contact;
use App\Form\ContactType;
class ContactController extends Controller
{
public function contactFormAction()
{
$form = $this->createForm(ContactType::class);
return $this->render(
'site\contact\contactForm.html.twig',
array(
'form' => $form->createView()
)
);
}
/**
* @Route("/{_locale}/contactar/thanks", name="contact_thanks", requirements={"_locale" = "es|en"})
*/
public function contactUsThanksAction(Request $request)
{
return $this->render('site/contact/contactUsThanks.html.twig');
}
/**
* @Route("/{_locale}/contactar", name="contact", requirements={"_locale" = "es|en"})
*/
public function contactUsAction(Request $request, \Swift_Mailer $mailer)
{
$contact = new Contact();
$em = $this->getDoctrine()->getManager();
$page = $em->getRepository('App\Entity\Page')->findOneBySlug('contactar');
$form = $this->createForm(ContactType::class, $contact);
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
// Save Contact
$em->persist($contact);
$em->flush();
// Send email
$message = $this->renderView(
'email\contact.html.twig',
array('contact' => $contact)
);
$msg = (new \Swift_Message('Mensaje de contacto'))
->setFrom($contact->getEmail())
->setTo($this->container->getParameter('admin_email'))
->setBody($message, 'text/html')
->addPart(strip_tags($message), 'text/plain');
$mailer->send($msg);
// Show flash message
$this->addFlash('success', 'Su mensaje ha sido enviado correctamente.');
return $this->redirect($this->generateUrl('contact_thanks'));
// Reset form
$contact = new Contact();
$form = $this->createForm(ContactType::class, $contact);
}
}
return $this->render('site/contact/contactUs.html.twig', array(
'form' => $form->createView(),
'page' => $page
));
}
}