<?php
namespace App\Controller;
use App\Form\ContactFormType;
use App\Services\GeneralSendMailService;
use App\Services\MailService;
use App\Services\CheckwebsitesettingService;
use App\Services\ReCaptchaService;
use Pimcore\Controller\FrontendController;
use Pimcore\Mail;
use Pimcore\Config\Config;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Pimcore\Translation\Translator;
use Symfony\Component\Mailer\Transport;
use Symfony\Component\Mailer\Mailer;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Routing\Annotation\Route;
use MultilingualBundle\Service\DocumentLookupService;
class ContactController extends BaseController
{
protected $recaptcha;
protected $recaptchaVersion;
protected $recaptchaPublicKey;
protected $checkwebsitesettingService;
protected $inotherlang;
protected $translator;
protected $sendmail;
protected $currentLanguage;
public function __construct(CheckwebsitesettingService $checkwebsitesettingService, DocumentLookupService $inotherlang, Translator $translator, ReCaptchaService $recaptcha, GeneralSendMailService $sendmail){
$this->checkwebsitesettingService = $checkwebsitesettingService;
$this->inotherlang = $inotherlang;
$this->translator = $translator;
$this->recaptcha = $recaptcha;
$this->recaptchaVersion = $recaptcha->getVersion();
$this->recaptchaPublicKey = $recaptcha->getPublicKey();
$this->sendmail = $sendmail;
}
////////////////////// General forms
///
/**
*
* @param Request $request
* @param Translator $translator
*
* @return Response
*
* @throws \Exception
*/
public function defaultAction(Request $request)
{
//
$formName = ContactFormType::class;
$emailTemplate = 'email_contact'; // Email template contact
$emailTemplateConfirm = 'email_customer'; // Email template contact confirm
///////// EDIT VARIABLES ABOVE
$this->currentLanguage = $request->getLocale();
return $this->_defaultForm($request, $formName, $this->recaptchaVersion, $emailTemplate, $emailTemplateConfirm);
}
///////////////////////// End general forms
protected function _defaultForm(Request $request, $formName, $recaptcha = NULL, $emailTemplate = NULL, $emailTemplateConfirm = NULL)
{
$success = false;
// initialize form and handle request data
if($formName){
$form = $this->createForm($formName);
$form->handleRequest($request);
}
// handle form
if ($form->isSubmitted()) {
if ($form->isValid()) {
$params = $request->request->all();
$message = "Bedankt voor uw bericht. We nemen zo snel mogelijk contact met u op!";
if($recaptcha){
if($this->recaptcha->captchaverify($params)){
$success = true;
$data = $form->getData();
$this->sendmail->_sendMailDefaultForm($data, "$emailTemplate", "$emailTemplateConfirm", "$message",null,$request);
}else{
$message = "Captcha code is niet correct!";
$this->addFlash("warning", $message);
}
}else{
$success = true;
$data = $form->getData();
$this->sendmail->_sendMailDefaultForm($data, "$emailTemplate", "$emailTemplateConfirm", "$message",null,$request);
}
}
}
return $this->render('contact/default.html.twig', [
'form' => $form->createView(),
'recaptcha' => $this->recaptchaVersion,
'recaptchaPublic' => $this->recaptchaPublicKey,
'success' => $success
// 'error' => $error,
// 'hideBreadcrumbs' => true
]);
}
}