... | ... |
@@ -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(); |
... | ... |
@@ -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 |
} |
... | ... |
@@ -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')); |
... | ... |
@@ -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 |
} |
... | ... |
@@ -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 |
} |
... | ... |
@@ -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 |
{ |
... | ... |
@@ -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), |
... | ... |
@@ -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 |
{ |
... | ... |
@@ -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 |
} |
... | ... |
@@ -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); |
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 |
+} |