diff --git a/public/typo3conf/ext/ep_products/Classes/Domain/Repository/ProductRepository.php b/public/typo3conf/ext/ep_products/Classes/Domain/Repository/ProductRepository.php
index 17d14afa..6ecc3ca8 100644
--- a/public/typo3conf/ext/ep_products/Classes/Domain/Repository/ProductRepository.php
+++ b/public/typo3conf/ext/ep_products/Classes/Domain/Repository/ProductRepository.php
@@ -146,6 +146,7 @@ class ProductRepository extends AbstractRepository
->select(
'product as productUid', 'product_name as productName', 'product_detail_page as productDetailPage',
'product_feature as productFeature', 'product_teaser as productTeaser', 'product_fact as productFact',
+ 'product_slug as productSlug',
'hotel as hotelUid', 'hotel_fact as hotelFact', 'hotel_name as hotelName',
'hotel_category as hotelCategory', 'region_fact as regionFact', 'region_name as regionName',
'region_feature as regionFeature',
diff --git a/public/typo3conf/ext/ep_products/Classes/Service/DateImportService.php b/public/typo3conf/ext/ep_products/Classes/Service/DateImportService.php
index f0942248..2cec6f07 100644
--- a/public/typo3conf/ext/ep_products/Classes/Service/DateImportService.php
+++ b/public/typo3conf/ext/ep_products/Classes/Service/DateImportService.php
@@ -235,7 +235,7 @@ class DateImportService implements SingletonInterface
SELECT p.uid uid, p.daytrip daytrip, p.important important, p.name product_name,
p.searchable product_searchable, p.detail_page product_detail_page, p.keywords product_keywords,
p.teaser product_teaser, p.feature product_feature, p.subline product_subline, p.country country,
- p.region region, p.city city,
+ p.region region, p.city city, p.path_segment slug,
cnt.name country_name, cnt.code country_code, cnt.keywords country_keywords, r.name region_name,
r.keywords region_keywords, r.feature region_feature, c.name city_name, c.keywords city_keywords,
p.concept concept, con.name concept_name, con.code concept_code, con.sorting concept_sorting
@@ -342,6 +342,7 @@ class DateImportService implements SingletonInterface
'product_feature' => $product['product_feature'],
'product_teaser' => $product['product_teaser'],
'product_subline' => $product['product_subline'],
+ 'product_slug' => $product['slug'],
'country' => $product['country'],
'country_name' => $product['country_name'],
'country_code' => $product['country_code'],
diff --git a/public/typo3conf/ext/ep_products/Classes/Service/ProductDataService.php b/public/typo3conf/ext/ep_products/Classes/Service/ProductDataService.php
index b933f7dc..83c6da30 100644
--- a/public/typo3conf/ext/ep_products/Classes/Service/ProductDataService.php
+++ b/public/typo3conf/ext/ep_products/Classes/Service/ProductDataService.php
@@ -204,6 +204,7 @@ class ProductDataService implements SingletonInterface
'name' => $teaserData['productName'],
'subline' => $teaserData['productSubline'],
'detailPage' => $teaserData['productDetailPage'],
+ 'slug' => $teaserData['productSlug'],
'fact' => $teaserData['productFact'],
'feature' => $teaserData['productFeature'],
'teaser' => $teaserData['productTeaser'],
diff --git a/public/typo3conf/ext/ep_products/ext_tables.sql b/public/typo3conf/ext/ep_products/ext_tables.sql
index d29aaf2b..bcb2d028 100644
--- a/public/typo3conf/ext/ep_products/ext_tables.sql
+++ b/public/typo3conf/ext/ep_products/ext_tables.sql
@@ -128,6 +128,7 @@ CREATE TABLE tx_epproducts_domain_model_date
product_keywords text NOT NULL,
product_teaser text NOT NULL,
product_feature varchar(255) DEFAULT '' NOT NULL,
+ product_slug varchar(255) DEFAULT '' NOT NULL,
concept int(11) unsigned DEFAULT '0',
concept_name varchar(255) DEFAULT '' NOT NULL,
concept_code varchar(32) DEFAULT '' NOT NULL,
diff --git a/public/typo3conf/ext/ep_theme/Configuration/PageTS/Mod/Wizards/NewContentElement.tsconfig b/public/typo3conf/ext/ep_theme/Configuration/PageTS/Mod/Wizards/NewContentElement.tsconfig
index 22b30da5..d9d8f31c 100644
--- a/public/typo3conf/ext/ep_theme/Configuration/PageTS/Mod/Wizards/NewContentElement.tsconfig
+++ b/public/typo3conf/ext/ep_theme/Configuration/PageTS/Mod/Wizards/NewContentElement.tsconfig
@@ -49,8 +49,15 @@ mod {
description = Teaser für ein auswählbares Produkt
tt_content_defValues.CType = teaser_product
}
+ teaser_booking_link {
+ iconIdentifier = content-ep_theme-ce
+ title = Teaser Buchungslink
+ description = Teaser für ein auswählbares Produkt (Buchungslink)
+ tt_content_defValues.CType = teaser_booking_link
+ }
}
- show := addToList(teaser, teaser_country, teaser_region, teaser_city, teaser_hotel, teaser_concept, teaser_product)
+ show := addToList(teaser, teaser_country, teaser_region, teaser_city, teaser_hotel, teaser_concept)
+ show := addToList(teaser_product, teaser_booking_link)
}
disturber {
header = Störer
diff --git a/public/typo3conf/ext/ep_theme/Configuration/PageTS/TCEFORM.tsconfig b/public/typo3conf/ext/ep_theme/Configuration/PageTS/TCEFORM.tsconfig
index 48dfd87b..cc8ceed2 100644
--- a/public/typo3conf/ext/ep_theme/Configuration/PageTS/TCEFORM.tsconfig
+++ b/public/typo3conf/ext/ep_theme/Configuration/PageTS/TCEFORM.tsconfig
@@ -82,6 +82,14 @@ TCEFORM {
}
}
+ layout.types.teaser_booking_link {
+ removeItems = 0,2
+ altLabels {
+ 1 = einspaltig
+ 3 = mehrspaltig/quer
+ }
+ }
+
layout.types.ytvideo {
removeItems = 2,3
altLabels {
diff --git a/public/typo3conf/ext/ep_theme/Configuration/TCA/Overrides/tt_content_element_teaser.php b/public/typo3conf/ext/ep_theme/Configuration/TCA/Overrides/tt_content_element_teaser.php
index 090d0cfb..1fec92ce 100644
--- a/public/typo3conf/ext/ep_theme/Configuration/TCA/Overrides/tt_content_element_teaser.php
+++ b/public/typo3conf/ext/ep_theme/Configuration/TCA/Overrides/tt_content_element_teaser.php
@@ -89,6 +89,18 @@ call_user_func(function() {
'after'
);
+ \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
+ 'tt_content',
+ 'CType',
+ [
+ 'Teaser Buchungslink',
+ 'teaser_booking_link',
+ 'content-image'
+ ],
+ 'teaser_concept',
+ 'after'
+ );
+
$GLOBALS['TCA']['tt_content']['types']['teaser'] = [
'showitem' => '
--palette--;' . $frontendLanguageFilePrefix . 'palette.general;general,
@@ -229,4 +241,16 @@ call_user_func(function() {
',
];
+ $GLOBALS['TCA']['tt_content']['types']['teaser_booking_link'] = [
+ 'showitem' => '
+ --palette--;' . $frontendLanguageFilePrefix . 'palette.general;general,
+ --palette--;Kontext, tx_eptheme_context_product,
+ --div--;' . $frontendLanguageFilePrefix . 'tabs.appearance,
+ layout;' . $frontendLanguageFilePrefix . 'layout_formlabel,
+ --div--;' . $frontendLanguageFilePrefix . 'tabs.access,
+ hidden;' . $frontendLanguageFilePrefix . 'field.default.hidden,
+ --div--;' . $frontendLanguageFilePrefix . 'tabs.extended
+ ',
+ ];
+
});
diff --git a/public/typo3conf/ext/ep_theme/Configuration/TypoScript/ContentElements/teaser.typoscript b/public/typo3conf/ext/ep_theme/Configuration/TypoScript/ContentElements/teaser.typoscript
index ab084bbd..c787fcf4 100644
--- a/public/typo3conf/ext/ep_theme/Configuration/TypoScript/ContentElements/teaser.typoscript
+++ b/public/typo3conf/ext/ep_theme/Configuration/TypoScript/ContentElements/teaser.typoscript
@@ -27,3 +27,5 @@ tt_content.teaser_concept =< tt_content.teaser_country
tt_content.teaser_concept.templateName = TeaserConcept
tt_content.teaser_product =< tt_content.teaser_country
tt_content.teaser_product.templateName = TeaserProduct
+tt_content.teaser_booking_link =< tt_content.teaser_product
+tt_content.teaser_booking_link.templateName = TeaserBookingLink
diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Product/Teaser.html b/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Product/Teaser.html
index 7e310573..5f4b0291 100644
--- a/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Product/Teaser.html
+++ b/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Product/Teaser.html
@@ -21,12 +21,13 @@
-
+
+
+
+
+
-
+
diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Product/TeaserWide.html b/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Product/TeaserWide.html
index e96a28c0..6a1893a6 100644
--- a/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Product/TeaserWide.html
+++ b/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Product/TeaserWide.html
@@ -7,10 +7,13 @@
-
+
-
+
+
+
+
@@ -22,7 +25,7 @@
-
+
@@ -80,7 +83,7 @@
{f:if(condition: '{teaser.dates -> f:count()} > 1', then: 'Zeitraum', else: 'Termin')}
{ep:dateRange(dateFrom: teaser.minDateStart, dateTo: teaser.maxDateEnd, includeLabel: 0)}
-
+
{teaser.dates -> f:count()} Termin{f:if(condition: '{teaser.dates -> f:count()} > 1', then: 'e')}
@@ -91,7 +94,7 @@
diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Templates/FluidStyledContent/TeaserBookingLink.html b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/FluidStyledContent/TeaserBookingLink.html
new file mode 100644
index 00000000..bbbdc69c
--- /dev/null
+++ b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/FluidStyledContent/TeaserBookingLink.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+ {f:variable(name: 'partial', value: 'Product/TeaserWide')}
+
+
+ {f:variable(name: 'partial', value: 'Product/TeaserWide')}
+
+
+ {f:variable(name: 'partial', value: 'Product/Teaser')}
+
+
+
+
+
+
+