src/Controller/Front/VenueController.php line 67

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\Routing\Annotation\Route;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Knp\Component\Pager\PaginatorInterface;
  7. use App\Service\AppServices;
  8. use Symfony\Contracts\Translation\TranslatorInterface;
  9. use App\Form\VenueQuoteType;
  10. class VenueController extends AbstractController {
  11.     /**
  12.      * @Route("/venues", name="venues")
  13.      */
  14.     public function venues(Request $requestPaginatorInterface $paginatorAppServices $services) {
  15.         $keyword = ($request->query->get('keyword')) == "" "all" $request->query->get('keyword');
  16.         $country = ($request->query->get('country')) == "" "all" $request->query->get('country');
  17.         $venuetypes = ($request->query->get('venuetypes')) == "" "all" $request->query->get('venuetypes');
  18.         $minseatedguests = ($request->query->get('minseatedguests')) == "" "all" $request->query->get('minseatedguests');
  19.         $maxseatedguests = ($request->query->get('maxseatedguests')) == "" "all" $request->query->get('maxseatedguests');
  20.         $minstandingguests = ($request->query->get('minstandingguests')) == "" "all" $request->query->get('minstandingguests');
  21.         $maxstandingguests = ($request->query->get('maxstandingguests')) == "" "all" $request->query->get('maxstandingguests');
  22.         $venues $paginator->paginate($services->getVenues(array('directory' => true'keyword' => $keyword'country' => $country'venuetypes' => $venuetypes'minseatedguests' => $minseatedguests'maxseatedguests' => $maxseatedguests'minstandingguests' => $minstandingguests'maxstandingguests' => $maxstandingguests)), $request->query->getInt('page'1), 8);
  23.         return $this->render('Front/Venue/venues.html.twig', [
  24.                     'venues' => $venues
  25.         ]);
  26.     }
  27.     /**
  28.      * @Route("/venue/{slug}", name="venue")
  29.      */
  30.     public function venue(Request $request$slugAppServices $servicesTranslatorInterface $translator, \Swift_Mailer $mailer) {
  31.         $venue $services->getVenues(array('directory' => true'slug' => $slug))->getQuery()->getOneOrNullResult();
  32.         if (!$venue) {
  33.             $this->addFlash('error'$translator->trans('The venue can not be found'));
  34.             return $this->redirectToRoute('venues');
  35.         }
  36.         $form $this->createForm(VenueQuoteType::class);
  37.         $form->handleRequest($request);
  38.         if ($form->isSubmitted()) {
  39.             // dd(0);
  40.             if ($form->isValid()) {
  41.                 $quoterequest $form->getData();
  42.                 $email = (new \Swift_Message($translator->trans('New quote request')))
  43.                         ->setFrom($services->getSetting("no_reply_email"))
  44.                         ->setTo($venue->getContactemail())
  45.                         ->setBody(
  46.                         $this->renderView(
  47.                                 'Front/Venue/email.html.twig', ['quoterequest' => $quoterequest'venue' => $venue]
  48.                         ), 'text/html'
  49.                 );
  50.                 $mailer->send($email);
  51.                 $this->addFlash('success'$translator->trans('Your quote request has been successfully sent'));
  52.                 $this->redirectToRoute("venue", ['slug' => $venue->getSlug()]);
  53.             } else {
  54.                 $this->addFlash('error'$translator->trans('The form contains invalid data'));
  55.             }
  56.         }
  57.         return $this->render('Front/Venue/venue.html.twig', [
  58.                     'venue' => $venue,
  59.                     'form' => $form->createView()
  60.         ]);
  61.     }
  62. }