<?php
/**
* TimobrachtController extends BaseController extends FrontendController
*
*/
namespace App\Controller;
use Pimcore\Controller\FrontendController;
use Pimcore\Model\Asset;
use Pimcore\Model\Document;
use Pimcore\Tool\DeviceDetector;
use Pimcore\Translation\Translator;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Routing\Annotation\Route;
use Carbon\Carbon;
use App\Captcha\Captcha;
class TimobrachtController extends BaseController
{
/**
* Document homepage action
*/
public function homepageAction(
Request $request,
Translator $translator
) {
$device = \Pimcore\Tool\DeviceDetector::getInstance();
$captcha = new Captcha('de');
$siteConfig = $this->document->getProperty('_siteConfig');
return $this->render('timobracht/homepage.html.twig', [
'languages' => $this->getValidLanguages(),
'locale' => $request->getLocale(),
'siteConfig' => $siteConfig,
'device' => $device,
'captcha' => $captcha->getCaptcha($request->getLocale())
]);
}
/**
* Document document action
*/
public function documentAction(
Request $request,
Translator $translator
) {
$device = \Pimcore\Tool\DeviceDetector::getInstance();
$siteConfig = $this->document->getProperty('_siteConfig');
return $this->render('timobracht/document.html.twig', [
'languages' => $this->getValidLanguages(),
'locale' => $request->getLocale(),
'siteConfig' => $siteConfig,
'device' => $device
]);
}
/**
* imageGalleryAction
*/
public function imageGalleryAction(
Request $request
) {
if ('asset' === $request->get('type')) {
$asset = Asset::getById($request->get('id'));
if ('folder' === $asset->getType()) {
return $this->render('timobracht/imageGallery.html.twig', ['assets' => $asset->getChildren()]);
}
}
return [];
}
/**
* defaultMailAction
*/
public function defaultMailAction(
Request $request,
Translator $translator
) {
$device = \Pimcore\Tool\DeviceDetector::getInstance();
$siteConfig = $this->document->getProperty('_siteConfig');
return $this->render('timobracht/defaultMailTemplate.html.twig', [
'device' => $device,
'languages' => $this->getValidLanguages(),
'siteConfig' => $siteConfig,
'locale' => $request->getLocale()
]);
}
/**
* ajaxMailAction
*/
public function ajaxMailAction (
Request $request,
Translator $translator
) {
$status = new class {};
// get post form data
$post_vars = $request->request->all();
$formdata = [];
foreach ($post_vars as $key => $var) {
$formdata[$key] = $var;
}
// check trap field
$spam_detected = false;
if (isset($formdata['emailAddress']) && strlen($formdata['emailAddress']))
$spam_detected = true;
// init captcha
$captcha = new Captcha('de');
$captcha_validated = false;
// validate captcha
if ($request->get('captcha_key')) {
$captcha_validated = $captcha->validateCaptcha($request->get('captcha_key'), $request->get('captcha_answer'));
}
if ( !$formdata['contactToken'] || $spam_detected || $captcha_validated==false ) {
$status = new class {};
$status ->code = 400;
$status ->message = 'Kritischer Fehler.';
} else {
if ( filter_var($formdata['contactEmail'], FILTER_VALIDATE_EMAIL) && $spam_detected === false ) {
$mail = new \Pimcore\Mail();
// $mail ->setCharset('utf-8');
$mail ->addTo( $formdata['contactEmail'] );
$mail ->addTo( SITE_MAIL_DEFAULT );
$mail ->addBcc( 'info@mallorca-aktiv.de' );
$mail ->addReplyTo( $formdata['contactEmail'] );
$mail ->setSubject( 'Ihre Anfrage bei Timo Bracht - Sportmedizinische Fortbildungen' );
$mail ->setDocument( Document::getByPath( '/_system/email-templates/contact-default' ) );
$mail ->setParams( $formdata );
$mail ->send();
$status ->code = 200;
$status ->message = 'Vielen Dank. Ihre Nachricht wurde versendet.';
} else {
$status = new class {};
$status ->code = 500;
$status ->message = 'Es ist ein Fehler aufgetreten: ungueltige Eingaben.' . $mail->ErrorInfo;
}
}
return new Response( json_encode($status) );
}
}
?>