Cache image service results

This commit is contained in:
Björn Fromme
2021-10-27 10:44:53 +02:00
parent 4e5cf832da
commit 7acd771f65
9 changed files with 414 additions and 420 deletions
@@ -1,6 +1,6 @@
<?php <?php
namespace EP\EpProducts\Traits; namespace EP\EpProducts\Service;
/*************************************************************** /***************************************************************
* *
@@ -32,9 +32,10 @@ use TYPO3\CMS\Core\Imaging\ImageManipulation\Area;
use TYPO3\CMS\Core\Imaging\ImageManipulation\CropVariantCollection; use TYPO3\CMS\Core\Imaging\ImageManipulation\CropVariantCollection;
use TYPO3\CMS\Core\Resource\FileReference; use TYPO3\CMS\Core\Resource\FileReference;
use TYPO3\CMS\Core\Resource\FileRepository; use TYPO3\CMS\Core\Resource\FileRepository;
use TYPO3\CMS\Core\SingletonInterface;
use TYPO3\CMS\Extbase\Service\ImageService; use TYPO3\CMS\Extbase\Service\ImageService;
trait ImageServiceTrait abstract class AbstractImageService implements SingletonInterface
{ {
/** /**
* @var FileRepository * @var FileRepository
@@ -60,7 +61,7 @@ trait ImageServiceTrait
public function getImages($uid): array public function getImages($uid): array
{ {
$key = $this->table.$uid; $key = sprintf('images-%s-%d', $this->table, $uid);
if (false === ($value = $this->cache->get($key))) { if (false === ($value = $this->cache->get($key))) {
$original = $this->fileRepository->findByRelation( $original = $this->fileRepository->findByRelation(
$this->table, $this->table,
@@ -45,26 +45,14 @@ class HotelDataService implements SingletonInterface
*/ */
protected $hotelImageService; protected $hotelImageService;
/**
* @var FlagIconService
*/
protected $flagIconService;
/** /**
* @param HotelRepository $hotelRepository * @param HotelRepository $hotelRepository
* @param HotelImageService $hotelImageService * @param HotelImageService $hotelImageService
* @param FlagIconService $flagIconService
*/ */
public function __construct public function __construct(HotelRepository $hotelRepository, HotelImageService $hotelImageService)
(
HotelRepository $hotelRepository,
HotelImageService $hotelImageService,
FlagIconService $flagIconService
)
{ {
$this->hotelRepository = $hotelRepository; $this->hotelRepository = $hotelRepository;
$this->hotelImageService = $hotelImageService; $this->hotelImageService = $hotelImageService;
$this->flagIconService = $flagIconService;
} }
/** /**
@@ -111,7 +99,6 @@ class HotelDataService implements SingletonInterface
'country' => [ 'country' => [
'name' => $hotelData['country'], 'name' => $hotelData['country'],
'code' => $hotelData['countryCode'], 'code' => $hotelData['countryCode'],
'flag' => $this->flagIconService->getImage($hotelData['countryCode']),
], ],
'region' => [ 'region' => [
'name' => $hotelData['regionName'], 'name' => $hotelData['regionName'],
@@ -171,7 +158,6 @@ class HotelDataService implements SingletonInterface
'country' => [ 'country' => [
'name' => $row['country'], 'name' => $row['country'],
'code' => $row['countryCode'], 'code' => $row['countryCode'],
'flag' => $this->flagIconService->getImage($row['countryCode']),
], ],
'region' => [ 'region' => [
'name' => $row['regionName'], 'name' => $row['regionName'],
@@ -228,7 +214,6 @@ class HotelDataService implements SingletonInterface
'country' => [ 'country' => [
'name' => $row['country'], 'name' => $row['country'],
'code' => $row['countryCode'], 'code' => $row['countryCode'],
'flag' => $this->flagIconService->getImage($row['countryCode']),
], ],
'available' => 0, 'available' => 0,
'board' => $row['board'], 'board' => $row['board'],
@@ -26,13 +26,8 @@ namespace EP\EpProducts\Service;
* This copyright notice MUST APPEAR in all copies of the script! * This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/ ***************************************************************/
use EP\EpProducts\Traits\ImageServiceTrait; class HotelImageService extends AbstractImageService
use TYPO3\CMS\Core\SingletonInterface;
class HotelImageService implements SingletonInterface
{ {
use ImageServiceTrait;
/** /**
* @var string * @var string
*/ */
@@ -54,31 +54,23 @@ class ProductDataService implements SingletonInterface
*/ */
protected $hotelImageService; protected $hotelImageService;
/**
* @var FlagIconService
*/
protected $flagIconService;
/** /**
* @param ProductRepository $productRepository * @param ProductRepository $productRepository
* @param HotelRepository $hotelRepository * @param HotelRepository $hotelRepository
* @param HotelImageService $hotelImageService * @param HotelImageService $hotelImageService
* @param ProductImageService $productImageService * @param ProductImageService $productImageService
* @param FlagIconService $flagIconService
*/ */
public function __construct( public function __construct(
ProductRepository $productRepository, ProductRepository $productRepository,
HotelRepository $hotelRepository, HotelRepository $hotelRepository,
HotelImageService $hotelImageService, HotelImageService $hotelImageService,
ProductImageService $productImageService, ProductImageService $productImageService
FlagIconService $flagIconService
) )
{ {
$this->productRepository = $productRepository; $this->productRepository = $productRepository;
$this->hotelRepository = $hotelRepository; $this->hotelRepository = $hotelRepository;
$this->productImageService = $productImageService; $this->productImageService = $productImageService;
$this->hotelImageService = $hotelImageService; $this->hotelImageService = $hotelImageService;
$this->flagIconService = $flagIconService;
} }
/** /**
@@ -221,7 +213,6 @@ class ProductDataService implements SingletonInterface
'country' => [ 'country' => [
'name' => $teaserData['countryName'], 'name' => $teaserData['countryName'],
'code' => $teaserData['countryCode'], 'code' => $teaserData['countryCode'],
'flag' => $this->flagIconService->getImage($teaserData['countryCode']),
], ],
'region' => [ 'region' => [
'name' => $teaserData['regionName'], 'name' => $teaserData['regionName'],
@@ -26,13 +26,8 @@ namespace EP\EpProducts\Service;
* This copyright notice MUST APPEAR in all copies of the script! * This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/ ***************************************************************/
use EP\EpProducts\Traits\ImageServiceTrait; class ProductImageService extends AbstractImageService
use TYPO3\CMS\Core\SingletonInterface;
class ProductImageService implements SingletonInterface
{ {
use ImageServiceTrait;
/** /**
* @var string * @var string
*/ */
@@ -1,6 +1,33 @@
services: services:
_defaults:
autowire: true
autoconfigure: true
public: false
EP\EpProducts\:
resource: '../Classes/*'
exclude: '../Classes/Domain/Model/*'
EP\EpProducts\EventListener\SystemInformationToolbarListener: EP\EpProducts\EventListener\SystemInformationToolbarListener:
tags: tags:
- name: event.listener - name: event.listener
identifier: 'epToolbarListener' identifier: 'epToolbarListener'
event: TYPO3\CMS\Backend\Backend\Event\SystemInformationToolbarCollectorEvent event: TYPO3\CMS\Backend\Backend\Event\SystemInformationToolbarCollectorEvent
cache.ep_cache:
class: TYPO3\CMS\Core\Cache\Frontend\FrontendInterface
public: true
factory: ['@TYPO3\CMS\Core\Cache\CacheManager', 'getCache']
arguments: ['ep_products_cache']
EP\EpProducts\Service\HotelImageService:
arguments:
$fileRepository: '@TYPO3\CMS\Core\Resource\FileRepository'
$imageService: '@TYPO3\CMS\Extbase\Service\ImageService'
$cache: '@cache.ep_cache'
EP\EpProducts\Service\ProductImageService:
arguments:
$fileRepository: '@TYPO3\CMS\Core\Resource\FileRepository'
$imageService: '@TYPO3\CMS\Extbase\Service\ImageService'
$cache: '@cache.ep_cache'
@@ -1,57 +1,56 @@
<?php <?php
defined('TYPO3_MODE') or die('Access denied.');
if (!defined('TYPO3_MODE')) { $boot = function () {
die('Access denied.'); if (!is_array($GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['ep_products_cache'])) {
} $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['ep_products_cache'] = [];
}
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass']['ep_products'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass']['ep_products'] =
\EP\EpProducts\Hook\Tcemain::class; \EP\EpProducts\Hooks\Tcemain::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\Task\ImportDatesTask::class] = [ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\Task\ImportDatesTask::class] = [
'extension' => 'ep_products', 'extension' => 'ep_products',
'title' => 'EP Reisedaten Import', 'title' => 'EP Reisedaten Import',
'description' => 'Importiert Reisedaten aus busProNet', 'description' => 'Importiert Reisedaten aus busProNet',
]; ];
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\Task\ImportContingentsTask::class] = [ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\Task\ImportContingentsTask::class] = [
'extension' => 'ep_products', 'extension' => 'ep_products',
'title' => 'EP Kontingent Import', 'title' => 'EP Kontingent Import',
'description' => 'Importiert Kontingentdaten aus busProNet', 'description' => 'Importiert Kontingentdaten aus busProNet',
]; ];
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\Task\ImportSnowreportTask::class] = [ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\Task\ImportSnowreportTask::class] = [
'extension' => 'ep_products', 'extension' => 'ep_products',
'title' => 'EP Schneehöhen Import', 'title' => 'EP Schneehöhen Import',
'description' => 'Importiert Schneehöhen', 'description' => 'Importiert Schneehöhen',
]; ];
$GLOBALS['TYPO3_CONF_VARS']['LOG']['EP']['EpProducts']['Service']['GroupsSwissService']['writerConfiguration'] = [ $GLOBALS['TYPO3_CONF_VARS']['LOG']['EP']['EpProducts']['Service']['GroupsSwissService']['writerConfiguration'] = [
\TYPO3\CMS\Core\Log\LogLevel::INFO => [ \TYPO3\CMS\Core\Log\LogLevel::INFO => [
'TYPO3\\CMS\\Core\\Log\\Writer\\FileWriter' => [ 'TYPO3\\CMS\\Core\\Log\\Writer\\FileWriter' => [
'logFile' => \TYPO3\CMS\Core\Core\Environment::getVarPath() . '/log/groups.swiss.log', 'logFile' => \TYPO3\CMS\Core\Core\Environment::getVarPath() . '/log/groups.swiss.log',
], ],
], ],
]; ];
$iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class); $iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class);
$iconRegistry->registerIcon( $iconRegistry->registerIcon(
'ep-logo', 'ep-logo',
\TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class, \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
['source' => 'EXT:ep_products/Resources/Public/Icons/logo.svg'] ['source' => 'EXT:ep_products/Resources/Public/Icons/logo.svg']
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'searchbar', 'searchbar',
[
'Searchbar' => 'index',
],
[ [
'Searchbar' => 'index', 'Searchbar' => 'index',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'searchresult', 'searchresult',
[ [
@@ -60,9 +59,9 @@ $iconRegistry->registerIcon(
[ [
'Search' => 'searchresult,processSearch', 'Search' => 'searchresult,processSearch',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'staticresult', 'staticresult',
[ [
@@ -71,191 +70,185 @@ $iconRegistry->registerIcon(
[ [
'Search' => 'staticresult', 'Search' => 'staticresult',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'product_detail', 'product_detail',
[ [
'Product' => 'detail,hotelList', 'Product' => 'detail,hotelList',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'booking_link', 'booking_link',
[ [
'Product' => 'detail,hotelList', 'Product' => 'detail,hotelList',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'product_teasergroup', 'product_teasergroup',
[ [
'Product' => 'teasergroup', 'Product' => 'teasergroup',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'product_pricetable', 'product_pricetable',
[ [
'Product' => 'pricetable', 'Product' => 'pricetable',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'country_detail', 'country_detail',
[ [
'Country' => 'detail', 'Country' => 'detail',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'region_teasergroup', 'region_teasergroup',
[ [
'Region' => 'teasergroup', 'Region' => 'teasergroup',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'region_detail', 'region_detail',
[ [
'Region' => 'detail', 'Region' => 'detail',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'city_teasergroup', 'city_teasergroup',
[ [
'City' => 'teasergroup', 'City' => 'teasergroup',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'city_detail', 'city_detail',
[ [
'City' => 'detail', 'City' => 'detail',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'hotel_teasergroup', 'hotel_teasergroup',
[ [
'Hotel' => 'teasergroup', 'Hotel' => 'teasergroup',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'hotel_teasergroup_nodate', 'hotel_teasergroup_nodate',
[ [
'Hotel' => 'dateIndependentTeasergroup', 'Hotel' => 'dateIndependentTeasergroup',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'hotel_detail', 'hotel_detail',
[ [
'Hotel' => 'detail', 'Hotel' => 'detail',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'hotel_groups_price', 'hotel_groups_price',
[
'GroupsPrice' => 'index',
],
[ [
'GroupsPrice' => 'index', 'GroupsPrice' => 'index',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'hotel_detail_event', 'hotel_detail_event',
[ [
'Hotel' => 'detailEvent', 'Hotel' => 'detailEvent',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'faq', 'faq',
[ [
'Faq' => 'detail', 'Faq' => 'detail',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'concept_teasergroup', 'concept_teasergroup',
[ [
'Concept' => 'teasergroup', 'Concept' => 'teasergroup',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'concept_detail', 'concept_detail',
[ [
'Concept' => 'detail', 'Concept' => 'detail',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'snowreport_list', 'snowreport_list',
[ [
'Snowreport' => 'list', 'Snowreport' => 'list',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'teammembers', 'teammembers',
[ [
'Team' => 'list, show', 'Team' => 'list, show',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'newsletter', 'newsletter',
[
'Newsletter' => 'index',
],
[ [
'Newsletter' => 'index', 'Newsletter' => 'index',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'maps', 'maps',
[ [
'Map' => 'general', 'Map' => 'general',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'pricetable', 'pricetable',
[ [
'Pricetable' => 'event', 'Pricetable' => 'event',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'reseller', 'reseller',
[ [
@@ -264,25 +257,25 @@ $iconRegistry->registerIcon(
[ [
'Reseller' => 'list,copypaste', 'Reseller' => 'list,copypaste',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'watchlist', 'watchlist',
[ [
'Watchlist' => 'list', 'Watchlist' => 'list',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'password', 'password',
[ [
'Password' => 'index', 'Password' => 'index',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'ajax', 'ajax',
[ [
@@ -305,9 +298,9 @@ $iconRegistry->registerIcon(
'AjaxWatchlist' => 'list', 'AjaxWatchlist' => 'list',
'AjaxGroupsPrice' => 'processForm', 'AjaxGroupsPrice' => 'processForm',
] ]
); );
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.ep_products', 'EP.ep_products',
'ical', 'ical',
[ [
@@ -316,28 +309,32 @@ $iconRegistry->registerIcon(
[ [
'Ical' => 'contingents', 'Ical' => 'contingents',
] ]
); );
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['tt_content_drawItem']['ep_products'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['tt_content_drawItem']['ep_products'] =
\EP\EpProducts\Hook\PageLayoutView::class; \EP\EpProducts\Hooks\PageLayoutView::class;
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'gclid'; $GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'gclid';
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'ref'; $GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'ref';
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'pa'; $GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'pa';
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'tx_epproducts_ajax[months]'; $GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'tx_epproducts_ajax[months]';
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'tx_epproducts_ajax[month]'; $GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'tx_epproducts_ajax[month]';
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'tx_epproducts_ajax[year]'; $GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'tx_epproducts_ajax[year]';
$GLOBALS['TYPO3_CONF_VARS']['SYS']['routing']['aspects']['PassthroughMapper'] = $GLOBALS['TYPO3_CONF_VARS']['SYS']['routing']['aspects']['PassthroughMapper'] =
\EP\EpProducts\Routing\Aspect\PassthroughMapper::class; \EP\EpProducts\Routing\Aspect\PassthroughMapper::class;
$GLOBALS['TYPO3_CONF_VARS']['LOG']['EP']['EpProducts']['Controller']['writerConfiguration'] = [ $GLOBALS['TYPO3_CONF_VARS']['LOG']['EP']['EpProducts']['Controller']['writerConfiguration'] = [
\TYPO3\CMS\Core\Log\LogLevel::INFO => [ \TYPO3\CMS\Core\Log\LogLevel::INFO => [
TYPO3\CMS\Core\Log\Writer\DatabaseWriter::class => [ TYPO3\CMS\Core\Log\Writer\DatabaseWriter::class => [
'logTable' => 'tx_epproducts_log' 'logTable' => 'tx_epproducts_log'
], ],
], ],
]; ];
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/install']['update']['teamSlug'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/install']['update']['teamSlug'] =
\EP\EpProducts\Updates\TeamSlugUpdater::class; \EP\EpProducts\Updates\TeamSlugUpdater::class;
};
$boot();
unset($boot);
@@ -1,17 +1,16 @@
<html data-namespace-typo3-fluid="true" lang="en" <html data-namespace-typo3-fluid="true" lang="en"
xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers" xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers" xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers">
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers">
<f:layout name="Bare"/> <f:layout name="Bare"/>
<f:section name="Main"> <f:section name="Main">
<f:link.typolink class="teaserbox teaserbox--country" parameter="{country.detailPage}" title="{country.name}"> <f:link.typolink class="teaserbox teaserbox--country" parameter="{country.detailPage}" title="{country.name}">
<div class="teaserbox__image"> <div class="teaserbox__image">
<img class="teaserbox__flag" <svg class="teaserbox__flag">
src="{f:uri.image(src: '{ep:flagiconSource(country: country)}')}" <use href="#icon-flag-{country.code -> f:format.case(mode: 'lower')}"/>
alt="{country.name}"/> </svg>
<f:render partial="TeaserImage" arguments="{image: country.teaserImages.0}"/> <f:render partial="TeaserImage" arguments="{image: country.teaserImages.0}"/>
</div> </div>
<div class="teaserbox__main"> <div class="teaserbox__main">
+31 -27
View File
@@ -1,56 +1,60 @@
<?php <?php
defined('TYPO3_MODE') or die(); defined('TYPO3_MODE') or die();
$GLOBALS['TYPO3_CONF_VARS']['LOG']['TYPO3']['CMS']['deprecations']['writerConfiguration'][\TYPO3\CMS\Core\Log\LogLevel::NOTICE] = []; $boot = function () {
$GLOBALS['TYPO3_CONF_VARS']['LOG']['TYPO3']['CMS']['deprecations']['writerConfiguration'][\TYPO3\CMS\Core\Log\LogLevel::NOTICE] = [];
$GLOBALS['TYPO3_CONF_VARS']['LOG']['EP']['EpTheme']['Service']['BookingApiService']['writerConfiguration'] = [ $GLOBALS['TYPO3_CONF_VARS']['LOG']['EP']['EpTheme']['Service']['BookingApiService']['writerConfiguration'] = [
\TYPO3\CMS\Core\Log\LogLevel::INFO => [ \TYPO3\CMS\Core\Log\LogLevel::INFO => [
'TYPO3\\CMS\\Core\\Log\\Writer\\FileWriter' => [ 'TYPO3\\CMS\\Core\\Log\\Writer\\FileWriter' => [
'logFile' => \TYPO3\CMS\Core\Core\Environment::getVarPath() . '/log/bpn-api.log', 'logFile' => \TYPO3\CMS\Core\Core\Environment::getVarPath() . '/log/bpn-api.log',
], ],
], ],
]; ];
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass']['ep_theme'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass']['ep_theme'] =
\EP\EpTheme\Hook\Tcemain::class; \EP\EpTheme\Hooks\Tcemain::class;
$layout = 'cms/layout/class.tx_cms_layout.php'; $layout = 'cms/layout/class.tx_cms_layout.php';
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['teaser_country'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['teaser_country'] =
\EP\EpTheme\Hooks\PageLayoutView\TeaserCountryPreviewRenderer::class; \EP\EpTheme\Hooks\PageLayoutView\TeaserCountryPreviewRenderer::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['teaser_region'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['teaser_region'] =
\EP\EpTheme\Hooks\PageLayoutView\TeaserRegionPreviewRenderer::class; \EP\EpTheme\Hooks\PageLayoutView\TeaserRegionPreviewRenderer::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['teaser_city'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['teaser_city'] =
\EP\EpTheme\Hooks\PageLayoutView\TeaserCityPreviewRenderer::class; \EP\EpTheme\Hooks\PageLayoutView\TeaserCityPreviewRenderer::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['teaser_hotel'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['teaser_hotel'] =
\EP\EpTheme\Hooks\PageLayoutView\TeaserHotelPreviewRenderer::class; \EP\EpTheme\Hooks\PageLayoutView\TeaserHotelPreviewRenderer::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['teaser_concept'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['teaser_concept'] =
\EP\EpTheme\Hooks\PageLayoutView\TeaserConceptPreviewRenderer::class; \EP\EpTheme\Hooks\PageLayoutView\TeaserConceptPreviewRenderer::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['teaser_product'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['teaser_product'] =
\EP\EpTheme\Hooks\PageLayoutView\TeaserProductPreviewRenderer::class; \EP\EpTheme\Hooks\PageLayoutView\TeaserProductPreviewRenderer::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['teaser_booking_link'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['teaser_booking_link'] =
\EP\EpTheme\Hooks\PageLayoutView\TeaserBookingLinkPreviewRenderer::class; \EP\EpTheme\Hooks\PageLayoutView\TeaserBookingLinkPreviewRenderer::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['gmap'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['gmap'] =
\EP\EpTheme\Hooks\PageLayoutView\GmapPreviewRenderer::class; \EP\EpTheme\Hooks\PageLayoutView\GmapPreviewRenderer::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['disturber'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['disturber'] =
\EP\EpTheme\Hooks\PageLayoutView\DisturberPreviewRenderer::class; \EP\EpTheme\Hooks\PageLayoutView\DisturberPreviewRenderer::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['disrupter'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['disrupter'] =
\EP\EpTheme\Hooks\PageLayoutView\DisrupterPreviewRenderer::class; \EP\EpTheme\Hooks\PageLayoutView\DisrupterPreviewRenderer::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['lineup'] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][$layout]['tt_content_drawItem']['lineup'] =
\EP\EpTheme\Hooks\PageLayoutView\LineupPreviewRenderer::class; \EP\EpTheme\Hooks\PageLayoutView\LineupPreviewRenderer::class;
$GLOBALS['TYPO3_CONF_VARS']['FE']['addRootLineFields'] = 'tx_eptheme_slides'; $GLOBALS['TYPO3_CONF_VARS']['FE']['addRootLineFields'] = 'tx_eptheme_slides';
$GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['default'] = 'EXT:ep_theme/Configuration/RTE/Default.yaml'; $GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['default'] = 'EXT:ep_theme/Configuration/RTE/Default.yaml';
$GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['ep-reisen'] = 'EXT:ep_theme/Configuration/RTE/Default.yaml'; $GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['ep-reisen'] = 'EXT:ep_theme/Configuration/RTE/Default.yaml';
$GLOBALS['TYPO3_CONF_VARS']['SYS']['fluid']['namespaces']['ep'] = ['EP\\EpTheme\\ViewHelpers']; $GLOBALS['TYPO3_CONF_VARS']['SYS']['fluid']['namespaces']['ep'] = ['EP\\EpTheme\\ViewHelpers'];
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['layoutRootPaths'][700] = 'EXT:ep_theme/Resources/Private/Layouts/Email/'; $GLOBALS['TYPO3_CONF_VARS']['MAIL']['layoutRootPaths'][700] = 'EXT:ep_theme/Resources/Private/Layouts/Email/';
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['templateRootPaths'][700] = 'EXT:ep_theme/Resources/Private/Templates/Email/'; $GLOBALS['TYPO3_CONF_VARS']['MAIL']['templateRootPaths'][700] = 'EXT:ep_theme/Resources/Private/Templates/Email/';
$metaTagManagerRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\MetaTag\MetaTagManagerRegistry::class); $metaTagManagerRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\MetaTag\MetaTagManagerRegistry::class);
$metaTagManagerRegistry->registerManager( $metaTagManagerRegistry->registerManager(
'ep_opengraph', 'ep_opengraph',
\EP\EpTheme\MetaTag\OpenGraphMetaTagManager::class \EP\EpTheme\MetaTag\OpenGraphMetaTagManager::class
); );
};
$boot();
unset($boot);