<?php
/**
* DocumentController extends BaseController extends FrontendController
*
*/
namespace App\Controller;
use Pimcore\Controller\FrontendController;
use Pimcore\Model\Document;
use Pimcore\Model\Asset;
use Pimcore\Tool\DeviceDetector;
use Pimcore\Translation\Translator;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Routing\Annotation\Route;
use App\Blog\Blog;
use App\Captcha\Captcha;
use App\Helper\ApartmentsHelper;
use Carbon\Carbon;
class DocumentController extends BaseController
{
/**
* Document homepage action
*/
public function homepageAction(
Request $request,
Translator $translator
) {
$device = \Pimcore\Tool\DeviceDetector::getInstance();
return $this->render('document/homepage.html.twig', [
'languages' => $this->getValidLanguages(),
'locale' => $request->getLocale(),
'device' => $device,
'apartments' => ($this->apartments) ? $this->apartments : null,
'blog' => $this->document->getProperty('blog'),
'articles' => $this->getNewsblogArticles()
]);
}
/**
* Apartments document action
*/
public function apartmentsAction(
Request $request,
Translator $translator
) {
$device = \Pimcore\Tool\DeviceDetector::getInstance();
return $this->render('document/apartments.html.twig', [
'languages' => $this->getValidLanguages(),
'locale' => $request->getLocale(),
'device' => $device,
'apartments' => ($this->apartments) ? $this->apartments : null,
'articles' => $this->newsblogArticles
]);
}
/**
* Apartment document action
*/
public function apartmentAction(
Request $request,
Translator $translator
) {
$device = \Pimcore\Tool\DeviceDetector::getInstance();
$apartment = null;
$description = [];
$facilities = [];
$extras = [];
if ( $request->get('_apmtKey') )
$apartment = \Pimcore\Model\DataObject\Apartment::getByPath( APARTMENTS_OBJECT_FOLDER . '/' . $request->get('_apmtKey') );
if ( $request->get('_apmtId') )
$apartment = \Pimcore\Model\DataObject\Apartment::getById( $request->get('_apmtId') );
elseif ( $this->document->getProperty('apartment') )
$apartment = \Pimcore\Model\DataObject\Apartment::getByPath( $this->document->getProperty('apartment') );
if ( $apartment instanceof \Pimcore\Model\DataObject\Apartment )
{
// set description features
for( $i=1; $i<21;$i++ )
{
if ( method_exists($apartment, 'getFeature'.$i) )
$description[] = call_user_func( array($apartment, 'getFeature'.$i) );
}
// set description facilities
foreach( ApartmentsHelper::getApartmentFacilitiesList() as $facility )
{
if ( method_exists($apartment, 'get'.$facility) )
if ( call_user_func( array($apartment, 'get'.$facility) ) )
$facilities[] = $facility;
}
// set description extras
foreach( ApartmentsHelper::getApartmentExtrasList() as $extra )
{
if ( method_exists($apartment, 'get'.$extra) )
if ( call_user_func( array($apartment, 'get'.$extra) ) )
$extras[] = $extra;
}
}
return $this->render('document/apartment.html.twig', [
'languages' => $this->getValidLanguages(),
'locale' => $request->getLocale(),
'device' => $device,
'apartments' => ($this->apartments) ? $this->apartments : null,
'apartment' => $apartment,
'description' => $description,
'facilities' => $facilities,
'extras' => $extras,
'articles' => $this->newsblogArticles
]);
}
/**
* Document document action
*/
public function documentAction(
Request $request,
Translator $translator
) {
$device = \Pimcore\Tool\DeviceDetector::getInstance();
return $this->render('document/document.html.twig', [
'languages' => $this->getValidLanguages(),
'locale' => $request->getLocale(),
'device' => $device,
'apartments' => ($this->apartments) ? $this->apartments : null,
'articles' => $this->newsblogArticles
]);
}
/**
* Document contact action
*/
public function contactAction(
Request $request,
Translator $translator
) {
$device = \Pimcore\Tool\DeviceDetector::getInstance();
// init vars
$message = [];
$mailSubmitted = false;
$mailRendered = false;
// get post form data
$post_vars = $request->request->all();
$formdata = [];
foreach ($post_vars as $key => $var) {
$formdata[$key] = $var;
}
if ( isset( $formdata['contactToken'] )
&& filter_var($formdata['contactEmail'], FILTER_VALIDATE_EMAIL)
&& $formdata['emailAddress'] == ''
) {
$mail = new \Pimcore\Mail();
// $mail ->setCharset('utf-8');
$mail ->addTo( SITE_MAIL_DEFAULT );
$mail ->addTo( $formdata['contactEmail'] );
// $mail ->setFrom( WEBSITE_SHOP_MAIL_DEFAULT, $formdata['contact_firstname'].' '.$formdata['contact_lastname'] );
$mail ->addReplyTo( $formdata['contactEmail'] );
$mail ->setSubject( SITE_NAME . ' - Neue Anfrage erhalten' );
$mail ->setDocument( Document::getByPath( SYSTEM_MAIL_TEMPLATES . '/' . $request->getLocale() . '/contact-form' ) );
$mail ->setParams( $formdata );
$mail ->send();
$mailSubmitted = true;
$mailRendered = $mail->getBodyHtmlRendered();
$message[] = 'contact-form-sent-header';
$message[] = 'contact-form-sent-message';
}
else if ( isset( $formdata['contactToken'] )
&& strlen($formdata['contactToken'])
) {
$message[] = 'contact-form-error';
}
return $this->render('document/contact.html.twig', [
'languages' => $this->getValidLanguages(),
'locale' => $request->getLocale(),
'device' => $device,
'apartments' => ($this->apartments) ? $this->apartments : null,
/* 'captcha' => $captcha->getCaptcha(), */
'formdata' => $formdata,
'mailSubmitted' => $mailSubmitted,
'mailRendered' => ($mailRendered) ? $mailRendered : '',
'message' => $message,
'articles' => $this->newsblogArticles
]);
}
/**
* defaultMailAction
*/
public function defaultMailAction(
Request $request,
Translator $translator
) {
$device = \Pimcore\Tool\DeviceDetector::getInstance();
return $this->render('document/defaultMailTemplate.html.twig', [
'device' => $device,
'languages' => $this->getValidLanguages(),
'locale' => $request->getLocale()
]);
}
/**
* sliderGalleryAction
*/
public function sliderGalleryAction(
Request $request
) {
if ('asset' === $request->get('type'))
{
$asset = Asset::getById($request->get('id'));
if ('folder' === $asset->getType())
{
return $this->render('document/sliderGallery.html.twig', ['assets' => $asset->getChildren()]);
}
}
return [];
}
}
?>