Merge branch 'release/2019.10-06'
This commit is contained in:
Generated
+47
-47
@@ -1173,9 +1173,9 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "Helmut Hummel",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]",
|
||||
"homepage": "http://helhum.io"
|
||||
"homepage": "http://helhum.io",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "A reliable and powerful command line interface for TYPO3 CMS",
|
||||
@@ -3341,8 +3341,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "The TYPO3 admin panel provides a panel with additional functionality in the frontend (Debugging, Caching, Preview...)",
|
||||
@@ -3406,8 +3406,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Classes for the TYPO3 backend.",
|
||||
@@ -3510,8 +3510,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Backend user administration and overview. Allows you to compare the settings of users and verify their permissions and see who is online.",
|
||||
@@ -3725,8 +3725,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "The core library of TYPO3.",
|
||||
@@ -3841,8 +3841,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "TYPO3 Extension Manager",
|
||||
@@ -3947,8 +3947,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Listing of files in the directory",
|
||||
@@ -4052,8 +4052,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Fluid is a next-generation templating engine which makes the life of extension authors a lot easier!",
|
||||
@@ -4221,8 +4221,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Classes for the frontend of TYPO3.",
|
||||
@@ -4280,8 +4280,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Shows various infos",
|
||||
@@ -4338,8 +4338,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "The Install Tool mounted as the module Tools>Install in TYPO3.",
|
||||
@@ -4395,8 +4395,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Enables the 'Config' and 'DB Check' modules for technical analysis of the system. This includes raw database search, checking relations, counting pages and records etc.",
|
||||
@@ -4454,8 +4454,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "List of database-records",
|
||||
@@ -4506,8 +4506,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "The recycler offers the possibility to restore deleted records or remove them from the database permanently. These actions can be applied to a single record, multiple records, and recursively to child records (ex. restoring a page can restore all content elements on that page). Filtering by page and by table provides a quick overview of deleted records before taking action on them.",
|
||||
@@ -4560,8 +4560,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Custom redirects in TYPO3.",
|
||||
@@ -4675,8 +4675,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Integration of CKEditor as Rich Text Editor.",
|
||||
@@ -4724,8 +4724,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "The TYPO3 Scheduler let's you register tasks to happen at a specific time",
|
||||
@@ -4778,8 +4778,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "SEO features for TYPO3.",
|
||||
@@ -4887,8 +4887,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "JavaScript-driven editor with syntax highlighting and codecompletion. Based on CodeMirror.",
|
||||
@@ -4988,8 +4988,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Framework for management of TypoScript template records for the CMS frontend.",
|
||||
@@ -5040,8 +5040,8 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "TYPO3 Core Team",
|
||||
"role": "Developer",
|
||||
"email": "[email protected]"
|
||||
"email": "[email protected]",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Shows the frontend webpage inside the backend frameset.",
|
||||
@@ -5167,16 +5167,16 @@
|
||||
},
|
||||
{
|
||||
"name": "yoast-seo-for-typo3/yoast_seo",
|
||||
"version": "v5.1.0",
|
||||
"version": "v5.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Yoast/Yoast-SEO-for-TYPO3.git",
|
||||
"reference": "76b5bc54a215dc7d8957677ca24c9813f6dc787a"
|
||||
"reference": "3f7dda6c97cb5438cc3a39660f2ee032b557547c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Yoast/Yoast-SEO-for-TYPO3/zipball/76b5bc54a215dc7d8957677ca24c9813f6dc787a",
|
||||
"reference": "76b5bc54a215dc7d8957677ca24c9813f6dc787a",
|
||||
"url": "https://api.github.com/repos/Yoast/Yoast-SEO-for-TYPO3/zipball/3f7dda6c97cb5438cc3a39660f2ee032b557547c",
|
||||
"reference": "3f7dda6c97cb5438cc3a39660f2ee032b557547c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5232,7 +5232,7 @@
|
||||
"seo",
|
||||
"yoast"
|
||||
],
|
||||
"time": "2019-09-20T14:23:25+00:00"
|
||||
"time": "2019-10-10T17:32:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "yohang/calendr",
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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'],
|
||||
|
||||
@@ -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'],
|
||||
|
||||
@@ -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,
|
||||
|
||||
+8
-1
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
+24
@@ -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
|
||||
',
|
||||
];
|
||||
|
||||
});
|
||||
|
||||
+2
@@ -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
|
||||
|
||||
@@ -21,12 +21,13 @@
|
||||
</f:link.action>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:link.typolink
|
||||
parameter="{teaser.product.detailPage}"
|
||||
class="teaserbox__flip"
|
||||
title="{teaser.product.name}">
|
||||
<f:variable name="teaserUrl" value="{f:uri.typolink(parameter: teaser.product.detailPage)}"/>
|
||||
<f:if condition="{slug}">
|
||||
<f:variable name="teaserUrl" value="{teaserUrl}{slug}/"/>
|
||||
</f:if>
|
||||
<a href="{teaserUrl}" class="teaserbox__flip" title="{teaser.product.name}">
|
||||
<f:render section="Inner" arguments="{_all}"/>
|
||||
</f:link.typolink>
|
||||
</a>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
|
||||
@@ -7,10 +7,13 @@
|
||||
<f:section name="Teaser">
|
||||
<f:if condition="{teaser.forceHotelUid}">
|
||||
<f:then>
|
||||
<v:variable.set name="uriLink" value="{f:uri.action(pageUid: teaser.product.detailPage, action: 'detail', controller: 'Product', arguments: '{product: teaser.product.uid, hotel: teaser.hotel.uid}', extensionName: 'epproducts', pluginName: 'product_detail')}"/>
|
||||
<f:variable name="teaserUrl" value="{f:uri.action(pageUid: teaser.product.detailPage, action: 'detail', controller: 'Product', arguments: '{product: teaser.product.uid, hotel: teaser.hotel.uid}', extensionName: 'epproducts', pluginName: 'product_detail')}"/>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<v:variable.set name="uriLink" value="{f:uri.typolink(parameter: teaser.product.detailPage)}"/>
|
||||
<f:variable name="teaserUrl" value="{f:uri.typolink(parameter: teaser.product.detailPage)}"/>
|
||||
<f:if condition="{slug}">
|
||||
<f:variable name="teaserUrl" value="{teaserUrl}{slug}/"/>
|
||||
</f:if>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<f:render section="Inner" arguments="{_all}"/>
|
||||
@@ -22,7 +25,7 @@
|
||||
<img class="teaserbox__flag"
|
||||
src="{teaser.country.flag}"
|
||||
alt="{teaser.country.name}"/>
|
||||
<a href="{uriLink}" title="{teaser.product.name}">
|
||||
<a href="{teaserUrl}" title="{teaser.product.name}">
|
||||
<f:render section="Image" arguments="{_all}"/>
|
||||
</a>
|
||||
<f:if condition="{teaser.concept.code}">
|
||||
@@ -80,7 +83,7 @@
|
||||
<span class="searchresult-item__label">{f:if(condition: '{teaser.dates -> f:count()} > 1', then: 'Zeitraum', else: 'Termin')}</span>
|
||||
<span class="searchresult-item__daterange">{ep:dateRange(dateFrom: teaser.minDateStart, dateTo: teaser.maxDateEnd, includeLabel: 0)}</span>
|
||||
<f:if condition="{teaser.dates -> f:count()} > 1 && !{teaser.daytrip}">
|
||||
<a href="{uriLink}" title="Alle Termine {teaser.product.name}">
|
||||
<a href="{teaserUrl}" title="Alle Termine {teaser.product.name}">
|
||||
<span class="searchresult-item__daterange">
|
||||
<i class="fa fa-arrow-circle-right"></i> {teaser.dates -> f:count()} Termin{f:if(condition: '{teaser.dates -> f:count()} > 1', then: 'e')}
|
||||
</span>
|
||||
@@ -91,7 +94,7 @@
|
||||
</div>
|
||||
<div class="teaserbox__aside__bottom">
|
||||
<span class="searchresult-item__price">ab {teaser.minPrice} €{f:if(condition: teaser.pseudoPrice, then: ' <s class="searchresult-item__pseudo-price">{teaser.pseudoPrice} €</s>')}</span>
|
||||
<a href="{uriLink}" title="{teaser.product.name}" class="button button--full searchresult-item__button">Details & Buchen</a>
|
||||
<a href="{teaserUrl}" title="{teaser.product.name}" class="button button--full searchresult-item__button">Details & Buchen</a>
|
||||
</div>
|
||||
</div>
|
||||
<watchlist-toggle uid="{teaser.key}" class="teaserbox-watchlist"></watchlist-toggle>
|
||||
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
<html data-namespace-typo3-fluid="true" lang="en"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">
|
||||
|
||||
<f:layout name="Default"/>
|
||||
|
||||
<f:section name="Main">
|
||||
<f:if condition="{teaser.dates}">
|
||||
<f:switch expression="{data.layout}">
|
||||
<f:case value="2">
|
||||
{f:variable(name: 'partial', value: 'Product/TeaserWide')}
|
||||
</f:case>
|
||||
<f:case value="3">
|
||||
{f:variable(name: 'partial', value: 'Product/TeaserWide')}
|
||||
</f:case>
|
||||
<f:defaultCase>
|
||||
{f:variable(name: 'partial', value: 'Product/Teaser')}
|
||||
</f:defaultCase>
|
||||
</f:switch>
|
||||
<f:render partial="{partial}" section="Teaser" arguments="{teaser: teaser, slug: teaser.product.slug}"/>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user