Files
frommeandClaude Opus 5.5 f4556ee75c refactor: remove dead code via Rector
rector.php gets the deadCode set: @param/@return/@var tags that only
repeat native types, === true comparisons, three unused constructor
dependencies (DateService, ProductDataService, AjaxWatchlistController),
the unused reseller lookup in ContextProcessor and an always-false check
in AbstractMappedFinisher (trimExplode with removeEmpty never yields an
empty remote name).

Checked locally: frontend crawl (~1,900 URLs) and the backchannel APIs
render the same as before.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 11:10:20 +01:00

102 lines
4.4 KiB
PHP

<?php
namespace EP\EpTheme\DataProcessing;
use EP\EpProducts\Domain\Model\City;
use EP\EpProducts\Domain\Model\Region;
use EP\EpProducts\Domain\Model\Country;
use EP\EpProducts\Domain\Model\Concept;
use EP\EpProducts\Domain\Repository\CityRepository;
use EP\EpProducts\Domain\Repository\ConceptRepository;
use EP\EpProducts\Domain\Repository\CountryRepository;
use EP\EpProducts\Domain\Repository\RegionRepository;
use EP\EpProducts\Service\HotelDataService;
use EP\EpProducts\Service\ProductDataService;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer;
use TYPO3\CMS\Frontend\ContentObject\DataProcessorInterface;
class TeaserProcessor implements DataProcessorInterface
{
/**
*
* @return array
*/
public function process(
ContentObjectRenderer $cObj,
array $contentObjectConfiguration,
array $processorConfiguration,
array $processedData
) {
if ((int) $processedData['data']['tx_eptheme_context_city'] > 0) {
/** @var CityRepository $repository */
$repository = GeneralUtility::makeInstance(CityRepository::class);
/** @var City $city */
$city = $repository->findByIdentifier($processedData['data']['tx_eptheme_context_city']);
$processedData['city'] = $city;
}
if ((int) $processedData['data']['tx_eptheme_context_region'] > 0) {
/** @var RegionRepository $repository */
$repository = GeneralUtility::makeInstance(RegionRepository::class);
/** @var Region $region */
$region = $repository->findByIdentifier($processedData['data']['tx_eptheme_context_region']);
$processedData['region'] = $region;
}
if ((int) $processedData['data']['tx_eptheme_context_country'] > 0) {
/** @var CountryRepository $repository */
$repository = GeneralUtility::makeInstance(CountryRepository::class);
/** @var Country $country */
$country = $repository->findByIdentifier($processedData['data']['tx_eptheme_context_country']);
$processedData['country'] = $country;
}
if ((int) $processedData['data']['tx_eptheme_context_hotel'] > 0) {
/** @var HotelDataService $service */
$service = GeneralUtility::makeInstance(HotelDataService::class);
/** @var array $hotel */
$hotel = $service->getTeaser($processedData['data']['tx_eptheme_context_hotel']);
$processedData['hotel'] = $hotel;
}
if ((int) $processedData['data']['tx_eptheme_context_concept'] > 0) {
/** @var ConceptRepository $repository */
$repository = GeneralUtility::makeInstance(ConceptRepository::class);
/** @var Concept $concept */
$concept = $repository->findByIdentifier($processedData['data']['tx_eptheme_context_concept']);
$processedData['concept'] = $concept;
}
if ((int) $processedData['data']['tx_eptheme_context_product'] > 0) {
$productUid = (int) $processedData['data']['tx_eptheme_context_product'];
$hotelUid = (int) $processedData['data']['tx_eptheme_context_hotel'];
$filterSettings = [
'productUid' => $productUid,
'hotelUid' => $hotelUid,
];
$dateFromTimestamp = (int) $processedData['data']['tx_eptheme_context_date_from'];
if ($dateFromTimestamp > 0) {
$dateFrom = new \DateTime();
$dateFrom->setTimestamp($dateFromTimestamp);
$filterSettings['dateFrom'] = $dateFrom->format('Y-m-d');
}
$dateToTimestamp = (int) $processedData['data']['tx_eptheme_context_date_to'];
if ($dateToTimestamp > 0) {
$dateTo = new \DateTime();
$dateTo->setTimestamp($dateToTimestamp);
$filterSettings['dateTo'] = $dateTo->format('Y-m-d');
}
/** @var ProductDataService $productDataService */
$productDataService = GeneralUtility::makeInstance(ProductDataService::class);
$processedData['teaser'] = $productDataService->getTeaser($filterSettings);
$processedData['teaser']['forceHotelUid'] = $hotelUid;
}
$processedData['referringPageUid'] = $GLOBALS['TYPO3_REQUEST']->getAttribute('frontend.page.information')->getId();
return $processedData;
}
}