| ... | ... |
@@ -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 |
+} |