Upgrade to TYPO3 9.5 LTS

This commit is contained in:
Björn Fromme
2019-06-06 17:20:29 +02:00
parent adab7fb39a
commit 3c472eb973
989 changed files with 4924 additions and 3674 deletions
+17 -19
View File
@@ -1,25 +1,23 @@
.DS_Store
.idea .idea
.tmp .tmp
index.php index.php
vendor vendor
node_modules node_modules
bower_components
typo3 typo3
web/fileadmin public/fileadmin
web/typo3conf/ENABLE_INSTALL_TOOL public/typo3conf/ENABLE_INSTALL_TOOL
web/typo3conf/realurl_autoconf.php public/typo3conf/deprecation*
web/typo3conf/deprecation* public/typo3conf/ext/*/
web/typo3conf/ext/* !public/typo3conf/ext/ep_events/
!web/typo3conf/ext/ep_events/ !public/typo3conf/ext/ep_products/
!web/typo3conf/ext/ep_products/ !public/typo3conf/ext/ep_theme/
!web/typo3conf/ext/ep_theme/ !public/typo3conf/ext/ep_track/
!web/typo3conf/ext/ep_track/ public/typo3conf/ext/ep_events/Resources/Public/
web/typo3conf/ext/ep_events/Resources/Public/* public/typo3conf/ext/ep_theme/Resources/Public/
web/typo3conf/ext/ep_theme/Resources/Public/* public/typo3conf/LocalConfiguration.php
web/typo3conf/LocalConfiguration.php public/typo3conf/AdditionalConfiguration.php
web/typo3conf/AdditionalConfiguration.php public/typo3conf/PackageStates.php
web/typo3conf/PackageStates.php public/typo3conf/l10n
web/typo3conf/l10n public/typo3temp
web/typo3temp public/uploads
web/uploads var
-3
View File
@@ -1,3 +0,0 @@
- Fire `nvm use` upfront build/deployment
- Deploy via `./vendor/bin/dep deploy` due to PHP 5.6 still being in use
- Deploy assets only with `./vendor/bin/dep assets`
+50 -70
View File
@@ -7,65 +7,53 @@
"license": "GPL-2.0+", "license": "GPL-2.0+",
"type": "project", "type": "project",
"require": { "require": {
"php": "^7.1", "php": "^7.2",
"ext-json": "*", "ext-json": "*",
"ext-libxml": "*", "ext-libxml": "*",
"ext-pdo": "*",
"ext-simplexml": "*", "ext-simplexml": "*",
"typo3/cms": "^8.7", "christophlehmann/imageoptimizer": "^2.0",
"typo3/cms-backend": "^8.7", "fab/media": "^5.0",
"typo3/cms-belog": "^8.7", "fab/vidi": "^3.2",
"typo3/cms-beuser": "^8.7", "fluidtypo3/vhs": "^5.2",
"typo3/cms-core": "^8.7", "georgringer/news": "^7.2",
"typo3/cms-rte-ckeditor": "^8.7", "gridelementsteam/gridelements": "^9.2",
"typo3/cms-extbase": "^8.7", "helhum/typo3-console": "^5.6",
"typo3/cms-extensionmanager": "^8.7", "league/csv": "^9.2",
"typo3/cms-filelist": "^8.7", "pixelant/pxa-social-feed": "^1.10",
"typo3/cms-filemetadata": "^8.7", "symfony/options-resolver": "^4.2",
"typo3/cms-fluid": "^8.7", "symfony/property-access": "^4.3",
"typo3/cms-fluid-styled-content": "^8.7", "symfony/serializer": "^4.2",
"typo3/cms-form": "^8.7", "typo3/cms-adminpanel": "^9.5",
"typo3/cms-frontend": "^8.7", "typo3/cms-backend": "^9.5",
"typo3/cms-func": "^8.7", "typo3/cms-belog": "^9.5",
"typo3/cms-func-wizards": "^8.7", "typo3/cms-beuser": "^9.5",
"typo3/cms-info": "^8.7", "typo3/cms-core": "^9.5",
"typo3/cms-info-pagetsconfig": "^8.7", "typo3/cms-extbase": "^9.5",
"typo3/cms-install": "^8.7", "typo3/cms-extensionmanager": "^9.5",
"typo3/cms-lang": "^8.7", "typo3/cms-felogin": "^9.5",
"typo3/cms-lowlevel": "^8.7", "typo3/cms-filelist": "^9.5",
"typo3/cms-opendocs": "^8.7", "typo3/cms-filemetadata": "^9.5",
"typo3/cms-recordlist": "^8.7", "typo3/cms-fluid": "^9.5",
"typo3/cms-recycler": "^8.7", "typo3/cms-fluid-styled-content": "^9.5",
"typo3/cms-reports": "^8.7", "typo3/cms-form": "^9.5",
"typo3/cms-rsaauth": "^8.7", "typo3/cms-frontend": "^9.5",
"typo3/cms-saltedpasswords": "^8.7", "typo3/cms-info": "^9.5",
"typo3/cms-scheduler": "^8.7", "typo3/cms-install": "^9.5",
"typo3/cms-setup": "^8.7", "typo3/cms-lowlevel": "^9.5",
"typo3/cms-sv": "^8.7", "typo3/cms-recordlist": "^9.5",
"typo3/cms-sys-action": "^8.7", "typo3/cms-recycler": "^9.5",
"typo3/cms-t3editor": "^8.7", "typo3/cms-redirects": "^9.5",
"typo3/cms-taskcenter": "^8.7", "typo3/cms-reports": "^9.5",
"typo3/cms-tstemplate": "^8.7", "typo3/cms-rte-ckeditor": "^9.5",
"typo3/cms-viewpage": "^8.7", "typo3/cms-scheduler": "^9.5",
"typo3/cms-wizard-crpages": "^8.7", "typo3/cms-seo": "^9.5",
"typo3/cms-wizard-sortpages": "^8.7", "typo3/cms-setup": "^9.5",
"typo3-ter/media": "^4.5", "typo3/cms-t3editor": "^9.5",
"typo3-ter/ods-redirects": "^1.3", "typo3/cms-taskcenter": "^9.5",
"typo3-ter/html-compress": "^1.1", "typo3/cms-tstemplate": "^9.5",
"yohang/calendr": "^2.1", "typo3/cms-viewpage": "^9.5",
"wyrihaximus/html-compress": "^1.4", "yohang/calendr": "^2.1"
"symfony/property-access": "^3.4",
"symfony/options-resolver": "^3.4",
"symfony/serializer": "^3.3",
"league/csv": "^8.2",
"christophlehmann/imageoptimizer": "^1.1",
"smichaelsen/pagepath": "^1.1",
"georgringer/news": "^7.0",
"dmitryd/typo3-realurl": "^2.3",
"fluidtypo3/vhs": "^4.3",
"webdevops/metaseo": "3.0.0",
"helhum/typo3-console": "^4.9",
"gridelementsteam/gridelements": "^8.2",
"pixelant/pxa-social-feed": "^1.10"
}, },
"scripts": { "scripts": {
"typo3-cms-scripts": [ "typo3-cms-scripts": [
@@ -79,21 +67,12 @@
"@typo3-cms-scripts" "@typo3-cms-scripts"
] ]
}, },
"extra": {
"typo3/cms": {
"cms-package-dir": "{$vendor-dir}/typo3/cms",
"web-dir": "web"
},
"helhum/typo3-console": {
"install-extension-dummy": false
}
},
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"EP\\EpEvents\\": "web/typo3conf/ext/ep_events/Classes", "EP\\EpEvents\\": "public/typo3conf/ext/ep_events/Classes",
"EP\\EpProducts\\": "web/typo3conf/ext/ep_products/Classes", "EP\\EpProducts\\": "public/typo3conf/ext/ep_products/Classes",
"EP\\EpTheme\\": "web/typo3conf/ext/ep_theme/Classes", "EP\\EpTheme\\": "public/typo3conf/ext/ep_theme/Classes",
"EP\\EpTrack\\": "web/typo3conf/ext/ep_track/Classes" "EP\\EpTrack\\": "public/typo3conf/ext/ep_track/Classes"
} }
}, },
"require-dev": { "require-dev": {
@@ -101,8 +80,9 @@
"ichhabrecht/filefill": "^2.0" "ichhabrecht/filefill": "^2.0"
}, },
"config": { "config": {
"sort-packages": true,
"platform": { "platform": {
"php": "7.1.10" "php": "7.2.17"
} }
} }
} }
Generated
+2813 -1414
View File
File diff suppressed because it is too large Load Diff
+86
View File
@@ -0,0 +1,86 @@
rootPageId: 884
base: 'https://www.ep-events.de'
baseVariants:
- base: 'https://ep-events.burn.dpn'
condition: 'applicationContext == "Development"'
languages:
- title: Deutsch
enabled: true
languageId: '0'
base: /
typo3Language: de
locale: de_DE.UTF-8
iso-639-1: de
navigationTitle: Deutsch
hreflang: de-DE
direction: ''
flag: de
errorHandling:
- errorCode: '404'
errorHandler: Page
errorContentSource: 't3://page?uid=608'
routes: { }
routeEnhancers:
NewsPlugin:
type: Extbase
extension: News
plugin: Pi1
limitToPages: [989]
routes:
- { routePath: '/{news_title}', _controller: 'News::detail', _arguments: {'news_title': 'news'} }
defaultController: 'News::detail'
aspects:
news_title:
type: PersistedAliasMapper
tableName: 'tx_news_domain_model_news'
routeFieldName: 'path_segment'
ActivityPlugin:
type: Extbase
extension: EpEvents
plugin: activitydetail
limitToPages: [1405]
routes:
- { routePath: '/{activity_name}', _controller: 'Activity::detail', _arguments: {'activity_name': 'activity'} }
defaultController: 'Activity::detail'
aspects:
activity_name:
type: PersistedAliasMapper
tableName: 'tx_epevents_domain_model_activity'
routeFieldName: 'path_segment'
ConfiguratorPlugin:
type: Extbase
extension: EpEvents
plugin: configurator
limitToPages: [1263]
routes:
- { routePath: '/{travel_type}/{location_type}', _controller: 'Form::configurator', _arguments: {'travel_type': 'travelType', 'location_type': 'locationType'} }
defaultController: 'Form::configurator'
requirements:
travel_type: '\d+'
location_type: '\d+'
aspects:
travel_type:
type: StaticRangeMapper
start: '1'
end: '100'
location_type:
type: StaticRangeMapper
start: '1'
end: '100'
ContactFormPlugin:
type: Extbase
extension: EpEvents
plugin: contactform
limitToPages: [987]
routes:
- { routePath: '/{travel_type}', _controller: 'Form::contactForm', _arguments: {'travel_type': 'travelType'} }
defaultController: 'Form::contactForm'
requirements:
travel_type: '\d+'
aspects:
travel_type:
type: StaticRangeMapper
start: '1'
end: '100'
+111
View File
@@ -0,0 +1,111 @@
rootPageId: 9
base: 'https://www.ep-reisen.de'
baseVariants:
- base: 'https://eptypo3.burn.dpn'
condition: 'applicationContext == "Development"'
languages:
- title: Deutsch
enabled: true
languageId: '0'
base: /
typo3Language: de
locale: de_DE.UTF-8
iso-639-1: de
navigationTitle: Deutsch
hreflang: de-DE
direction: ''
flag: de
errorHandling:
- errorCode: '404'
errorHandler: Page
errorContentSource: 't3://page?uid=608'
routes: { }
routeEnhancers:
NewsDetailPlugin:
type: Extbase
extension: News
plugin: Pi1
limitToPages: [1392]
routes:
- { routePath: '/{news_title}', _controller: 'News::detail', _arguments: {'news_title': 'news'} }
defaultController: 'News::detail'
aspects:
news_title:
type: PersistedAliasMapper
tableName: 'tx_news_domain_model_news'
routeFieldName: 'path_segment'
NewsTagPlugin:
type: Extbase
extension: News
plugin: Pi1
limitToPages: [1391]
routes:
- { routePath: '/{news_tag}', _controller: 'News::list', _arguments: {'news_tag': 'overwriteDemand/tags'} }
defaultController: 'News::list'
aspects:
news_tag:
type: PersistedAliasMapper
tableName: 'tx_news_domain_model_tag'
routeFieldName: 'slug'
TeamPlugin:
type: Extbase
extension: EpProducts
plugin: teammembers
limitToPages: [1446]
routes:
- { routePath: '/{teamer_name}', _controller: 'Team::show', _arguments: {'teamer_name': 'member'} }
defaultController: 'Team::show'
aspects:
teamer_name:
type: PersistedAliasMapper
tableName: 'tx_epproducts_domain_model_teammember'
routeFieldName: 'path_segment'
ProductDetailPlugin:
type: Extbase
extension: EpProducts
plugin: product_detail
routes:
- { routePath: '/{teamer_name}', _controller: 'Team::show', _arguments: {'teamer_name': 'member'} }
defaultController: 'Team::show'
aspects:
teamer_name:
type: PersistedAliasMapper
tableName: 'tx_epproducts_domain_model_teammember'
routeFieldName: 'path_segment'
SearchResultPlugin:
type: Extbase
extension: EpProducts
plugin: searchresult
limitToPages: [41]
routes:
- { routePath: '/{filtersettings}', _controller: 'Search::searchresult', _arguments: {'filtersettings': 'filterSettings'} }
defaultController: 'Search::searchresult'
ResellerPlugin:
type: Extbase
extension: EpProducts
plugin: reseller
limitToPages: [1483]
routes:
- { routePath: '/{reseller_code}', _controller: 'Reseller::list', _arguments: {'reseller_code': 'reseller'} }
- { routePath: '/{reseller_code}/xml', _controller: 'Reseller::xml', _arguments: {'reseller_code': 'reseller'} }
- { routePath: '/{reseller_code}/csv/{type}', _controller: 'Reseller::csv', _arguments: {'reseller_code': 'reseller', 'type': 'type'} }
- { routePath: '/{reseller_code}/copypaste/{product_id}', _controller: 'Reseller::copypaste', _arguments: {'reseller_code': 'reseller', 'product_id': 'product'} }
requirements:
reseller_code: '\w+'
type: '\w+'
product_id: '\d+'
aspects:
reseller_code:
type: PersistedAliasMapper
tableName: 'tx_epproducts_domain_model_reseller'
routeFieldName: 'code'
type:
type: StaticValueMapper
map:
google: google
facebook: facebook
product_id:
type: StaticRangeMapper
start: '1'
end: '1000'
+37
View File
@@ -0,0 +1,37 @@
rootPageId: 24
base: 'https://www.ski-boarderweek.de'
baseVariants:
- base: 'https://ski-boarderweek.burn.dpn'
condition: 'applicationContext == "Development"'
languages:
- title: Deutsch
enabled: true
languageId: '0'
base: /
typo3Language: de
locale: de_DE.UTF-8
iso-639-1: de
navigationTitle: Deutsch
hreflang: de-DE
direction: ''
flag: de
errorHandling:
- errorCode: '404'
errorHandler: Page
errorContentSource: 't3://page?uid=608'
routes: { }
routeEnhancers:
TeamPlugin:
type: Extbase
extension: EpProducts
plugin: teammembers
limitToPages: [1488]
routes:
- { routePath: '/{teamer_name}', _controller: 'Team::show', _arguments: {'teamer_name': 'member'} }
defaultController: 'Team::show'
aspects:
teamer_name:
type: PersistedAliasMapper
tableName: 'tx_epproducts_domain_model_teammember'
routeFieldName: 'path_segment'
+24
View File
@@ -0,0 +1,24 @@
rootPageId: 14
base: 'https://www.ski-wochenenden.de'
baseVariants:
- base: 'https://ski-wochenenden.burn.dpn'
condition: 'applicationContext == "Development"'
languages:
- title: Deutsch
enabled: true
languageId: '0'
base: /
typo3Language: de
locale: de_DE.UTF-8
iso-639-1: de
navigationTitle: Deutsch
hreflang: de-DE
direction: ''
flag: de
errorHandling:
- errorCode: '404'
errorHandler: Page
errorContentSource: 't3://page?uid=608'
routes: { }
routeEnhancers: { }
+37
View File
@@ -0,0 +1,37 @@
rootPageId: 25
base: 'https://www.snowzone.net'
baseVariants:
- base: 'https://snowzone.burn.dpn'
condition: 'applicationContext == "Development"'
languages:
- title: Deutsch
enabled: true
languageId: '0'
base: /
typo3Language: de
locale: de_DE.UTF-8
iso-639-1: de
navigationTitle: Deutsch
hreflang: de-DE
direction: ''
flag: de
errorHandling:
- errorCode: '404'
errorHandler: Page
errorContentSource: 't3://page?uid=608'
routes: { }
routeEnhancers:
TeamPlugin:
type: Extbase
extension: EpProducts
plugin: teammembers
limitToPages: [1619]
routes:
- { routePath: '/{teamer_name}', _controller: 'Team::show', _arguments: {'teamer_name': 'member'} }
defaultController: 'Team::show'
aspects:
teamer_name:
type: PersistedAliasMapper
tableName: 'tx_epproducts_domain_model_teammember'
routeFieldName: 'path_segment'
+37
View File
@@ -0,0 +1,37 @@
rootPageId: 26
base: 'https://www.unichamp.de'
baseVariants:
- base: 'https://unichamp.burn.dpn'
condition: 'applicationContext == "Development"'
languages:
- title: Deutsch
enabled: true
languageId: '0'
base: /
typo3Language: de
locale: de_DE.UTF-8
iso-639-1: de
navigationTitle: Deutsch
hreflang: de-DE
direction: ''
flag: de
errorHandling:
- errorCode: '404'
errorHandler: Page
errorContentSource: 't3://page?uid=608'
routes: { }
routeEnhancers:
TeamPlugin:
type: Extbase
extension: EpProducts
plugin: teammembers
limitToPages: [1620]
routes:
- { routePath: '/{teamer_name}', _controller: 'Team::show', _arguments: {'teamer_name': 'member'} }
defaultController: 'Team::show'
aspects:
teamer_name:
type: PersistedAliasMapper
tableName: 'tx_epproducts_domain_model_teammember'
routeFieldName: 'path_segment'
+9 -5
View File
@@ -4,7 +4,7 @@ namespace Deployer;
require 'recipe/typo3.php'; require 'recipe/typo3.php';
set('typo3_webroot', 'web'); set('typo3_webroot', 'web');
set('application', 'typo3-deployer'); set('application', 'ep-reisen-typo3');
set('repository', '[email protected]:dreipunktnull/ep-reisen-web'); set('repository', '[email protected]:dreipunktnull/ep-reisen-web');
set('git_tty', true); set('git_tty', true);
@@ -17,6 +17,10 @@ add('shared_files', [
'{{typo3_webroot}}/typo3conf/LocalConfiguration.php' '{{typo3_webroot}}/typo3conf/LocalConfiguration.php'
]); ]);
add('shared_dirs', [
'config/sites',
]);
host('production') host('production')
->hostname('host.3punkt0.com') ->hostname('host.3punkt0.com')
->user('ep-reisen') ->user('ep-reisen')
@@ -35,15 +39,15 @@ task('build', function () {
task('upload:epevents', function () { task('upload:epevents', function () {
upload( upload(
__DIR__ . '/web/typo3conf/ext/ep_events/Resources/Public/', __DIR__ . '/public/typo3conf/ext/ep_events/Resources/Public/',
'{{release_path}}/web/typo3conf/ext/ep_events/Resources/Public' '{{release_path}}/public/typo3conf/ext/ep_events/Resources/Public'
); );
}); });
task('upload:eptheme', function () { task('upload:eptheme', function () {
upload( upload(
__DIR__ . '/web/typo3conf/ext/ep_theme/Resources/Public/', __DIR__ . '/public/typo3conf/ext/ep_theme/Resources/Public/',
'{{release_path}}/web/typo3conf/ext/ep_theme/Resources/Public' '{{release_path}}/public/typo3conf/ext/ep_theme/Resources/Public'
); );
}); });
+825 -1203
View File
File diff suppressed because it is too large Load Diff
View File
@@ -98,8 +98,8 @@ class AjaxFormController extends ActionController
*/ */
protected function errorAction() { protected function errorAction() {
$formErrors = []; $formErrors = [];
if ($this->arguments->getValidationResults()->hasErrors()) { if ($this->arguments->validate()->hasErrors()) {
foreach ($this->arguments->getValidationResults()->getFlattenedErrors() as $key => $errors) foreach ($this->arguments->validate()->getFlattenedErrors() as $key => $errors)
{ {
$key = str_replace('.', '', $key); $key = str_replace('.', '', $key);
$errorsRaw = []; $errorsRaw = [];
@@ -114,6 +114,7 @@ class AjaxFormController extends ActionController
$response['status'] = 'validation'; $response['status'] = 'validation';
$response['errors'] = $formErrors; $response['errors'] = $formErrors;
return json_encode($response); return json_encode($response);
} }
@@ -89,22 +89,22 @@ class Inquiry extends AbstractValueObject
/** /**
* @var string * @var string
* *
* @validate NotEmpty * @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty")
*/ */
protected $name; protected $name;
/** /**
* @var string * @var string
* *
* @validate NotEmpty * @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty")
* @validate EmailAddress * @TYPO3\CMS\Extbase\Annotation\Validate("EmailAddress")
*/ */
protected $email; protected $email;
/** /**
* @var string * @var string
* *
* @validate NotEmpty * @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty")
*/ */
protected $phone; protected $phone;
@@ -0,0 +1,121 @@
<?php
namespace EP\EpEvents\Updates;
use GeorgRinger\News\Service\Transliterator\Transliterator;
use TYPO3\CMS\Core\Database\ConnectionPool;
use TYPO3\CMS\Core\Database\Query\QueryBuilder;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Install\Updates\DatabaseUpdatedPrerequisite;
use TYPO3\CMS\Install\Updates\UpgradeWizardInterface;
class ActivitySlugUpdater implements UpgradeWizardInterface
{
/**
* @return string
*/
public function getTitle(): string
{
return 'Updates slug field "path_segment" of EXT:ep_events activity records';
}
/**
* @return string
*/
public function getDescription(): string
{
return 'Fills empty slug field "path_segment" of EXT:ep_events records with urlized name.';
}
/**
* @return string
*/
public function getIdentifier(): string
{
return 'activitySlug';
}
/**
* @return bool
*/
public function updateNecessary(): bool
{
$elementCount = $this->countRequiredUpdates();
return (bool)$elementCount;
}
/**
* @return bool
*/
public function executeUpdate(): bool
{
$queryBuilder = $this->getQueryBuilder();
$statement = $queryBuilder->select('uid', 'name')
->from('tx_epevents_domain_model_activity')
->where(
$queryBuilder->expr()->orX(
$queryBuilder->expr()->eq(
'path_segment',
$queryBuilder->createNamedParameter('')
),
$queryBuilder->expr()->isNull('path_segment')
)
)
->execute();
while ($record = $statement->fetch()) {
$slug = Transliterator::urlize($record['name']);
$queryBuilder = $this->getQueryBuilder();
$queryBuilder->update('tx_epevents_domain_model_activity')
->where(
$queryBuilder->expr()->eq(
'uid',
$queryBuilder->createNamedParameter($record['uid'], \PDO::PARAM_INT)
)
)
->set('path_segment', $slug);
$queryBuilder->execute();
}
return true;
}
protected function countRequiredUpdates(): int
{
$queryBuilder = $this->getQueryBuilder();
return $queryBuilder->count('uid')
->from('tx_epevents_domain_model_activity')
->where(
$queryBuilder->expr()->orX(
$queryBuilder->expr()->eq(
'path_segment',
$queryBuilder->createNamedParameter('')
),
$queryBuilder->expr()->isNull('path_segment')
)
)
->execute()->fetchColumn();
}
protected function getQueryBuilder(): QueryBuilder
{
/** @var QueryBuilder $queryBuilder */
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
->getQueryBuilderForTable('tx_epevents_domain_model_activity');
$queryBuilder->getRestrictions()->removeAll();
return $queryBuilder;
}
/**
* @return string[]
*/
public function getPrerequisites(): array
{
return [
DatabaseUpdatedPrerequisite::class,
];
}
}
@@ -28,8 +28,8 @@ namespace EP\EpEvents\ViewHelpers;
***************************************************************/ ***************************************************************/
use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
class ConfiguratorTypeLabelsViewHelper extends AbstractViewHelper class ConfiguratorTypeLabelsViewHelper extends AbstractViewHelper
@@ -68,6 +68,7 @@ class ConfiguratorTypeLabelsViewHelper extends AbstractViewHelper
{ {
$types[] = $config[$type][$index]; $types[] = $config[$type][$index];
} }
return implode(', ', $types); return implode(', ', $types);
} }
} }
@@ -27,8 +27,8 @@ namespace EP\EpEvents\ViewHelpers;
* This copyright notice MUST APPEAR in all copies of the script! * This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/ ***************************************************************/
use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
class SectionCssClassViewHelper extends AbstractViewHelper class SectionCssClassViewHelper extends AbstractViewHelper
@@ -27,8 +27,8 @@ namespace EP\EpEvents\ViewHelpers;
* This copyright notice MUST APPEAR in all copies of the script! * This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/ ***************************************************************/
use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
class SectionIconViewHelper extends AbstractViewHelper class SectionIconViewHelper extends AbstractViewHelper
@@ -27,8 +27,8 @@ namespace EP\EpEvents\ViewHelpers;
* This copyright notice MUST APPEAR in all copies of the script! * This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/ ***************************************************************/
use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
class SoftHyphenViewHelper extends AbstractViewHelper class SoftHyphenViewHelper extends AbstractViewHelper
@@ -0,0 +1,37 @@
<?php
defined('TYPO3_MODE') or die();
call_user_func(function() {
$budgetItems = $paxItems = $periodItems = [
['keine Auswahl', 0]
];
$extensionConfiguration = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Configuration\ExtensionConfiguration::class)->get('ep_events');
$budgetItemsConfig = explode(';', $extensionConfiguration['configuratorBudgetOptions']);
foreach ($budgetItemsConfig as $item)
{
[$value, $label] = explode(':', $item);
$budgetItems[] = [$label, $value];
}
$GLOBALS['TCA']['tx_epevents_domain_model_offer']['columns']['configurator_budget']['config']['items'] = $budgetItems;
$paxItemsConfig = explode(';', $extensionConfiguration['configuratorPaxOptions']);
foreach ($paxItemsConfig as $item)
{
[$value, $label] = explode(':', $item);
$paxItems[] = [$label, $value];
}
$GLOBALS['TCA']['tx_epevents_domain_model_offer']['columns']['configurator_pax']['config']['items'] = $paxItems;
$periodItemsConfig = explode(';', $extensionConfiguration['configuratorPeriodOptions']);
foreach ($periodItemsConfig as $item)
{
[$value, $label] = explode(':', $item);
$periodItems[] = [$label, $value];
}
$GLOBALS['TCA']['tx_epevents_domain_model_offer']['columns']['configurator_period']['config']['items'] = $periodItems;
});
@@ -18,12 +18,13 @@ return [
'starttime' => 'starttime', 'starttime' => 'starttime',
'endtime' => 'endtime', 'endtime' => 'endtime',
], ],
'searchFields' => 'name,name_internal,description,image_teaser,image_header,image_offer,configurator_type,', 'searchFields' => 'name,name_internal,description,image_teaser,image_header,image_offer,configurator_type',
'iconfile' => 'EXT:ep_events/Resources/Public/images/tx_epevents_domain_model_activity.gif' 'iconfile' => 'EXT:ep_events/Resources/Public/images/tx_epevents_domain_model_activity.gif'
], ],
'interface' => [ 'interface' => [
'showRecordFieldList' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, name, name_internal, 'showRecordFieldList' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, name, name_internal,
keywords, description, bannertext, footertext, image_teaser, image_header, image_offer, configurator_type', keywords, description, bannertext, footertext, image_teaser, image_header, image_offer, configurator_type,
path_segment',
], ],
'types' => [ 'types' => [
'1' => [ '1' => [
@@ -35,7 +36,7 @@ return [
], ],
'palettes' => [ 'palettes' => [
'general' => ['showitem' => 'configurator_type, hidden'], 'general' => ['showitem' => 'configurator_type, hidden'],
'naming' => ['showitem' => 'name, name_internal'], 'naming' => ['showitem' => 'name, name_internal, --linebreak--, path_segment'],
], ],
'columns' => [ 'columns' => [
'sys_language_uid' => [ 'sys_language_uid' => [
@@ -304,5 +305,21 @@ return [
'eval' => '' 'eval' => ''
], ],
], ],
'path_segment' => [
'exclude' => 0,
'label' => 'Pfadsegment',
'config' => [
'type' => 'slug',
'generatorOptions' => [
'fields' => ['name'],
'prefixParentPageSlug' => false,
'replacements' => [
'/' => '-',
],
],
'fallbackCharacter' => '-',
'eval' => 'uniqueInSite',
],
],
], ],
]; ];
@@ -1,4 +1,4 @@
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:fluid_styled_content/Configuration/TypoScript/setup.txt"> @import "EXT:fluid_styled_content/Configuration/TypoScript/setup.typoscript"
lib.contentElement { lib.contentElement {
layoutRootPaths.20 = EXT:ep_events/Resources/Private/Layouts/FluidStyledContent layoutRootPaths.20 = EXT:ep_events/Resources/Private/Layouts/FluidStyledContent
@@ -0,0 +1 @@
@import "EXT:form/Configuration/TypoScript/setup.typoscript"
@@ -1,4 +1,4 @@
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:news/Configuration/TypoScript/setup.txt"> @import "EXT:news/Configuration/TypoScript/setup.txt"
plugin.tx_news { plugin.tx_news {
view { view {
@@ -113,10 +113,10 @@ page {
headerData.999.stdWrap.if.isTrue = {$plugin.tx_epevents.settings.googleTagManagerId} headerData.999.stdWrap.if.isTrue = {$plugin.tx_epevents.settings.googleTagManagerId}
} }
[globalVar = TSFE:page|doktype = 101] [page["doktype"] == 101]
page.stdWrap.addPageCacheTags = category_page,epevents_page page.stdWrap.addPageCacheTags = category_page,epevents_page
[end] [END]
[globalVar = TSFE:page|doktype = 102] [page["doktype"] == 102]
page.stdWrap.addPageCacheTags = offer_page,epevents_page page.stdWrap.addPageCacheTags = offer_page,epevents_page
[end] [END]
@@ -57,6 +57,5 @@ plugin.tx_epevents {
} }
} }
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:fluid_styled_content/Configuration/TypoScript/constants.txt"> @import "EXT:fluid_styled_content/Configuration/TypoScript/constants.typoscript"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:form_legacy/Configuration/TypoScript/constants.txt"> @import "EXT:news/Configuration/TypoScript/constants.txt"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:news/Configuration/TypoScript/constants.txt">
@@ -1,16 +1,16 @@
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:ep_events/Configuration/TypoScript/Extensions/FluidStyledContent.typoscript"> @import "EXT:ep_events/Configuration/TypoScript/Extensions/FluidStyledContent.typoscript"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:ep_events/Configuration/TypoScript/Extensions/Form.typoscript"> @import "EXT:ep_events/Configuration/TypoScript/Extensions/Form.typoscript"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:ep_events/Configuration/TypoScript/Extensions/News.typoscript"> @import "EXT:ep_events/Configuration/TypoScript/Extensions/News.typoscript"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:ep_events/Configuration/TypoScript/Library/DynamicContent.typoscript"> @import "EXT:ep_events/Configuration/TypoScript/Library/DynamicContent.typoscript"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:ep_events/Configuration/TypoScript/Library/ParseFunc.typoscript"> @import "EXT:ep_events/Configuration/TypoScript/Library/ParseFunc.typoscript"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:ep_events/Configuration/TypoScript/Library/SearchForm.typoscript"> @import "EXT:ep_events/Configuration/TypoScript/Library/SearchForm.typoscript"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:ep_events/Configuration/TypoScript/Library/Configurator.typoscript"> @import "EXT:ep_events/Configuration/TypoScript/Library/Configurator.typoscript"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:ep_events/Configuration/TypoScript/ContentElements/banner.typoscript"> @import "EXT:ep_events/Configuration/TypoScript/ContentElements/banner.typoscript"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:ep_events/Configuration/TypoScript/ContentElements/herounit.typoscript"> @import "EXT:ep_events/Configuration/TypoScript/ContentElements/herounit.typoscript"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:ep_events/Configuration/TypoScript/ContentElements/statement.typoscript"> @import "EXT:ep_events/Configuration/TypoScript/ContentElements/statement.typoscript"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:ep_events/Configuration/TypoScript/ContentElements/tile.typoscript"> @import "EXT:ep_events/Configuration/TypoScript/ContentElements/tile.typoscript"
plugin.tx_epevents { plugin.tx_epevents {
features { features {
@@ -81,9 +81,9 @@ lib.parseFunc_RTE {
tt_content.stdWrap.innerWrap > tt_content.stdWrap.innerWrap >
lib.stdheader.3.headerClass > lib.stdheader.3.headerClass >
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:ep_events/Configuration/TypoScript/Page/Main.typoscript"> @import "EXT:ep_events/Configuration/TypoScript/Page/Main.typoscript"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:ep_events/Configuration/TypoScript/Page/Ajax.typoscript"> @import "EXT:ep_events/Configuration/TypoScript/Page/Ajax.typoscript"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:ep_events/Configuration/TypoScript/Page/XMLSitemap.typoscript"> @import "EXT:ep_events/Configuration/TypoScript/Page/XMLSitemap.typoscript"
config { config {
doctype = html5 doctype = html5

Some files were not shown because too many files have changed in this diff Show More