refactor: apply TYPO3 13 Rector and Fractor migrations

Automated migrations from rector.php and fractor.php (TCA, Extbase
controllers and annotations, ViewHelpers, QueryBuilder, FlexForms,
TypoScript conditions).

Plugins stay list_type plugins: Rector switched them to content
element types, which needs a tt_content migration. That is deferred to
the TYPO3 14 step, where list_type is removed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
frommeandClaude Opus 5.5 committed 2026-10-21 14:14:38 +02:00
1 parent 1b958a6084
commit 41b9302d9b
119 files changed
+2211 -2581

No files matched your search

@@ -19,9 +19,7 @@ class ProductRatingProcessor implements DataProcessorInterface
$qb = $this->getDbConnection()->createQueryBuilder();
$result = $qb
->selectLiteral('SUM(product.rating_votes_count) as totalCount', 'SUM(product.rating_average) as totalAverage')
->from('tx_epproducts_domain_model_product', 'product')
->execute()
->selectLiteral('SUM(product.rating_votes_count) as totalCount', 'SUM(product.rating_average) as totalAverage')->from('tx_epproducts_domain_model_product', 'product')->executeQuery()
->fetchAssociative()
;
@@ -30,9 +28,7 @@ class ProductRatingProcessor implements DataProcessorInterface
$result = $qb
->selectLiteral('COUNT(*) as ratedCount')
->from('tx_epproducts_domain_model_product', 'product')
->where($qb->expr()->gt('product.rating_average', 0))
->execute()
->from('tx_epproducts_domain_model_product', 'product')->where($qb->expr()->gt('product.rating_average', 0))->executeQuery()
->fetchAssociative()
;
@@ -101,7 +101,7 @@ class SliderProcessor implements DataProcessorInterface
*/
protected function getParentPageWithSlides()
{
$rootlineUtility = new RootlineUtility($GLOBALS['TSFE']->id);
$rootlineUtility = new RootlineUtility($GLOBALS['TYPO3_REQUEST']->getAttribute('frontend.page.information')->getId());
$rootline = $rootlineUtility->get();
foreach ($rootline as $parentPage) {
@@ -26,8 +26,10 @@ namespace EP\EpTheme\DataProcessing;
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use EP\EpProducts\Domain\Model\FilterSettings;
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;
@@ -60,37 +62,37 @@ class TeaserProcessor implements DataProcessorInterface
$objectManager = GeneralUtility::makeInstance(ObjectManager::class);
if ((int) $processedData['data']['tx_eptheme_context_city'] > 0) {
/** @var \EP\EpProducts\Domain\Repository\CityRepository $repository */
/** @var CityRepository $repository */
$repository = $objectManager->get(CityRepository::class);
/** @var \EP\EpProducts\Domain\Model\City $city */
/** @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 \EP\EpProducts\Domain\Repository\RegionRepository $repository */
/** @var RegionRepository $repository */
$repository = $objectManager->get(RegionRepository::class);
/** @var \EP\EpProducts\Domain\Model\Region $region */
/** @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 \EP\EpProducts\Domain\Repository\CountryRepository $repository */
/** @var CountryRepository $repository */
$repository = $objectManager->get(CountryRepository::class);
/** @var \EP\EpProducts\Domain\Model\Country $country */
/** @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 \EP\EpProducts\Service\HotelDataService $service */
/** @var HotelDataService $service */
$service = $objectManager->get(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 \EP\EpProducts\Domain\Repository\ConceptRepository $repository */
/** @var ConceptRepository $repository */
$repository = $objectManager->get(ConceptRepository::class);
/** @var \EP\EpProducts\Domain\Model\Concept $concept */
/** @var Concept $concept */
$concept = $repository->findByIdentifier($processedData['data']['tx_eptheme_context_concept']);
$processedData['concept'] = $concept;
}
@@ -116,13 +118,13 @@ class TeaserProcessor implements DataProcessorInterface
$filterSettings['dateTo'] = $dateTo->format('Y-m-d');
}
/** @var \EP\EpProducts\Service\ProductDataService $productDataService */
/** @var ProductDataService $productDataService */
$productDataService = $objectManager->get(ProductDataService::class);
$processedData['teaser'] = $productDataService->getTeaser($filterSettings);
$processedData['teaser']['forceHotelUid'] = $hotelUid;
}
$processedData['referringPageUid'] = $GLOBALS['TSFE']->id;
$processedData['referringPageUid'] = $GLOBALS['TYPO3_REQUEST']->getAttribute('frontend.page.information')->getId();
return $processedData;
}
@@ -9,12 +9,12 @@ class Page extends AbstractEntity
/**
* @var int
*/
protected $uid;
protected ?int $uid = null;
/**
* @var int
*/
protected $pid;
protected ?int $pid = null;
/**
* @var bool
@@ -55,7 +55,7 @@ class OpenGraphMetaTagManager extends \TYPO3\CMS\Seo\MetaTag\OpenGraphMetaTagMan
*/
protected function getPageWithImage()
{
$rootLineUtility = new RootlineUtility($GLOBALS['TSFE']->id);
$rootLineUtility = new RootlineUtility($GLOBALS['TYPO3_REQUEST']->getAttribute('frontend.page.information')->getId());
$rootLine = $rootLineUtility->get();
foreach ($rootLine as $page) {
@@ -29,12 +29,9 @@ namespace EP\EpTheme\ViewHelpers;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
class ContainerViewHelper extends AbstractViewHelper
{
use CompileWithRenderStatic;
/**
* @var int[]
*/
@@ -70,48 +67,36 @@ class ContainerViewHelper extends AbstractViewHelper
* @param RenderingContextInterface $renderingContext
* @return mixed
*/
public static function renderStatic(
array $arguments,
\Closure $renderChildrenClosure,
RenderingContextInterface $renderingContext
) {
$content = $renderChildrenClosure();
public function render()
{
$content = $this->renderChildren();
if ($content === null) {
$content = $arguments['content'];
$content = $this->arguments['content'];
}
$classes = [];
if (\in_array($arguments['data']['colPos'], static::$columnsWithoutContainers, false)) {
if (\in_array($this->arguments['data']['colPos'], static::$columnsWithoutContainers, false)) {
$classes[] = 'container';
}
if ($arguments['cssClasses'] !== null) {
$classes[] = $arguments['cssClasses'];
if ($this->arguments['cssClasses'] !== null) {
$classes[] = $this->arguments['cssClasses'];
}
if (!empty($arguments['data']['space_before_class'])) {
$scaleTop = static::$scale[$arguments['data']['space_before_class']];
if (!empty($this->arguments['data']['space_before_class'])) {
$scaleTop = static::$scale[$this->arguments['data']['space_before_class']];
$classes[] = sprintf('pt-%d', $scaleTop);
}
if (!empty($arguments['data']['space_after_class'])) {
$scaleBottom = static::$scale[$arguments['data']['space_after_class']];
if (!empty($this->arguments['data']['space_after_class'])) {
$scaleBottom = static::$scale[$this->arguments['data']['space_after_class']];
$classes[] = sprintf('pb-%d', $scaleBottom);
}
if ('default' !== $arguments['data']['frame_class']) {
$classes[] = $arguments['data']['frame_class'];
if ('default' !== $this->arguments['data']['frame_class']) {
$classes[] = $this->arguments['data']['frame_class'];
}
if (count($classes) > 0) {
return sprintf('<div class="%s"%s>%s</div>', implode(' ', $classes), $arguments['rteContent'] ? ' data-rte-content' : '', $content);
return sprintf('<div class="%s"%s>%s</div>', implode(' ', $classes), $this->arguments['rteContent'] ? ' data-rte-content' : '', $content);
}
if ($arguments['rteContent']) {
if ($this->arguments['rteContent']) {
return sprintf('<div data-rte-content>%s</div>', $content);
}
return $content;
}
}
@@ -30,12 +30,9 @@ namespace EP\EpTheme\ViewHelpers;
use EP\EpProducts\Service\FilterSettingsEncoder;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
class FilterSettingsEncoderViewHelper extends AbstractViewHelper
{
use CompileWithRenderStatic;
/**
* @var bool
*/
@@ -54,22 +51,16 @@ class FilterSettingsEncoderViewHelper extends AbstractViewHelper
* @param RenderingContextInterface $renderingContext
* @return mixed
*/
public static function renderStatic(
array $arguments,
\Closure $renderChildrenClosure,
RenderingContextInterface $renderingContext
)
public function render()
{
$argument = $renderChildrenClosure();
$argument = $this->renderChildren();
if ($argument === null) {
$argument = $arguments['argument'];
$argument = $this->arguments['argument'];
}
if ($argument === null) {
return '';
}
$encoder = new FilterSettingsEncoder();
return $encoder->encode($argument);
}
}
@@ -31,12 +31,9 @@ use EP\EpProducts\Domain\Model\Hotel;
use EP\EpProducts\Domain\Model\Region;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
class GmapsUrlViewHelper extends AbstractViewHelper
{
use CompileWithRenderStatic;
/**
* @var bool
*/
@@ -60,14 +57,10 @@ class GmapsUrlViewHelper extends AbstractViewHelper
* @param RenderingContextInterface $renderingContext
* @return mixed
*/
public static function renderStatic(
array $arguments,
\Closure $renderChildrenClosure,
RenderingContextInterface $renderingContext
)
public function render()
{
$hotel = $arguments['hotel'];
$region = $arguments['region'];
$hotel = $this->arguments['hotel'];
$region = $this->arguments['region'];
if ($hotel !== null && $hotel->getLatitude() && $hotel->getLongitude()) {
$source = $hotel;
} elseif ($hotel !== null && $hotel->getRegion()->getLatitude() && $hotel->getRegion()->getLongitude()) {
@@ -77,7 +70,7 @@ class GmapsUrlViewHelper extends AbstractViewHelper
} else {
return 'http://www.google.de/maps';
}
return sprintf(static::URLBASE, $source->getLatitude(), $source->getLongitude(), $arguments['type'], $arguments['zoom']);
return sprintf(static::URLBASE, $source->getLatitude(), $source->getLongitude(), $this->arguments['type'], $this->arguments['zoom']);
}
}
@@ -16,8 +16,6 @@ class IconViewHelper extends AbstractTagBasedViewHelper
public function initializeArguments()
{
parent::initializeArguments();
$this->registerUniversalTagAttributes();
$this->registerArgument('icon', 'string', 'Icon name', true);
}
@@ -6,23 +6,17 @@ use EP\EpProducts\Service\MyEpUrlResolverService;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
class MyEpUrlViewHelper extends AbstractViewHelper
{
use CompileWithRenderStatic;
/**
* @param array $arguments
* @param \Closure $renderChildrenClosure
* @param RenderingContextInterface $renderingContext
* @return string
*/
public static function renderStatic(
array $arguments,
\Closure $renderChildrenClosure,
RenderingContextInterface $renderingContext
): string {
public function render(): string
{
return GeneralUtility::makeInstance(MyEpUrlResolverService::class)->resolve();
}
}
@@ -29,12 +29,9 @@ namespace EP\EpTheme\ViewHelpers;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
class NightsOptionsViewHelper extends AbstractViewHelper
{
use CompileWithRenderStatic;
public function initializeArguments()
{
parent::initializeArguments();
@@ -49,16 +46,12 @@ class NightsOptionsViewHelper extends AbstractViewHelper
* @param RenderingContextInterface $renderingContext
* @return mixed
*/
public static function renderStatic(
array $arguments,
\Closure $renderChildrenClosure,
RenderingContextInterface $renderingContext
)
public function render()
{
if ($arguments['daytrip']) {
if ($this->arguments['daytrip']) {
return 'Tageweise buchbar';
}
$options = $arguments['options'];
$options = $this->arguments['options'];
if ($options === null) {
return '';
}
@@ -74,7 +67,6 @@ class NightsOptionsViewHelper extends AbstractViewHelper
$output = $lastOption;
}
$output .= (int) $lastOption > 1 ? ' Nächte' : ' Nacht';
return $output;
}
@@ -30,12 +30,9 @@ namespace EP\EpTheme\ViewHelpers;
use EP\EpProducts\Domain\Model\Product;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
class RatingViewHelper extends AbstractViewHelper
{
use CompileWithRenderStatic;
/**
* @var bool
*/
@@ -54,22 +51,17 @@ class RatingViewHelper extends AbstractViewHelper
* @param RenderingContextInterface $renderingContext
* @return mixed
*/
public static function renderStatic(
array $arguments,
\Closure $renderChildrenClosure,
RenderingContextInterface $renderingContext
)
public function render()
{
$product = $renderChildrenClosure();
$product = $this->renderChildren();
if ($product === null) {
$product = $arguments['product'];
$product = $this->arguments['product'];
}
$ratingAverage = $product->getRatingAverage();
$ratingVotesCount = $product->getRatingVotesCount();
$fullStars = floor($ratingAverage);
$halfStar = ($ratingAverage - $fullStars) > 0;
$ratingAverageLabel = number_format($ratingAverage, 1, ',', '.');
$content = '';
for ($i = 1; $i <= $fullStars; $i++)
{
@@ -79,7 +71,6 @@ class RatingViewHelper extends AbstractViewHelper
$content .= '<i class="fa fa-star-half-o" aria-hidden="true"></i>';
}
$content .= sprintf('%s Sterne (%d)', $ratingAverageLabel, $ratingVotesCount);
return $content;
}
@@ -29,12 +29,9 @@ namespace EP\EpTheme\ViewHelpers;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
class ThemeClassesViewHelper extends AbstractViewHelper
{
use CompileWithRenderStatic;
public function initializeArguments()
{
parent::initializeArguments();
@@ -49,18 +46,12 @@ class ThemeClassesViewHelper extends AbstractViewHelper
* @param RenderingContextInterface $renderingContext
* @return mixed
*/
public static function renderStatic(
array $arguments,
\Closure $renderChildrenClosure,
RenderingContextInterface $renderingContext
)
public function render()
{
$themeKey = $arguments['key'];
if (!array_key_exists($themeKey, $arguments['classes'])) {
$themeKey = $this->arguments['key'];
if (!array_key_exists($themeKey, $this->arguments['classes'])) {
return '';
}
return $arguments['classes'][$themeKey];
return $this->arguments['classes'][$themeKey];
}
}
@@ -70,7 +70,7 @@ class AjaxViewHelper extends ActionViewHelper
// Use root page uid as target unless provided
if ($arguments['pageUid'] === null) {
$rootlineUtility = new RootlineUtility($GLOBALS['TSFE']->id);
$rootlineUtility = new RootlineUtility($GLOBALS['TYPO3_REQUEST']->getAttribute('frontend.page.information')->getId());
$rootline = $rootlineUtility->get();
$rootPage = array_pop($rootline);
$arguments['pageUid'] = $rootPage['uid'];
@@ -29,12 +29,9 @@ namespace EP\EpTheme\ViewHelpers\Uri;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
class ProductViewHelper extends AbstractViewHelper
{
use CompileWithRenderStatic;
public function initializeArguments()
{
parent::initializeArguments();
@@ -53,25 +50,21 @@ class ProductViewHelper extends AbstractViewHelper
* @param RenderingContextInterface $renderingContext
* @return mixed
*/
public static function renderStatic(
array $arguments,
\Closure $renderChildrenClosure,
RenderingContextInterface $renderingContext
) {
$product = $arguments['product'];
$hotel = $arguments['hotel'];
if ($arguments['forceHotelUid']) {
public function render()
{
$product = $this->arguments['product'];
$hotel = $this->arguments['hotel'];
if ($this->arguments['forceHotelUid']) {
// Product detail page with forced hotel
$linkArguments = [
'product' => is_array($product) ? $product['uid'] : $product,
'hotel' => is_array($hotel) ? $hotel['uid'] : $hotel,
];
} elseif ($arguments['dateFrom'] || $arguments['dateTo']) {
} elseif ($this->arguments['dateFrom'] || $this->arguments['dateTo']) {
// Product detail page with forced date range
$linkArguments = [
'dateFrom' => $arguments['dateFrom'],
'dateTo' => $arguments['dateTo'],
'dateFrom' => $this->arguments['dateFrom'],
'dateTo' => $this->arguments['dateTo'],
];
} else {
// Default product detail page by product uid
@@ -79,24 +72,20 @@ class ProductViewHelper extends AbstractViewHelper
'product' => is_array($product) ? $product['uid'] : $product,
];
}
$targetPageUid = is_array($product) ? (int)$product['detailPage'] : $product->getDetailPage();
$uri = $renderingContext
$uri = $this->renderingContext
->getControllerContext()
->getUriBuilder()
->reset()
->setTargetPageUid($targetPageUid)
->uriFor('detail', $linkArguments, 'Product', 'epproducts', 'product_detail')
;
if ($arguments['ref']) {
$referringPageUri = urlencode($arguments['ref']);
if ($this->arguments['ref']) {
$referringPageUri = urlencode($this->arguments['ref']);
$hasQuery = null !== parse_url($uri, PHP_URL_QUERY);
$separator = $hasQuery ? '&' : '?';
$uri .= $separator . 'ref=' . $referringPageUri;
}
return $uri;
}
@@ -29,12 +29,9 @@ namespace EP\EpTheme\ViewHelpers\Uri;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
class VideoViewHelper extends AbstractViewHelper
{
use CompileWithRenderStatic;
/**
* @var bool
*/
@@ -54,21 +51,16 @@ class VideoViewHelper extends AbstractViewHelper
* @param RenderingContextInterface $renderingContext
* @return mixed
*/
public static function renderStatic(
array $arguments,
\Closure $renderChildrenClosure,
RenderingContextInterface $renderingContext
)
public function render()
{
// YouTube
if ((int) $arguments['layout'] === 0) {
return $arguments['value'] . '?rel=0&amp;controls=0&amp;showinfo=0';
if ((int) $this->arguments['layout'] === 0) {
return $this->arguments['value'] . '?rel=0&amp;controls=0&amp;showinfo=0';
}
// Vimeo
if ((int) $arguments['layout'] === 1) {
return sprintf('https://player.vimeo.com/video/%d?html5=1', $arguments['value']);
if ((int) $this->arguments['layout'] === 1) {
return sprintf('https://player.vimeo.com/video/%d?html5=1', $this->arguments['value']);
}
return '';
}
@@ -2,8 +2,10 @@
declare(strict_types = 1);
use EP\EpTheme\Domain\Model\Page;
return [
\EP\EpTheme\Domain\Model\Page::class => [
Page::class => [
'tableName' => 'pages',
],
];
@@ -1,6 +1,8 @@
<?php
defined('TYPO3_MODE') or die();
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
defined('TYPO3') or die();
call_user_func(function() {
@@ -29,7 +31,7 @@ call_user_func(function() {
'foreign_table' => 'tx_epproducts_domain_model_country',
'foreign_table_where' => 'ORDER BY name',
'items' => [
['Keine Zuordnung', 0],
['label' => 'Keine Zuordnung', 'value' => 0],
],
'minitems' => 0,
'maxitems' => 1,
@@ -45,7 +47,7 @@ call_user_func(function() {
'foreign_table' => 'tx_epproducts_domain_model_region',
'foreign_table_where' => 'ORDER BY name',
'items' => [
['Keine Zuordnung', 0],
['label' => 'Keine Zuordnung', 'value' => 0],
],
'minitems' => 0,
'maxitems' => 1,
@@ -113,7 +115,7 @@ call_user_func(function() {
'foreign_table' => 'tx_epproducts_domain_model_badge',
'foreign_table_where' => 'ORDER BY title',
'items' => [
['Keine Zuordnung', 0],
['label' => 'Keine Zuordnung', 'value' => 0],
],
'minitems' => 0,
'maxitems' => 1,
@@ -121,12 +123,12 @@ call_user_func(function() {
],
];
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
ExtensionManagementUtility::addTCAcolumns(
'pages',
$temporaryColumns
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
ExtensionManagementUtility::addToAllTCAtypes(
'pages',
'--div--;Kontext,
tx_eptheme_context_pacode,tx_eptheme_context_country,tx_eptheme_context_region,
@@ -138,7 +140,7 @@ call_user_func(function() {
'1,4'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
ExtensionManagementUtility::registerPageTSConfigFile(
'ep_theme',
'Configuration/TSconfig/Page/Main.tsconfig',
'EP Theme'
@@ -1,5 +1,7 @@
<?php
if (!defined('TYPO3_MODE')) die ('Access denied.');
use TYPO3\CMS\Core\Utility\ArrayUtility;
if (!defined('TYPO3')) die ('Access denied.');
$tca = [
'ctrl' => [
@@ -7,4 +9,4 @@ $tca = [
],
];
\TYPO3\CMS\Core\Utility\ArrayUtility::mergeRecursiveWithOverrule($GLOBALS['TCA']['sys_file'], $tca);
ArrayUtility::mergeRecursiveWithOverrule($GLOBALS['TCA']['sys_file'], $tca);
@@ -1,10 +1,12 @@
<?php
defined('TYPO3_MODE') or die();
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
defined('TYPO3') or die();
call_user_func(function () {
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
ExtensionManagementUtility::addStaticFile(
'ep_theme',
'Configuration/TypoScript',
'EP Theme'
@@ -1,6 +1,8 @@
<?php
defined('TYPO3_MODE') or die();
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
defined('TYPO3') or die();
call_user_func(function () {
@@ -12,7 +14,8 @@ call_user_func(function () {
'type' => 'input',
'default' => 'Details',
'size' => 30,
'eval' => 'trim,required'
'eval' => 'trim',
'required' => true
],
],
'tx_eptheme_context_country' => [
@@ -24,7 +27,7 @@ call_user_func(function () {
'foreign_table' => 'tx_epproducts_domain_model_country',
'foreign_table_where' => 'ORDER BY name ASC',
'items' => [
['Keine Zuordnung', 0],
['label' => 'Keine Zuordnung', 'value' => 0],
],
'default' => 0,
'minitems' => 0,
@@ -40,7 +43,7 @@ call_user_func(function () {
'foreign_table' => 'tx_epproducts_domain_model_region',
'foreign_table_where' => 'ORDER BY name ASC',
'items' => [
['Keine Zuordnung', 0],
['label' => 'Keine Zuordnung', 'value' => 0],
],
'default' => 0,
'minitems' => 0,
@@ -56,7 +59,7 @@ call_user_func(function () {
'foreign_table' => 'tx_epproducts_domain_model_city',
'foreign_table_where' => 'ORDER BY name ASC',
'items' => [
['Keine Zuordnung', 0],
['label' => 'Keine Zuordnung', 'value' => 0],
],
'default' => 0,
'minitems' => 0,
@@ -72,7 +75,7 @@ call_user_func(function () {
'foreign_table' => 'tx_epproducts_domain_model_hotel',
'foreign_table_where' => 'ORDER BY name ASC',
'items' => [
['Keine Zuordnung', 0],
['label' => 'Keine Zuordnung', 'value' => 0],
],
'default' => 0,
'minitems' => 0,
@@ -88,7 +91,7 @@ call_user_func(function () {
'foreign_table' => 'tx_epproducts_domain_model_concept',
'foreign_table_where' => 'ORDER BY name ASC',
'items' => [
['Keine Zuordnung', 0],
['label' => 'Keine Zuordnung', 'value' => 0],
],
'default' => 0,
'minitems' => 0,
@@ -104,7 +107,7 @@ call_user_func(function () {
'foreign_table' => 'tx_epproducts_domain_model_product',
'foreign_table_where' => 'ORDER BY name_internal, name ASC',
'items' => [
['Keine Zuordnung', 0],
['label' => 'Keine Zuordnung', 'value' => 0],
],
'default' => 0,
'minitems' => 0,
@@ -115,20 +118,18 @@ call_user_func(function () {
'exclude' => 0,
'label' => 'LLL:EXT:ep_theme/Resources/Private/Language/locallang.xlf:tx_eptheme_context.date_from',
'config' => [
'type' => 'input',
'type' => 'datetime',
'size' => 12,
'eval' => 'date,int',
'renderType' => 'inputDateTime',
'format' => 'date',
]
],
'tx_eptheme_context_date_to' => [
'exclude' => 0,
'label' => 'LLL:EXT:ep_theme/Resources/Private/Language/locallang.xlf:tx_eptheme_context.date_to',
'config' => [
'type' => 'input',
'type' => 'datetime',
'size' => 12,
'eval' => 'date,int',
'renderType' => 'inputDateTime',
'format' => 'date',
]
],
'tx_eptheme_background' => [
@@ -139,18 +140,18 @@ call_user_func(function () {
'renderType' => 'selectSingle',
'default' => 0,
'items' => [
[ 'ohne', 0 ],
[ 'oben', 1 ],
[ 'unten', 2 ],
[ 'oben und unten', 3 ],
[ 'label' => 'ohne', 'value' => 0 ],
[ 'label' => 'oben', 'value' => 1 ],
[ 'label' => 'unten', 'value' => 2 ],
[ 'label' => 'oben und unten', 'value' => 3 ],
],
],
],
];
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_content', $ttContentColumns);
ExtensionManagementUtility::addTCAcolumns('tt_content', $ttContentColumns);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
ExtensionManagementUtility::addFieldsToPalette(
'tt_content',
'header',
'--linebreak--,
@@ -1,23 +1,25 @@
<?php
defined('TYPO3_MODE') or die();
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
defined('TYPO3') or die();
call_user_func(function() {
$frontendLanguageFilePrefix = 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
ExtensionManagementUtility::addTcaSelectItem(
'tt_content',
'CType',
[
'Button',
'button',
'content-image'
'label' => 'Button',
'value' => 'button',
'icon' => 'content-image'
],
'ytvideo',
'after'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
ExtensionManagementUtility::addFieldsToPalette(
'tt_content',
'tx_eptheme_button',
'header,header_link'
@@ -1,8 +1,12 @@
<?php
use TYPO3\CMS\Core\Utility\GeneralUtility;
use B13\Container\Tca\Registry;
use B13\Container\Tca\ContainerConfiguration;
call_user_func(function () {
\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer(
new \B13\Container\Tca\ContainerConfiguration(
GeneralUtility::makeInstance(Registry::class)->configureContainer(
new ContainerConfiguration(
'ep_container_quarters',
'Vierspalter',
'25/25/25/25 Aufteilung mit groß/klein Umschaltung',
@@ -14,8 +18,8 @@ call_user_func(function () {
)
);
\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer(
new \B13\Container\Tca\ContainerConfiguration(
GeneralUtility::makeInstance(Registry::class)->configureContainer(
new ContainerConfiguration(
'ep_container_teasergroup',
'Dreispalter',
'33/33/33 Aufteilung mit groß/klein Umschaltung',
@@ -1,101 +1,103 @@
<?php
defined('TYPO3_MODE') or die();
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
defined('TYPO3') or die();
call_user_func(function() {
$frontendLanguageFilePrefix = 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
ExtensionManagementUtility::addTcaSelectItem(
'tt_content',
'CType',
[
'Teaser allgemein',
'teaser',
'content-image'
'label' => 'Teaser allgemein',
'value' => 'teaser',
'icon' => 'content-image'
],
'textmedia',
'after'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
ExtensionManagementUtility::addTcaSelectItem(
'tt_content',
'CType',
[
'Teaser Land',
'teaser_country',
'content-image'
'label' => 'Teaser Land',
'value' => 'teaser_country',
'icon' => 'content-image'
],
'teaser',
'after'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
ExtensionManagementUtility::addTcaSelectItem(
'tt_content',
'CType',
[
'Teaser Gebiet',
'teaser_region',
'content-image'
'label' => 'Teaser Gebiet',
'value' => 'teaser_region',
'icon' => 'content-image'
],
'teaser_country',
'after'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
ExtensionManagementUtility::addTcaSelectItem(
'tt_content',
'CType',
[
'Teaser Ort',
'teaser_city',
'content-image'
'label' => 'Teaser Ort',
'value' => 'teaser_city',
'icon' => 'content-image'
],
'teaser_region',
'after'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
ExtensionManagementUtility::addTcaSelectItem(
'tt_content',
'CType',
[
'Teaser Hotel',
'teaser_hotel',
'content-image'
'label' => 'Teaser Hotel',
'value' => 'teaser_hotel',
'icon' => 'content-image'
],
'teaser_city',
'after'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
ExtensionManagementUtility::addTcaSelectItem(
'tt_content',
'CType',
[
'Teaser Konzept',
'teaser_concept',
'content-image'
'label' => 'Teaser Konzept',
'value' => 'teaser_concept',
'icon' => 'content-image'
],
'teaser_hotel',
'after'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
ExtensionManagementUtility::addTcaSelectItem(
'tt_content',
'CType',
[
'Teaser Produkt',
'teaser_product',
'content-image'
'label' => 'Teaser Produkt',
'value' => 'teaser_product',
'icon' => 'content-image'
],
'teaser_concept',
'after'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
ExtensionManagementUtility::addTcaSelectItem(
'tt_content',
'CType',
[
'Teaser Buchungslink',
'teaser_booking_link',
'content-image'
'label' => 'Teaser Buchungslink',
'value' => 'teaser_booking_link',
'icon' => 'content-image'
],
'teaser_concept',
'after'
@@ -130,7 +132,11 @@ call_user_func(function() {
],
'assets' => [
'label' => 'Teaserbild',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig('assets', [
'config' => [
// TODO: Important! Verify that the fieldname value in foreign table either matches the column name
// or is set properly in the following TCA, see https://docs.typo3.org/permalink/t3tca:confval-inline-foreign-match-fields
'type' => 'file',
'allowed' => $GLOBALS['TYPO3_CONF_VARS']['SYS']['mediafile_ext'],
'appearance' => [
'createNewRelationLinkTitle' => 'Hinzufügen'
],
@@ -163,7 +169,7 @@ call_user_func(function() {
],
'maxitems' => 1,
'minitems' => 0,
], $GLOBALS['TYPO3_CONF_VARS']['SYS']['mediafile_ext'])
]
]
]
];
@@ -0,0 +1,3 @@
<?php
$GLOBALS['TCA']['tx_eptheme_domain_model_badge']['ctrl']['security']['ignorePageTypeRestriction'] = true;
@@ -0,0 +1,3 @@
<?php
$GLOBALS['TCA']['tx_eptheme_domain_model_slide']['ctrl']['security']['ignorePageTypeRestriction'] = true;
@@ -1,4 +1,7 @@
<?php
use TYPO3\CMS\Core\Resource\FileType;
return [
'ctrl' => [
'title' => 'Slide',
@@ -6,7 +9,6 @@ return [
'label' => 'headline',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'cruser_id' => 'cruser_id',
'dividers2tabs' => true,
'versioningWS' => true,
'hideTable' => true,
@@ -37,17 +39,7 @@ return [
'sys_language_uid' => [
'exclude' => 0,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
'config' => [
'type' => 'select',
'default' => 0,
'renderType' => 'selectSingle',
'foreign_table' => 'sys_language',
'foreign_table_where' => 'ORDER BY sys_language.title',
'items' => [
['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages', -1],
['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.default_value', 0]
],
],
'config' => ['type' => 'language'],
],
'l10n_parent' => [
'displayCond' => 'FIELD:sys_language_uid:>:0',
@@ -57,7 +49,7 @@ return [
'default' => 0,
'renderType' => 'selectSingle',
'items' => [
['', 0],
['label' => '', 'value' => 0],
],
'foreign_table' => 'tx_eptheme_domain_model_slide',
'foreign_table_where' => 'AND tx_eptheme_domain_model_slide.pid=###CURRENT_PID### AND tx_eptheme_domain_model_slide.sys_language_uid IN (-1,0)',
@@ -89,30 +81,26 @@ return [
'exclude' => 0,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.starttime',
'config' => [
'type' => 'input',
'type' => 'datetime',
'size' => 13,
'eval' => 'datetime',
'checkbox' => 0,
'default' => 0,
'behaviour' => [
'allowLanguageSynchronization' => true,
],
'renderType' => 'inputDateTime',
],
],
'endtime' => [
'exclude' => 0,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.endtime',
'config' => [
'type' => 'input',
'type' => 'datetime',
'size' => 13,
'eval' => 'datetime',
'checkbox' => 0,
'default' => 0,
'behaviour' => [
'allowLanguageSynchronization' => true,
],
'renderType' => 'inputDateTime',
],
],
'sorting' => [
@@ -159,73 +147,73 @@ return [
'exclude' => 0,
'label' => 'LLL:EXT:ep_theme/Resources/Private/Language/locallang_db.xlf:tx_eptheme_domain_model_slide.page_uid',
'config' => [
'type' => 'input',
'type' => 'link',
'size' => 20,
'renderType' => 'inputLink',
]
],
'image' => [
'exclude' => 0,
'label' => 'Bild',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'images',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference',
'fileUploadAllowed' => false,
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
'config' => [
// TODO: Important! Verify that the fieldname value in foreign table either matches the column name
// or is set properly in the following TCA, see https://docs.typo3.org/permalink/t3tca:confval-inline-foreign-match-fields
'type' => 'file',
'allowed' => 'jpg,jpeg',
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference',
'fileUploadAllowed' => false,
],
'overrideChildTca' => [
'types' => [
FileType::IMAGE->value => [
'showitem' => '
--palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette'
],
],
'columns' => [
'crop' => [
'config' => [
'cropVariants' => [
'default' => [
'title' => 'Alle Geräte',
'allowedAspectRatios' => [
'contentSlider' => [
'title' => 'Content Slider/Galerie',
'value' => 1.59,
],
'contentSliderProduct' => [
'title' => 'Content Slider/Galerie Produkttexte',
'value' => 1.79069767,
],
'sliderProductHeader' => [
'title' => 'Slider Produkt-Header',
'value' => 1.625,
],
'sliderPageHeader' => [
'title' => 'Slider Seiten-Header',
'value' => 3.805,
],
'sliderPageHeaderHome' => [
'title' => 'Slider Seiten-Header Startseite',
'value' => 1370 / 585,
],
'free' => [
'title' => 'Frei',
'value' => 'NaN',
],
],
'columns' => [
'crop' => [
'config' => [
'cropVariants' => [
'default' => [
'title' => 'Alle Geräte',
'allowedAspectRatios' => [
'contentSlider' => [
'title' => 'Content Slider/Galerie',
'value' => 1.59,
],
'contentSliderProduct' => [
'title' => 'Content Slider/Galerie Produkttexte',
'value' => 1.79069767,
],
'sliderProductHeader' => [
'title' => 'Slider Produkt-Header',
'value' => 1.625,
],
'sliderPageHeader' => [
'title' => 'Slider Seiten-Header',
'value' => 3.805,
],
'sliderPageHeaderHome' => [
'title' => 'Slider Seiten-Header Startseite',
'value' => 1370 / 585,
],
'free' => [
'title' => 'Frei',
'value' => 'NaN',
],
],
'mobile' => [
'title' => 'Mobile',
'allowedAspectRatios' => [
'sliderPageHeader' => [
'title' => 'Slider Seiten-Header',
'value' => 1,
],
'free' => [
'title' => 'Frei',
'value' => 'NaN',
],
],
'mobile' => [
'title' => 'Mobile',
'allowedAspectRatios' => [
'sliderPageHeader' => [
'title' => 'Slider Seiten-Header',
'value' => 1,
],
'free' => [
'title' => 'Frei',
'value' => 'NaN',
],
],
],
@@ -233,11 +221,10 @@ return [
],
],
],
'maxitems' => 1,
'minitems' => 1,
],
'jpg,jpeg'
),
'maxitems' => 1,
'minitems' => 1,
],
],
'page' => [
'exclude' => 0,
@@ -19,4 +19,3 @@ mod.web_layout.BackendLayouts {
}
}
}
@@ -1,9 +1,9 @@
TCEFORM {
tt_content {
CType {
# Remove content elements added by EXT:ep_events
removeItems := addToList(tile, statement, herounit, banner)
}
CType {
# Remove content elements added by EXT:ep_events
removeItems := addToList(tile, statement, herounit, banner)
}
imageorient.removeItems := addToList(0,1,2,8,9,25,26)
imageorient.disabled = 1
@@ -1,4 +1,3 @@
tt_content.list.dataProcessing {
10 = EP\EpTheme\DataProcessing\FlexFormProcessor
}
@@ -11,4 +11,3 @@ lib.contentElement {
settings.mapApiKey = {$plugin.tx_eptheme.settings.mapApiKey}
settings.mapAttribution = {$plugin.tx_eptheme.settings.mapAttribution}
}
@@ -15,4 +15,4 @@ plugin.tx_seo {
}
}
}
[END]
[end]
@@ -2,9 +2,7 @@ lib.tue_sitemapcsv = COA_INT
lib.tue_sitemapcsv {
5 = TEXT
5 {
value (
"URL";"Latest change";"Doktype";"Title";"Nav Title";"Description"
)
value = "URL";"Latest change";"Doktype";"Title";"Nav Title";"Description"
}
10 = COA
10 {
@@ -92,10 +90,7 @@ lib.tue_sitemapcsv {
}
100 = TEXT
100 {
value (
)
value =
}
}
20 = HMENU
@@ -119,17 +114,16 @@ lib.tue_sitemapcsv {
}
[backend.user.isLoggedIn]
sitemapcsv = PAGE
sitemapcsv {
typeNum = 888
config {
disableAllHeaderCode = 1
xhtml_cleaning = 0
admPanel = 0
debug = 0
additionalHeaders = Content-type:text/csv;charset=utf-8|Content-Disposition:attachment; filename="sitemap.csv"
}
10 < lib.tue_sitemapcsv
sitemapcsv = PAGE
sitemapcsv {
typeNum = 888
config {
disableAllHeaderCode = 1
xhtml_cleaning = 0
admPanel = 0
debug = 0
additionalHeaders = Content-type:text/csv;charset=utf-8|Content-Disposition:attachment; filename="sitemap.csv"
}
[END]
10 < lib.tue_sitemapcsv
}
[end]
@@ -188,24 +188,24 @@ page {
}
}
[page["backend_layout"] == 'pagets__popup']
page.bodyTagCObject >
page.bodyTagCObject = TEXT
page.bodyTagCObject.value = <body class="antialiased text-zinc-800 font-sans bg-white p-4">
page.headerData.333 >
[traverse(page, "backend_layout") == 'pagets__popup']
page.bodyTagCObject >
page.bodyTagCObject = TEXT
page.bodyTagCObject.value = <body class="antialiased text-zinc-800 font-sans bg-white p-4">
page.headerData.333 >
# page.headerData.990 >
# page.headerData.995 >
[end]
[page["backend_layout"] == 'pagets__travelinfo']
page.bodyTagCObject >
page.bodyTagCObject = TEXT
page.bodyTagCObject.value = <body class="antialiased text-zinc-800 font-sans bg-white">
[traverse(page, "backend_layout") == 'pagets__travelinfo']
page.bodyTagCObject >
page.bodyTagCObject = TEXT
page.bodyTagCObject.value = <body class="antialiased text-zinc-800 font-sans bg-white">
[end]
[request.getNormalizedParams() && like(request.getNormalizedParams().getHttpUserAgent(), "*Googlebot*")]
page.headerData.990 >
page.headerData.995 >
page.headerData.990 >
page.headerData.995 >
[end]
#[applicationContext == "Development" || applicationContext == "Production/Staging"]
@@ -100,15 +100,13 @@ tt_content.menu_section.dataProcessing.10.includeNotInMenu = 1
config {
compressJs = 1
compressCss = 1
typolinkCheckRootline = 1
typolinkEnableLinksAcrossDomains = 1
sendCacheHeaders = 1
content_from_pid_allowOutsideDomain = 1
inlineStyle2TempFile = 0
additionalHeaders {
# 10 {
# header = Content-Security-Policy: default-src 'self' 'unsafe-inline'; connect-src 'self' https://my.ep-reisen.de/;
# }
# 10 {
# header = Content-Security-Policy: default-src 'self' 'unsafe-inline'; connect-src 'self' https://my.ep-reisen.de/;
# }
20 {
header = Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
}
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0">
<file source-language="en" target-language="de" datatype="plaintext" original="messages"
date="2015-11-18T11:00:00Z" product-name="theme">
<file source-language="en" target-language="de" datatype="plaintext" original="messages" date="2015-11-18T11:00:00Z" product-name="theme">
<header/>
<body>
<trans-unit id="tx_eptheme_domain_model_slider">
@@ -31,7 +30,6 @@
<trans-unit id="tx_eptheme_domain_model_slide.page_uid">
<target>Link</target>
</trans-unit>
<trans-unit id="tx_eptheme.label.teaserbutton.default">
<target>Details</target>
</trans-unit>
@@ -71,14 +69,12 @@
<trans-unit id="tx_eptheme_domain_model_lineup.youtube_url">
<target>Youtube URL</target>
</trans-unit>
<trans-unit id="tx_eptheme_context.date_from">
<target>Datum von</target>
</trans-unit>
<trans-unit id="tx_eptheme_context.date_to">
<target>Datum bis</target>
</trans-unit>
<trans-unit id="tx_eptheme.message.contactForm.name.1221560718">
<target>Bitte angeben</target>
</trans-unit>
@@ -97,14 +93,12 @@
<trans-unit id="tx_eptheme.message.contactForm.email.1221559976">
<target>Bitte gib eine gültige E-Mail Adresse an</target>
</trans-unit>
<trans-unit id="tx_eptheme.message.newsletter.listIds.1347992400">
<target>Bitte wähle mindestens einen Newsletter</target>
</trans-unit>
<trans-unit id="tx_eptheme.message.newsletter.consent.1361959228">
<target>Bitte stimme den Datenschutzbestimmungen zu</target>
</trans-unit>
<trans-unit id="label.whatsapp_instructions">
<target>Nummer einfach als neuen Kontakt abspeichern und los geht es! Wir beraten Dich über WhatsApp!</target>
</trans-unit>
@@ -30,7 +30,6 @@
<trans-unit id="tx_eptheme_domain_model_slide.page_uid">
<source>Link</source>
</trans-unit>
<trans-unit id="tx_eptheme.label.teaserbutton.default">
<source>Details</source>
</trans-unit>
@@ -70,14 +69,12 @@
<trans-unit id="tx_eptheme_domain_model_lineup.youtube_url">
<source>Youtube URL</source>
</trans-unit>
<trans-unit id="tx_eptheme_context.date_from">
<source>Datum von</source>
</trans-unit>
<trans-unit id="tx_eptheme_context.date_to">
<source>Datum bis</source>
</trans-unit>
<trans-unit id="tx_eptheme.message.contactForm.name.1221560718">
<source>Bitte angeben</source>
</trans-unit>
@@ -123,7 +120,6 @@
<trans-unit id="tx_eptheme.message.confirmation.1361959228">
<source>Deine Bestätigung ist erforderlich</source>
</trans-unit>
<trans-unit id="label.whatsapp_instructions">
<source>Nummer einfach als neuen Kontakt abspeichern und los geht es! Wir beraten Dich über WhatsApp!</source>
</trans-unit>
-4
View File
@@ -7,11 +7,7 @@ $EM_CONF[$_EXTKEY] = [
'author' => 'Björn Fromme',
'author_email' => '[email protected]',
'state' => 'beta',
'internal' => '',
'uploadfolder' => true,
'createDirs' => '',
'dividers2tabs' => true,
'clearCacheOnLoad' => 0,
'version' => '3.0.0',
'constraints' => [
'depends' => [],
+9 -6
View File
@@ -1,11 +1,14 @@
<?php
defined('TYPO3_MODE') or die();
use TYPO3\CMS\Core\Log\LogLevel;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Core\MetaTag\MetaTagManagerRegistry;
use EP\EpTheme\MetaTag\OpenGraphMetaTagManager;
defined('TYPO3') or die();
$boot = function () {
$GLOBALS['TYPO3_CONF_VARS']['SYS']['fluid']['namespaces']['ep'] = ['Ep\\EpTheme\\ViewHelpers'];
$GLOBALS['TYPO3_CONF_VARS']['LOG']['TYPO3']['CMS']['deprecations']['writerConfiguration'][\TYPO3\CMS\Core\Log\LogLevel::NOTICE] = [];
$GLOBALS['TYPO3_CONF_VARS']['FE']['addRootLineFields'] = 'tx_eptheme_slides';
$GLOBALS['TYPO3_CONF_VARS']['LOG']['TYPO3']['CMS']['deprecations']['writerConfiguration'][LogLevel::NOTICE] = [];
$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';
@@ -14,10 +17,10 @@ $boot = function () {
$GLOBALS['TYPO3_CONF_VARS']['SYS']['fluid']['namespaces']['ep'] = ['EP\\EpTheme\\ViewHelpers'];
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['format'] = 'html';
$metaTagManagerRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\MetaTag\MetaTagManagerRegistry::class);
$metaTagManagerRegistry = GeneralUtility::makeInstance(MetaTagManagerRegistry::class);
$metaTagManagerRegistry->registerManager(
'ep_opengraph',
\EP\EpTheme\MetaTag\OpenGraphMetaTagManager::class
OpenGraphMetaTagManager::class
);
};
+7 -6
View File
@@ -1,6 +1,10 @@
<?php
defined('TYPO3_MODE') or die();
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Core\Imaging\IconRegistry;
use TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider;
defined('TYPO3') or die();
call_user_func(function () {
if ($GLOBALS['TYPO3_CONF_VARS']['FE']['addRootLineFields'] !== '') {
@@ -8,14 +12,11 @@ call_user_func(function () {
}
$GLOBALS['TYPO3_CONF_VARS']['FE']['addRootLineFields'] .= 'og_image';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_eptheme_domain_model_slide');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_eptheme_domain_model_badge');
if (TYPO3_MODE === 'BE') {
$iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class);
$iconRegistry = GeneralUtility::makeInstance(IconRegistry::class);
$iconRegistry->registerIcon(
'content-ep_theme-ce',
\TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
SvgIconProvider::class,
['source' => 'EXT:ep_theme/Resources/Public/images/logo.svg']
);
}