fix: generate correct referring urls

This commit is contained in:
Björn Fromme
2024-10-24 10:39:55 +02:00
parent 11018fd804
commit a70110df45
3 changed files with 12 additions and 2 deletions
@@ -137,6 +137,7 @@ class SearchController extends ActionController
->uriBuilder
->reset()
->setTargetPageUid($this->settings['defaultSearchPageUid'])
->setCreateAbsoluteUri(true)
->uriFor(
'searchresult',
['filterSettings' => $filterSettings],
@@ -44,6 +44,7 @@ class ProductViewHelper extends AbstractViewHelper
$this->registerArgument('forceHotelUid', 'bool', 'Whether to force link a hotel');
$this->registerArgument('dateFrom', 'string', 'Date to limit table on detail page by (Y-m-d)');
$this->registerArgument('dateTo', 'string', 'Date to limit table on detail page by (Y-m-d)');
$this->registerArgument('ref', 'string', 'Referring URL');
}
/**
@@ -81,13 +82,21 @@ class ProductViewHelper extends AbstractViewHelper
$targetPageUid = is_array($product) ? (int)$product['detailPage'] : $product->getDetailPage();
return $renderingContext
$uri = $renderingContext
->getControllerContext()
->getUriBuilder()
->reset()
->setTargetPageUid($targetPageUid)
->uriFor('detail', $linkArguments, 'Product', 'epproducts', 'product_detail')
;
if ($arguments['ref']) {
$referringPageUri = urlencode($arguments['ref']);
$separator = false !== strpos($uri, '?') ? '&' : '?';
$uri .= $separator . 'ref=' . $referringPageUri;
}
return $uri;
}
}
@@ -13,7 +13,7 @@
<f:section name="TeaserImage">
<div class="relative{f:if(condition: landscape, then: ' sm:w-2/5')}">
<a href="{ep:uri.product(forceHotelUid: forceHotelUid, product: product, hotel: hotel, dateFrom: dateFrom, dateTo: dateTo)}{f:if(condition: referringPageUri, then: '?ref={referringPageUri -> f:format.urlencode()}')}"
<a href="{ep:uri.product(forceHotelUid: forceHotelUid, product: product, hotel: hotel, dateFrom: dateFrom, dateTo: dateTo, ref: referringPageUri)}"
title="{region.name} {product.name} Details und Buchen">
<f:if condition="{productImage}">
<f:then>