Example #1
0
 public function indexAction(Request $request, Node $node = null, Translation $translation = null, $_locale = null, $_route = null)
 {
     /*
      * You must catch NoTranslationAvailableException if
      * user visit a non-available translation.
      */
     try {
         $translation = $this->bindLocaleFromRoute($request, $_locale);
         $this->prepareThemeAssignation($node, $translation);
         /*
          * Create a custom contact form
          */
         $formBuilder = EntryPointsController::getContactFormBuilder($request, true, null, null, null);
         $formBuilder->add('email', 'email', ['label' => $this->getTranslator()->trans('your.email')])->add('name', 'text', ['label' => $this->getTranslator()->trans('your.name')])->add('message', 'textarea', ['label' => $this->getTranslator()->trans('your.message')])->add('callMeBack', 'checkbox', ['label' => $this->getTranslator()->trans('call.me.back'), 'required' => false])->add('document', 'file', ['label' => $this->getTranslator()->trans('document'), 'required' => false])->add('send', 'submit', ['label' => $this->getTranslator()->trans('send.contact.form')]);
         $form = $formBuilder->getForm();
         $this->assignation['contactForm'] = $form->createView();
         /*
          * Assign route to check current menu entry in navigation.html.twig
          */
         $this->assignation['route'] = $_route;
         return $this->render('contact.html.twig', $this->assignation, null, static::getThemeDir());
     } catch (NoTranslationAvailableException $e) {
         return $this->throw404();
     }
 }