Browse code

Disable minifyMarkup for pdf generation

Benjamin Roth authored on26/06/2025 09:38:07
Showing1 changed files
... ...
@@ -44,6 +44,8 @@ class RealEstateAssetsReaderController extends RealEstateAssetsModuleController
44 44
 
45 45
     protected function getResponse(FragmentTemplate $template, ModuleModel $model, Request $request): Response
46 46
     {
47
+        global $objPage;
48
+
47 49
         $this->translator = System::getContainer()->get('translator');
48 50
         Controller::loadLanguageFile(RealEstateAssetsModel::getTable());
49 51
 
... ...
@@ -97,6 +99,8 @@ class RealEstateAssetsReaderController extends RealEstateAssetsModuleController
97 99
         {
98 100
             $PDF = new FrontendTemplate('exposePdfDefinition');
99 101
             $PDF->item = $arrItem;
102
+
103
+            $objPage->minifyMarkup = false;
100 104
 //      echo $PDF->parse();
101 105
             $response = $PDF->getResponse();
102 106
             $template->pdfJs = $response->getContent();
Browse code

Add alias to assets

Benjamin Roth authored on01/10/2024 15:02:40
Showing1 changed files
... ...
@@ -50,7 +50,7 @@ class RealEstateAssetsReaderController extends RealEstateAssetsModuleController
50 50
         $jumpTo = PageModel::findByPk($model->jumpTo);
51 51
 
52 52
         // Set the item from the auto_item parameter
53
-        if (Input::get('items') === null && Config::get('useAutoItem') && Input::get('auto_item'))
53
+        if (Input::get('items') === null && Input::get('auto_item'))
54 54
         {
55 55
             Input::setGet('items', Input::get('auto_item'));
56 56
         }
Browse code

Add alias to assets

Benjamin Roth authored on01/10/2024 14:55:31
Showing1 changed files
... ...
@@ -50,7 +50,6 @@ class RealEstateAssetsReaderController extends RealEstateAssetsModuleController
50 50
         $jumpTo = PageModel::findByPk($model->jumpTo);
51 51
 
52 52
         // Set the item from the auto_item parameter
53
-        dump($_GET);
54 53
         if (Input::get('items') === null && Config::get('useAutoItem') && Input::get('auto_item'))
55 54
         {
56 55
             Input::setGet('items', Input::get('auto_item'));
Browse code

Add alias to assets

Benjamin Roth authored on01/10/2024 14:52:16
Showing1 changed files
... ...
@@ -9,6 +9,7 @@
9 9
 
10 10
 namespace vonRotenberg\RealEstateListingBundle\Controller\FrontendModule;
11 11
 
12
+use Contao\Config;
12 13
 use Contao\CoreBundle\DependencyInjection\Attribute\AsFrontendModule;
13 14
 use Contao\CoreBundle\Exception\ResponseException;
14 15
 use Contao\CoreBundle\Twig\FragmentTemplate;
... ...
@@ -50,7 +51,7 @@ class RealEstateAssetsReaderController extends RealEstateAssetsModuleController
50 51
 
51 52
         // Set the item from the auto_item parameter
52 53
         dump($_GET);
53
-        if (Input::get('items') === null && \Config::get('useAutoItem') && Input::get('auto_item'))
54
+        if (Input::get('items') === null && Config::get('useAutoItem') && Input::get('auto_item'))
54 55
         {
55 56
             Input::setGet('items', Input::get('auto_item'));
56 57
         }
Browse code

Add alias to assets

Benjamin Roth authored on01/10/2024 14:44:53
Showing1 changed files
... ...
@@ -49,7 +49,8 @@ class RealEstateAssetsReaderController extends RealEstateAssetsModuleController
49 49
         $jumpTo = PageModel::findByPk($model->jumpTo);
50 50
 
51 51
         // Set the item from the auto_item parameter
52
-        if (!isset($_GET['items']) && \Config::get('useAutoItem') && isset($_GET['auto_item']))
52
+        dump($_GET);
53
+        if (Input::get('items') === null && \Config::get('useAutoItem') && Input::get('auto_item'))
53 54
         {
54 55
             Input::setGet('items', Input::get('auto_item'));
55 56
         }
Browse code

Add property info to asset reader

Benjamin Roth authored on07/08/2024 15:23:42
Showing1 changed files
... ...
@@ -79,8 +79,18 @@ class RealEstateAssetsReaderController extends RealEstateAssetsModuleController
79 79
             'listUrl'           => $jumpTo !== null ? $jumpTo->getFrontendUrl() : null,
80 80
             'pdfUrl'            => $request->getBaseUrl() . $request->getPathInfo() . '?pdf',
81 81
             'qrUrl'             => $request->getUriForPath($request->getPathInfo()),
82
+            'hasProperty'       => false
82 83
         ]);
83 84
 
85
+        // Check for object
86
+        if (($Property = $this->asset->getRelated('managedPropertyId')) !== null) {
87
+            $arrItem['hasProperty'] = true;
88
+            $arrItem['property'] = array_merge($Property->row(),[
89
+                'teaserFigure'      => $this->getImageFigures($Property->gallerySRC, $figureBuilder, $Property->orderSRC, 1),
90
+                'galleryFigures'    => $this->getImageFigures($Property->gallerySRC, $figureBuilder, $Property->orderSRC, 0, 0),
91
+            ]);
92
+        }
93
+
84 94
 
85 95
         if (isset($_GET['pdf']))
86 96
         {
Browse code

Some more adjustments

Benjamin Roth authored on15/04/2024 16:14:33
Showing1 changed files
... ...
@@ -70,6 +70,7 @@ class RealEstateAssetsReaderController extends RealEstateAssetsModuleController
70 70
 
71 71
         $arrItem = array_merge($this->asset->row(), [
72 72
             'features'          => StringUtil::deserialize($this->asset->features,true),
73
+            'parking'          => StringUtil::deserialize($this->asset->parking,true),
73 74
             'availableFrom'     => ($this->asset->availability == 'immediately' ? $this->translator->trans('REF.re_availability.immediately', [], 'contao_default') : Date::parse(Date::getNumericDateFormat(), $this->asset->availableFrom)),
74 75
             'deadline'          => ($this->asset->stop > 0 ? Date::parse(Date::getNumericDateFormat(), $this->asset->stop) : ''),
75 76
             'teaserFigure'      => $this->getImageFigures($this->asset->gallerySRC, $figureBuilder, $this->asset->orderSRC, 1),
Browse code

Refactor findPublishedBy asset model method to accept numeric ids and alias names

Benjamin Roth authored on28/02/2024 13:32:48
Showing1 changed files
... ...
@@ -54,7 +54,7 @@ class RealEstateAssetsReaderController extends RealEstateAssetsModuleController
54 54
             Input::setGet('items', Input::get('auto_item'));
55 55
         }
56 56
 
57
-        $this->asset = RealEstateAssetsModel::findPublishedById(Input::get('items'));
57
+        $this->asset = RealEstateAssetsModel::findPublishedByIdOrAlias(Input::get('items'));
58 58
 
59 59
         if ($this->asset === null)
60 60
         {
Browse code

Make reader module Contao 5 compatible

Benjamin Roth authored on28/02/2024 13:01:29
Showing1 changed files
... ...
@@ -10,7 +10,9 @@
10 10
 namespace vonRotenberg\RealEstateListingBundle\Controller\FrontendModule;
11 11
 
12 12
 use Contao\CoreBundle\DependencyInjection\Attribute\AsFrontendModule;
13
+use Contao\CoreBundle\Exception\ResponseException;
13 14
 use Contao\CoreBundle\Twig\FragmentTemplate;
15
+use Contao\Input;
14 16
 use vonRotenberg\RealEstateListingBundle\Model\RealEstateAssetsModel;
15 17
 use Contao\Controller;
16 18
 use Contao\CoreBundle\Image\Studio\Studio;
... ...
@@ -49,10 +51,10 @@ class RealEstateAssetsReaderController extends RealEstateAssetsModuleController
49 51
         // Set the item from the auto_item parameter
50 52
         if (!isset($_GET['items']) && \Config::get('useAutoItem') && isset($_GET['auto_item']))
51 53
         {
52
-            \Input::setGet('items', \Input::get('auto_item'));
54
+            Input::setGet('items', Input::get('auto_item'));
53 55
         }
54 56
 
55
-        $this->asset = RealEstateAssetsModel::findPublishedById(\Input::get('items'));
57
+        $this->asset = RealEstateAssetsModel::findPublishedById(Input::get('items'));
56 58
 
57 59
         if ($this->asset === null)
58 60
         {
... ...
@@ -67,7 +69,7 @@ class RealEstateAssetsReaderController extends RealEstateAssetsModuleController
67 69
 //      ->setLightboxGroupIdentifier('lb' . $model->id);
68 70
 
69 71
         $arrItem = array_merge($this->asset->row(), [
70
-            'features'          => StringUtil::deserialize($this->asset->features),
72
+            'features'          => StringUtil::deserialize($this->asset->features,true),
71 73
             'availableFrom'     => ($this->asset->availability == 'immediately' ? $this->translator->trans('REF.re_availability.immediately', [], 'contao_default') : Date::parse(Date::getNumericDateFormat(), $this->asset->availableFrom)),
72 74
             'deadline'          => ($this->asset->stop > 0 ? Date::parse(Date::getNumericDateFormat(), $this->asset->stop) : ''),
73 75
             'teaserFigure'      => $this->getImageFigures($this->asset->gallerySRC, $figureBuilder, $this->asset->orderSRC, 1),
... ...
@@ -86,6 +88,7 @@ class RealEstateAssetsReaderController extends RealEstateAssetsModuleController
86 88
 //      echo $PDF->parse();
87 89
             $response = $PDF->getResponse();
88 90
             $template->pdfJs = $response->getContent();
91
+            throw new ResponseException($response);
89 92
 //      echo $response->getContent();
90 93
 //      exit;
91 94
         }
Browse code

Fix studio service call

Benjamin Roth authored on26/02/2024 18:15:30
Showing1 changed files
... ...
@@ -60,7 +60,7 @@ class RealEstateAssetsReaderController extends RealEstateAssetsModuleController
60 60
         }
61 61
 
62 62
         $figureBuilder = System::getContainer()
63
-            ->get(Studio::class)
63
+            ->get('contao.image.studio')
64 64
             ->createFigureBuilder()
65 65
             ->setSize($model->imgSize)
66 66
             ->enableLightbox(true);
Browse code

Initial commit

Benjamin Roth authored on26/02/2024 17:53:24
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,100 @@
1
+<?php
2
+/**
3
+ * OBG Customizations
4
+ *
5
+ * Copyright (c) 2021 vonRotenberg
6
+ *
7
+ * @license commercial
8
+ */
9
+
10
+namespace vonRotenberg\RealEstateListingBundle\Controller\FrontendModule;
11
+
12
+use Contao\CoreBundle\DependencyInjection\Attribute\AsFrontendModule;
13
+use Contao\CoreBundle\Twig\FragmentTemplate;
14
+use vonRotenberg\RealEstateListingBundle\Model\RealEstateAssetsModel;
15
+use Contao\Controller;
16
+use Contao\CoreBundle\Image\Studio\Studio;
17
+use Contao\Date;
18
+use Contao\FrontendTemplate;
19
+use Contao\ModuleModel;
20
+use Contao\PageModel;
21
+use Contao\StringUtil;
22
+use Contao\System;
23
+use Symfony\Component\HttpFoundation\Request;
24
+use Symfony\Component\HttpFoundation\Response;
25
+use Symfony\Contracts\Translation\TranslatorInterface;
26
+
27
+#[AsFrontendModule(RealEstateAssetsReaderController::TYPE, category: 'miscellaneous')]
28
+class RealEstateAssetsReaderController extends RealEstateAssetsModuleController
29
+{
30
+    public const TYPE = 'vr_re_assets_reader';
31
+
32
+    /**
33
+     * @var RealEstateAssetsModel|null
34
+     */
35
+    protected $asset;
36
+
37
+    /**
38
+     * @var TranslatorInterface
39
+     */
40
+    protected $translator;
41
+
42
+    protected function getResponse(FragmentTemplate $template, ModuleModel $model, Request $request): Response
43
+    {
44
+        $this->translator = System::getContainer()->get('translator');
45
+        Controller::loadLanguageFile(RealEstateAssetsModel::getTable());
46
+
47
+        $jumpTo = PageModel::findByPk($model->jumpTo);
48
+
49
+        // Set the item from the auto_item parameter
50
+        if (!isset($_GET['items']) && \Config::get('useAutoItem') && isset($_GET['auto_item']))
51
+        {
52
+            \Input::setGet('items', \Input::get('auto_item'));
53
+        }
54
+
55
+        $this->asset = RealEstateAssetsModel::findPublishedById(\Input::get('items'));
56
+
57
+        if ($this->asset === null)
58
+        {
59
+            return new Response();
60
+        }
61
+
62
+        $figureBuilder = System::getContainer()
63
+            ->get(Studio::class)
64
+            ->createFigureBuilder()
65
+            ->setSize($model->imgSize)
66
+            ->enableLightbox(true);
67
+//      ->setLightboxGroupIdentifier('lb' . $model->id);
68
+
69
+        $arrItem = array_merge($this->asset->row(), [
70
+            'features'          => StringUtil::deserialize($this->asset->features),
71
+            'availableFrom'     => ($this->asset->availability == 'immediately' ? $this->translator->trans('REF.re_availability.immediately', [], 'contao_default') : Date::parse(Date::getNumericDateFormat(), $this->asset->availableFrom)),
72
+            'deadline'          => ($this->asset->stop > 0 ? Date::parse(Date::getNumericDateFormat(), $this->asset->stop) : ''),
73
+            'teaserFigure'      => $this->getImageFigures($this->asset->gallerySRC, $figureBuilder, $this->asset->orderSRC, 1),
74
+            'galleryFigures'    => $this->getImageFigures($this->asset->gallerySRC, $figureBuilder, $this->asset->orderSRC, 0, 0),
75
+            'floorPlansFigures' => $this->getImageFigures($this->asset->floorPlansSRC, $figureBuilder, $this->asset->floorPlansOrderSRC),
76
+            'listUrl'           => $jumpTo !== null ? $jumpTo->getFrontendUrl() : null,
77
+            'pdfUrl'            => $request->getBaseUrl() . $request->getPathInfo() . '?pdf',
78
+            'qrUrl'             => $request->getUriForPath($request->getPathInfo()),
79
+        ]);
80
+
81
+
82
+        if (isset($_GET['pdf']))
83
+        {
84
+            $PDF = new FrontendTemplate('exposePdfDefinition');
85
+            $PDF->item = $arrItem;
86
+//      echo $PDF->parse();
87
+            $response = $PDF->getResponse();
88
+            $template->pdfJs = $response->getContent();
89
+//      echo $response->getContent();
90
+//      exit;
91
+        }
92
+
93
+        $template->formURL = $model->vr_re_formUrl;
94
+
95
+        $template->item = $arrItem;
96
+
97
+        return $template->getResponse();
98
+    }
99
+
100
+}