Compare commits
2
Commits
69f9b42757
...
c7f43ad02c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c7f43ad02c | ||
|
|
1111c180f8 |
No files matched your search
@@ -33,6 +33,7 @@ class DateRepository extends AbstractRepository
|
||||
->where(
|
||||
$qb->expr()->eq('date.product', $qb->createNamedParameter($productUid, Connection::PARAM_INT)),
|
||||
$qb->expr()->eq('date.hotel', $qb->createNamedParameter($hotelUid, Connection::PARAM_INT)),
|
||||
$qb->expr()->eq('date.group_travel', $qb->createNamedParameter(0, Connection::PARAM_INT)),
|
||||
'date.date_start >= NOW()'
|
||||
)
|
||||
->orderBy('date.date_start', 'DESC')
|
||||
|
||||
@@ -5,15 +5,23 @@ 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 date that has any,
|
||||
* with that date's time and round-trip surcharge per pickup point. Pickups,
|
||||
* times and prices may differ on other dates; taking the latest one keeps the
|
||||
* values unique and shows them for as long as the product is offered.
|
||||
* Lists the pickup points of a product's latest upcoming end-customer date that
|
||||
* has any, with that date's time and round-trip surcharge per pickup point.
|
||||
* Group travel dates are left out: their pickups are arranged per group and
|
||||
* are not offered publicly. Pickups, times and prices may differ on other
|
||||
* dates; taking the latest one keeps the values unique and shows them for as
|
||||
* long as the product is offered.
|
||||
*
|
||||
* 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
|
||||
{
|
||||
@@ -22,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);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -33,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
|
||||
|
||||
|
||||
Reference in new issue
Block a user