src/Controller/DocumentController.php line 40

Open in your IDE?
  1. <?php
  2. /**
  3.  *  DocumentController extends BaseController extends FrontendController 
  4.  * 
  5. */
  6. namespace App\Controller;
  7. use Pimcore\Controller\FrontendController;
  8. use Pimcore\Model\Document;
  9. use Pimcore\Model\Asset;
  10. use Pimcore\Tool\DeviceDetector;
  11. use Pimcore\Translation\Translator;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. use App\Blog\Blog;
  16. use App\Captcha\Captcha;
  17. use App\Helper\ApartmentsHelper;
  18. use Carbon\Carbon;
  19. class DocumentController extends BaseController
  20. {
  21.     /**
  22.      *  Document homepage action
  23.     */
  24.     public function homepageAction(
  25.         Request $request
  26.         Translator $translator
  27.     ) {
  28.         $device \Pimcore\Tool\DeviceDetector::getInstance();
  29.         
  30.         return $this->render('document/homepage.html.twig', [
  31.             'languages'   => $this->getValidLanguages(),
  32.             'locale'      => $request->getLocale(),
  33.             'device'      => $device,
  34.             'apartments'  => ($this->apartments) ? $this->apartments null,
  35.             'blog'        => $this->document->getProperty('blog'),
  36.             'articles'    => $this->getNewsblogArticles()
  37.         ]);
  38.     }
  39.     
  40.     
  41.     /**
  42.      *  Apartments document action
  43.     */
  44.     public function apartmentsAction(
  45.         Request $request
  46.         Translator $translator
  47.     ) {
  48.         $device \Pimcore\Tool\DeviceDetector::getInstance();
  49.         return $this->render('document/apartments.html.twig', [
  50.             'languages'   => $this->getValidLanguages(),
  51.             'locale'      => $request->getLocale(),
  52.             'device'      => $device,
  53.             'apartments'  => ($this->apartments) ? $this->apartments null,
  54.             'articles'    => $this->newsblogArticles
  55.         ]);
  56.     }
  57.     
  58.     /**
  59.      *  Apartment document action
  60.     */
  61.     public function apartmentAction(
  62.         Request $request
  63.         Translator $translator
  64.     ) {
  65.         $device       \Pimcore\Tool\DeviceDetector::getInstance();
  66.         $apartment    null;
  67.         $description  = [];
  68.         $facilities   = [];
  69.         $extras       = [];
  70.         if ( $request->get('_apmtKey') )
  71.             $apartment \Pimcore\Model\DataObject\Apartment::getByPathAPARTMENTS_OBJECT_FOLDER '/' $request->get('_apmtKey') );
  72.         if ( $request->get('_apmtId') )
  73.             $apartment \Pimcore\Model\DataObject\Apartment::getById$request->get('_apmtId') );
  74.         elseif ( $this->document->getProperty('apartment') )
  75.             $apartment \Pimcore\Model\DataObject\Apartment::getByPath$this->document->getProperty('apartment') );
  76.             
  77.         if ( $apartment instanceof \Pimcore\Model\DataObject\Apartment )
  78.         {
  79.             // set description features
  80.             for( $i=1$i<21;$i++ )
  81.             {
  82.                 if ( method_exists($apartment'getFeature'.$i) )
  83.                     $description[] = call_user_func( array($apartment'getFeature'.$i) );               
  84.             }
  85.   
  86.             // set description facilities
  87.             foreach( ApartmentsHelper::getApartmentFacilitiesList() as $facility  )
  88.             {
  89.                 if ( method_exists($apartment'get'.$facility) )
  90.                     if ( call_user_func( array($apartment'get'.$facility) ) )
  91.                         $facilities[] = $facility;               
  92.             }
  93.             
  94.             // set description extras
  95.             foreach( ApartmentsHelper::getApartmentExtrasList() as $extra  )
  96.             {
  97.                 if ( method_exists($apartment'get'.$extra) )
  98.                     if ( call_user_func( array($apartment'get'.$extra) ) )
  99.                         $extras[] = $extra;               
  100.             }
  101.         }
  102.     
  103.         return $this->render('document/apartment.html.twig', [
  104.             'languages'   => $this->getValidLanguages(),
  105.             'locale'      => $request->getLocale(),
  106.             'device'      => $device,
  107.             'apartments'  => ($this->apartments) ? $this->apartments null,
  108.             'apartment'   => $apartment,
  109.             'description' => $description,
  110.             'facilities'  => $facilities,
  111.             'extras'      => $extras,
  112.             'articles'    => $this->newsblogArticles
  113.         ]);
  114.     }
  115.     
  116.     
  117.     /**
  118.      *  Document document action
  119.     */
  120.     public function documentAction(
  121.         Request $request
  122.         Translator $translator
  123.     ) {
  124.         $device \Pimcore\Tool\DeviceDetector::getInstance();
  125.         return $this->render('document/document.html.twig', [
  126.             'languages'   => $this->getValidLanguages(),
  127.             'locale'      => $request->getLocale(),
  128.             'device'      => $device,
  129.             'apartments'  => ($this->apartments) ? $this->apartments null,
  130.             'articles'    => $this->newsblogArticles
  131.         ]);
  132.     }
  133.     
  134.     
  135.     /**
  136.      *  Document contact action
  137.     */
  138.     public function contactAction(
  139.         Request $request
  140.         Translator $translator
  141.     ) {
  142.         $device \Pimcore\Tool\DeviceDetector::getInstance();
  143.         
  144.         // init vars 
  145.         $message        = [];
  146.         $mailSubmitted  false;
  147.         $mailRendered   false;
  148.         
  149.         // get post form data
  150.         $post_vars  $request->request->all();
  151.         $formdata = [];
  152.         foreach ($post_vars as $key => $var) {
  153.             $formdata[$key] = $var;
  154.         }
  155.         if ( isset( $formdata['contactToken'] ) 
  156.             && filter_var($formdata['contactEmail'], FILTER_VALIDATE_EMAIL)
  157.             && $formdata['emailAddress'] == ''
  158.         ) {
  159.             $mail = new \Pimcore\Mail();
  160.             // $mail ->setCharset('utf-8');
  161.             $mail ->addToSITE_MAIL_DEFAULT );
  162.             $mail ->addTo$formdata['contactEmail'] );
  163.             // $mail ->setFrom( WEBSITE_SHOP_MAIL_DEFAULT, $formdata['contact_firstname'].' '.$formdata['contact_lastname'] );
  164.             $mail ->addReplyTo$formdata['contactEmail'] );
  165.             $mail ->setSubjectSITE_NAME ' - Neue Anfrage erhalten' );
  166.             $mail ->setDocumentDocument::getByPathSYSTEM_MAIL_TEMPLATES '/' $request->getLocale() . '/contact-form' ) );
  167.             $mail ->setParams$formdata );                         
  168.             $mail ->send();
  169.             $mailSubmitted true;
  170.             $mailRendered $mail->getBodyHtmlRendered();
  171.             
  172.             $message[] = 'contact-form-sent-header';
  173.             $message[] = 'contact-form-sent-message';
  174.         } 
  175.         else if ( isset( $formdata['contactToken'] ) 
  176.                   && strlen($formdata['contactToken']) 
  177.         ) {
  178.             $message[] = 'contact-form-error';
  179.         }
  180.         
  181.         return $this->render('document/contact.html.twig', [
  182.             'languages'     => $this->getValidLanguages(),
  183.             'locale'        => $request->getLocale(),
  184.             'device'        => $device,
  185.             'apartments'    => ($this->apartments) ? $this->apartments null,
  186.             /* 'captcha'       => $captcha->getCaptcha(), */
  187.             'formdata'      => $formdata,
  188.             'mailSubmitted' => $mailSubmitted,
  189.             'mailRendered'  => ($mailRendered) ? $mailRendered '',
  190.             'message'       => $message,
  191.             'articles'      => $this->newsblogArticles
  192.         ]);
  193.     }
  194.     
  195.     
  196.     /**
  197.      *  defaultMailAction
  198.     */
  199.     public function defaultMailAction(
  200.         Request $request
  201.         Translator $translator     
  202.     ) {
  203.         $device \Pimcore\Tool\DeviceDetector::getInstance();
  204.         
  205.         return $this->render('document/defaultMailTemplate.html.twig', [
  206.             'device'        => $device,
  207.             'languages'     => $this->getValidLanguages(),
  208.             'locale'        => $request->getLocale()
  209.         ]);
  210.     }
  211.     
  212.     
  213.     /**
  214.      *  sliderGalleryAction
  215.     */
  216.     public function sliderGalleryAction(
  217.         Request $request
  218.     ) {
  219.         if ('asset' === $request->get('type')) 
  220.         {
  221.             $asset Asset::getById($request->get('id'));
  222.             if ('folder' === $asset->getType()) 
  223.             {                
  224.                 return $this->render('document/sliderGallery.html.twig', ['assets' => $asset->getChildren()]);
  225.             }
  226.         }    
  227.         return [];
  228.     }
  229.     
  230. }
  231. ?>