feat: add a feature flag for the pickups table on product detail pages

This commit is contained in:
fromme committed 2026-10-08 17:22:21 +02:00
1 parent 1111c180f8
commit c7f43ad02c
2 files changed
+18 -2

No files matched your search

@@ -5,6 +5,7 @@ namespace EP\EpProducts\Service;
use EP\EpProducts\Domain\Model\Hotel;
use EP\EpProducts\Domain\Model\Product;
use EP\EpProducts\Domain\Repository\DateRepository;
use TYPO3\CMS\Core\Configuration\ExtensionConfiguration;
/**
* Lists the pickup points of a product's latest upcoming end-customer date that
@@ -16,6 +17,11 @@ use EP\EpProducts\Domain\Repository\DateRepository;
*
* The returned shape is meant to be served by MyE&P later on, so that only the
* data source has to change once the local date table goes away.
*
* Switched by pickupsOverviewEnabled in the extension configuration. A missing
* key means off: a key added to ext_conf_template.txt is absent until the
* extension configuration is saved in the backend, and the overview must not
* go live before it is approved.
*/
class PickupOverviewService
{
@@ -24,9 +30,16 @@ class PickupOverviewService
*/
private $dateRepository;
public function __construct(DateRepository $dateRepository)
/**
* @var bool
*/
private $enabled;
public function __construct(DateRepository $dateRepository, ExtensionConfiguration $extensionConfiguration)
{
$this->dateRepository = $dateRepository;
$configuration = (array) $extensionConfiguration->get('ep_products');
$this->enabled = (bool) ($configuration['pickupsOverviewEnabled'] ?? false);
}
/**
@@ -35,7 +48,7 @@ class PickupOverviewService
public function getOverview(Product $product, ?Hotel $hotel): array
{
$overview = ['pickups' => []];
if ($hotel === null || $product->isDaytrip()) {
if (!$this->enabled || $hotel === null || $product->isDaytrip()) {
return $overview;
}
@@ -1,6 +1,9 @@
# cat=General; type=int; label=Searchresult PID
searchPageUid = 0
# cat=General; type=boolean; label=Show the bus pickups table on product detail pages
pickupsOverviewEnabled = 0
# cat=MyEp; type=string; label=MyE&P URL
myEpUrl = https://my.ep-reisen.de