WIP Migrate all teaser sliders to splide

This commit is contained in:
Björn Fromme
2021-07-27 14:06:11 +02:00
parent 20bacdd8cb
commit 97bc90b208
30 changed files with 296 additions and 461 deletions
-1
View File
@@ -22,7 +22,6 @@
"league/csv": "^9.2", "league/csv": "^9.2",
"league/period": "^4.9", "league/period": "^4.9",
"lochmueller/staticfilecache": "^10.2", "lochmueller/staticfilecache": "^10.2",
"pixelant/pxa-social-feed": "^2.0",
"ssch/typo3-encore": "^2.0", "ssch/typo3-encore": "^2.0",
"symfony/http-client": "^4.3", "symfony/http-client": "^4.3",
"symfony/options-resolver": "^4.2", "symfony/options-resolver": "^4.2",
Generated
+1 -121
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "bdb0e8fc25a5e98d75bea5bce07ec0bd", "content-hash": "eca3ebc095a3587edf9bd8d7011159e2",
"packages": [ "packages": [
{ {
"name": "christophlehmann/imageoptimizer", "name": "christophlehmann/imageoptimizer",
@@ -631,68 +631,6 @@
], ],
"time": "2020-05-25T17:44:05+00:00" "time": "2020-05-25T17:44:05+00:00"
}, },
{
"name": "facebook/graph-sdk",
"version": "5.7.0",
"source": {
"type": "git",
"url": "https://github.com/facebook/php-graph-sdk.git",
"reference": "2d8250638b33d73e7a87add65f47fabf91f8ad9b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/facebook/php-graph-sdk/zipball/2d8250638b33d73e7a87add65f47fabf91f8ad9b",
"reference": "2d8250638b33d73e7a87add65f47fabf91f8ad9b",
"shasum": ""
},
"require": {
"php": "^5.4|^7.0"
},
"require-dev": {
"guzzlehttp/guzzle": "~5.0",
"mockery/mockery": "~0.8",
"phpunit/phpunit": "~4.0"
},
"suggest": {
"guzzlehttp/guzzle": "Allows for implementation of the Guzzle HTTP client",
"paragonie/random_compat": "Provides a better CSPRNG option in PHP 5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "5.x-dev"
}
},
"autoload": {
"psr-4": {
"Facebook\\": "src/Facebook/"
},
"files": [
"src/Facebook/polyfills.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Facebook Platform"
],
"authors": [
{
"name": "Facebook",
"homepage": "https://github.com/facebook/php-graph-sdk/contributors"
}
],
"description": "Facebook SDK for PHP",
"homepage": "https://github.com/facebook/php-graph-sdk",
"keywords": [
"facebook",
"sdk"
],
"support": {
"issues": "https://github.com/facebook/php-graph-sdk/issues",
"source": "https://github.com/facebook/php-graph-sdk/tree/5.7.0"
},
"time": "2018-12-11T22:56:31+00:00"
},
{ {
"name": "fluidtypo3/vhs", "name": "fluidtypo3/vhs",
"version": "5.2.0", "version": "5.2.0",
@@ -1683,64 +1621,6 @@
}, },
"time": "2021-07-03T13:36:55+00:00" "time": "2021-07-03T13:36:55+00:00"
}, },
{
"name": "pixelant/pxa-social-feed",
"version": "v2.3.1",
"source": {
"type": "git",
"url": "https://github.com/pixelant/pxa_social_feed.git",
"reference": "dfabd173eee203b575f28aab98181be3556e05b0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/pixelant/pxa_social_feed/zipball/dfabd173eee203b575f28aab98181be3556e05b0",
"reference": "dfabd173eee203b575f28aab98181be3556e05b0",
"shasum": ""
},
"require": {
"facebook/graph-sdk": "~5.7.0",
"php": ">=7.1",
"typo3/cms-core": "^8.7 || ^9.5"
},
"require-dev": {
"nimut/testing-framework": "^4.1",
"squizlabs/php_codesniffer": "^3.4"
},
"type": "typo3-cms-extension",
"extra": {
"branch-alias": {
"dev-master": "0.0.x-dev"
},
"typo3/cms": {
"extension-key": "pxa_social_feed",
"cms-package-dir": "{$vendor-dir}/typo3/cms",
"web-dir": ".Build/Web"
}
},
"autoload": {
"psr-4": {
"Pixelant\\PxaSocialFeed\\": "Classes/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"GPL-2.0-or-later"
],
"authors": [
{
"name": "Pixelant",
"email": "[email protected]",
"homepage": "https://www.pixelant.net",
"role": "Developer"
}
],
"description": "Add Facebook, Instagram, and Twitter feeds to your site.",
"support": {
"issues": "https://github.com/pixelant/pxa_social_feed/issues",
"source": "https://github.com/pixelant/pxa_social_feed/tree/v2.3.1"
},
"time": "2020-04-06T06:54:44+00:00"
},
{ {
"name": "psr/cache", "name": "psr/cache",
"version": "1.0.1", "version": "1.0.1",
@@ -66,6 +66,8 @@ class CityController extends ActionController
$regionUid = $this->settings['regionUid']; $regionUid = $this->settings['regionUid'];
$season = $this->settings['season']; $season = $this->settings['season'];
$cities = $this->cityRepository->getTeasersByRegionAndSeason($regionUid, $season); $cities = $this->cityRepository->getTeasersByRegionAndSeason($regionUid, $season);
$data = $this->configurationManager->getContentObject()->data;
$this->view->assign('data', $data);
$this->view->assign('teasers', $cities); $this->view->assign('teasers', $cities);
} }
@@ -129,6 +129,8 @@ class HotelController extends ActionController
$bookable = $this->hotelDataService->getTeasersByCriteria($criteria); $bookable = $this->hotelDataService->getTeasersByCriteria($criteria);
$bookableHotelUids = array_keys($bookable); $bookableHotelUids = array_keys($bookable);
$nonBookable = $this->hotelDataService->getDateIndependentTeasersByCriteria($criteria, $bookableHotelUids); $nonBookable = $this->hotelDataService->getDateIndependentTeasersByCriteria($criteria, $bookableHotelUids);
$data = $this->configurationManager->getContentObject()->data;
$this->view->assign('data', $data);
$this->view->assign('bookable', $bookable); $this->view->assign('bookable', $bookable);
$this->view->assign('nonBookable', $nonBookable); $this->view->assign('nonBookable', $nonBookable);
} }
@@ -143,6 +145,8 @@ class HotelController extends ActionController
'type' => (int) $this->settings['type'], 'type' => (int) $this->settings['type'],
]; ];
$hotels = $this->hotelDataService->getDateIndependentTeasersByCriteria($criteria); $hotels = $this->hotelDataService->getDateIndependentTeasersByCriteria($criteria);
$data = $this->configurationManager->getContentObject()->data;
$this->view->assign('data', $data);
$this->view->assign('teasers', $hotels); $this->view->assign('teasers', $hotels);
} }
@@ -102,6 +102,8 @@ class MapController extends ActionController
} }
} }
$data = $this->configurationManager->getContentObject()->data;
$this->view->assign('data', $data);
$this->view->assign('markerData', json_encode($markerData)); $this->view->assign('markerData', json_encode($markerData));
} }
@@ -210,6 +210,8 @@ class ProductController extends ActionController
$teasers = $this->productDataService->getTeasergroup($filterSettings, $excludedConceptUids, $limit); $teasers = $this->productDataService->getTeasergroup($filterSettings, $excludedConceptUids, $limit);
$dateFrom = $this->settings['dateFrom'] ? date('Y-m-d', $this->settings['dateFrom']) : null; $dateFrom = $this->settings['dateFrom'] ? date('Y-m-d', $this->settings['dateFrom']) : null;
$dateTo = $this->settings['dateTo'] ? date('Y-m-d', $this->settings['dateTo']) : null; $dateTo = $this->settings['dateTo'] ? date('Y-m-d', $this->settings['dateTo']) : null;
$data = $this->configurationManager->getContentObject()->data;
$this->view->assign('data', $data);
$this->view->assign('teasers', $teasers); $this->view->assign('teasers', $teasers);
$this->view->assign('dateAuto', $dateAuto); $this->view->assign('dateAuto', $dateAuto);
$this->view->assign('filterSettings', $filterSettings); $this->view->assign('filterSettings', $filterSettings);
@@ -87,6 +87,8 @@ class RegionController extends ActionController
$countryUid = $this->settings['countryUid']; $countryUid = $this->settings['countryUid'];
$season = $this->settings['season']; $season = $this->settings['season'];
$regions = $this->regionRepository->getTeasersByCountryAndSeason($countryUid, $season); $regions = $this->regionRepository->getTeasersByCountryAndSeason($countryUid, $season);
$data = $this->configurationManager->getContentObject()->data;
$this->view->assign('data', $data);
$this->view->assign('teasers', $regions); $this->view->assign('teasers', $regions);
} }
@@ -52,7 +52,9 @@ class SnowreportController extends ActionController
{ {
$regionUids = GeneralUtility::trimExplode(',', $this->settings['regionUids'], true); $regionUids = GeneralUtility::trimExplode(',', $this->settings['regionUids'], true);
$list = $this->snowreportRepository->getSnowreportsForRegions($regionUids); $list = $this->snowreportRepository->getSnowreportsForRegions($regionUids);
$data = $this->configurationManager->getContentObject()->data;
$this->view->assign('data', $data);
$this->view->assign('list', $list); $this->view->assign('list', $list);
} }
} }
@@ -34,6 +34,8 @@ class WatchlistController extends ActionController
public function listAction() public function listAction()
{ {
$data = $this->configurationManager->getContentObject()->data;
$this->view->assign('data', $data);
$this->view->assign('referringPageUid', $GLOBALS['TSFE']->id); $this->view->assign('referringPageUid', $GLOBALS['TSFE']->id);
} }
@@ -7,10 +7,9 @@ export default class extends Controller {
connect() { connect() {
useDebounce(this) useDebounce(this)
const handler = this.debounce(() => { window.addEventListener('scroll', this.debounce(() => {
this.showValue = window.scrollY > window.innerHeight/3 this.showValue = window.scrollY > window.innerHeight/3
}, 250) }, 250))
window.addEventListener('scroll', handler, { passive: true })
} }
scroll(e) { scroll(e) {
@@ -4,7 +4,7 @@ import Splide from '@splidejs/splide'
export default class extends Controller { export default class extends Controller {
static classes = [ 'pagination' ] static classes = [ 'pagination' ]
static values = { preset: String } static values = { preset: String, arrows: Boolean, dots: Boolean }
connect() { connect() {
const classes = { const classes = {
@@ -16,8 +16,12 @@ export default class extends Controller {
} }
let options = { let options = {
perMove: 1,
gap: '1rem',
pauseOnHover: false, pauseOnHover: false,
pauseOnFocus: false, pauseOnFocus: false,
pagination: this.dotsValue,
arrows: this.arrowsValue,
classes classes
} }
@@ -25,33 +29,79 @@ export default class extends Controller {
case 'header-detail': case 'header-detail':
options = { options = {
...options, ...options,
perPage: 1,
rewind: true, rewind: true,
} }
break; break;
case 'teasers': case 'teasers':
options = { options = {
...options, ...options,
perPage: 3, perPage: 4,
perMove: 1, padding: {
pagination: false, right: '2rem',
gap: '1rem', },
breakpoints: { breakpoints: {
1200: { 1200: {
perPage: 3, perPage: 4,
padding: {
right: '2rem',
},
}, },
992: { 1024: {
perPage: 2.75, perPage: 3,
padding: {
right: '2rem',
},
},
960: {
perPage: 2,
padding: {
right: '2rem',
},
}, },
640: { 640: {
perPage: 2.5, perPage: 1,
}, padding: {
384: { right: '2rem',
perPage: 1.75, },
} }
} }
} }
break; break;
case 'teasers_embedded':
options = {
...options,
perPage: 2,
padding: {
right: '25%',
},
breakpoints: {
960: {
perPage: 3,
padding: {
right: '10%',
},
},
768: {
perPage: 2,
padding: {
right: '25%',
},
},
640: {
perPage: 2,
padding: {
right: '10%',
},
},
512: {
perPage: 1,
padding: {
right: '10%',
},
},
}
}
break;
default: default:
} }
@@ -120,11 +120,11 @@
} }
} }
.splide__arrows { //.splide__arrows {
@include mq($until: desktop) { // @include mq($until: desktop) {
display: none; // display: none;
} // }
} //}
.slider-pagination__arrow { .slider-pagination__arrow {
border: none; border: none;
@@ -0,0 +1,18 @@
<html data-namespace-typo3-fluid="true" lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">
<f:if condition="{data.header}">
<f:if condition="{data.header_layout} != 100">
<ep:container data="{data}">
<div class="row">
<div class="col-md-12">
<f:render partial="Header/Header" arguments="{header: data.header, subheader: data.subheader, layout: data.header_layout, link: data.header_link, default: settings.defaultHeaderType}" />
</div>
</div>
</ep:container>
</f:if>
</f:if>
</html>
@@ -10,13 +10,15 @@
<f:if condition="{teasers}"> <f:if condition="{teasers}">
<f:then> <f:then>
<a id="teasers" class="anchor"></a> <a id="teasers" class="anchor"></a>
<div class="slider slider--teasers in-column"> <div class="splide" data-controller="slider" data-slider-preset-value="teasers">
<div class="row slider__items"> <div class="splide__track">
<f:for each="{teasers}" as="teaser"> <ul class="splide__list">
<div class="col-md-4"> <f:for each="{teasers}" as="teaser">
<f:render partial="Product/Teaser" section="Teaser" arguments="{teaser: teaser}"/> <li class="splide__slide">
</div> <f:render partial="Product/Teaser" section="Teaser" arguments="{teaser: teaser}"/>
</f:for> </li>
</f:for>
</ul>
</div> </div>
</div> </div>
<f:if condition="{settings.showMoreLink}"> <f:if condition="{settings.showMoreLink}">
@@ -2,37 +2,38 @@
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers" xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers"
data-namespace-typo3-fluid="true"> data-namespace-typo3-fluid="true">
<:variable.set name="images" value="{media -> v:iterator.filter(propertyName: 'showinpreview', filter: 0)}"/> <f:alias map="{images: '{media -> v:iterator.filter(propertyName: \'showinpreview\', filter: 0)}'}">
<f:if condition="{images}"> <f:if condition="{images}">
<div data-controller="slider" <div data-controller="slider"
data-splide='{"perPage": 1, "rewind": true}' data-splide='{"perPage": 1, "rewind": true}'
data-slider-pagination-class="slider-pagination" data-slider-pagination-class="slider-pagination"
class="splide slider slider--content"> class="splide slider slider--content">
<div id="carousel-{id}" class="splide__track slider__items"> <div id="carousel-{id}" class="splide__track slider__items">
<ul class="splide__list"> <ul class="splide__list">
<f:for each="{images}" as="image" iteration="iteration"> <f:for each="{images}" as="image" iteration="iteration">
<li class="splide__slide"> <li class="splide__slide">
<f:link.typolink parameter="{image.originalResource.link}" class="slider__item"> <f:link.typolink parameter="{image.originalResource.link}" class="slider__item">
<img src="{f:uri.image(image: image, width: '770', height: '430c+100')}" <img src="{f:uri.image(image: image, width: '770', height: '430c+100')}"
class="slider__image" alt="{image.alternative}" title="{image.title}"> class="slider__image" alt="{image.alternative}" title="{image.title}">
</f:link.typolink> </f:link.typolink>
</li> </li>
</f:for> </f:for>
</ul> </ul>
</div>
<f:if condition="{images -> f:count()} > 1">
<div class="slider__thumbs hidden-sm hidden-xs">
<f:for each="{images}" as="image" iteration="iteration">
<f:if condition="{iteration.cycle} <= 5">
<a href="#" class="slider__thumb" data-slide="{iteration.index}">
<img src="{f:uri.image(image: image, width: '150', height: '85c+100')}"
class="img-responsive" alt="{image.alternative}" title="{image.title}">
</a>
</f:if>
</f:for>
</div> </div>
</f:if> <f:if condition="{images -> f:count()} > 1">
</div> <div class="slider__thumbs hidden-sm hidden-xs">
</f:if> <f:for each="{images}" as="image" iteration="iteration">
<f:if condition="{iteration.cycle} <= 5">
<a href="#" class="slider__thumb" data-slide="{iteration.index}">
<img src="{f:uri.image(image: image, width: '150', height: '85c+100')}"
class="img-responsive" alt="{image.alternative}" title="{image.title}">
</a>
</f:if>
</f:for>
</div>
</f:if>
</div>
</f:if>
</f:alias>
</html> </html>
@@ -18,13 +18,17 @@
{region.skiArea -> f:format.html()} {region.skiArea -> f:format.html()}
<f:if condition="{teasers}"> <f:if condition="{teasers}">
<a id="teasers" class="anchor"></a> <a id="teasers" class="anchor"></a>
<div class="slider slider--teasers in-column"> <div class="splide"
<div class="row slider__items"> data-controller="slider"
<f:for each="{teasers}" as="teaser"> data-slider-preset-value="teasers_embedded">
<div class="col-md-4"> <div class="splide__track">
<f:render partial="Product/Teaser" section="Teaser" arguments="{teaser: teaser}"/> <ul class="splide__list">
</div> <f:for each="{teasers}" as="teaser">
</f:for> <li class="splide__slide">
<f:render partial="Product/Teaser" section="Teaser" arguments="{teaser: teaser}"/>
</li>
</f:for>
</ul>
</div> </div>
</div> </div>
<f:if condition="{settings.showMoreLink}"> <f:if condition="{settings.showMoreLink}">
@@ -1,42 +0,0 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:pxa="http://typo3.org/ns/Pixelant/PxaSocialFeed/ViewHelpers"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers"
data-namespace-typo3-fluid="true">
<ep:container data="{data}" cssClasses="slider slider--teasers">
<div class="row slider__items">
<f:for each="{feeds}" as="feed">
<f:if condition="{feed.image} and {feed.message}">
<div class="col-md-3">
<div class="teaserbox teaserbox--social">
<f:link.typolink parameter="{feed.postUrl}" target="_blank" title="{feed.title}">
<div class="teaserbox__image teaserbox__image--social-media lazyload" data-bg="{feed.image}">
<f:switch expression="{feed.configuration.token.socialType}">
<f:case value="1">
<div class="teaserbox__icon">
<i class="fa fa-facebook"></i>
</div>
</f:case>
<f:case value="2">
<div class="teaserbox__icon">
<i class="fa fa-instagram"></i>
</div>
</f:case>
</f:switch>
</div>
</f:link.typolink>
<div class="teaserbox__main teaserbox__main--fixed-height">
<p>{feed.postDate -> f:format.date(format: 'd.m.Y')} @{feed.configuration.name}</p>
<f:format.raw>{feed.decodedMessage -> f:format.crop(maxCharacters: '120') -> pxa:parseMessage(type: feed.configuration.token.type) -> f:format.nl2br()}</f:format.raw>
</div>
<f:link.typolink parameter="{feed.postUrl}" target="_blank" title="{feed.title}">
<button class="button button--full teaserbox__button">{f:translate(key: 'tx_eptheme.label.teaserbutton.to_post', extensionName: 'ep_theme')}</button>
</f:link.typolink>
</div>
</div>
</f:if>
</f:for>
</div>
</ep:container>
</html>
@@ -1,17 +1,27 @@
<html data-namespace-typo3-fluid="true" lang="en" <html data-namespace-typo3-fluid="true" lang="en"
xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers" xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers" xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers">
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers">
<f:layout name="Default"/> <f:layout name="Default"/>
<f:section name="Main"> <f:section name="Main">
<f:for each="{teasers}" as="city"> <f:render partial="Header/Standalone" arguments="{_all}"/>
<div class="col-md-3"> <div>
<f:render partial="City/Teaser" section="Teaser" arguments="{_all}"/> <ep:container data="{data}">
</div> <div class="splide" data-controller="slider" data-slider-preset-value="teasers">
</f:for> <div class="splide__track">
<ul class="splide__list">
<f:for each="{teasers}" as="city">
<li class="splide__slide">
<f:render partial="City/Teaser" section="Teaser" arguments="{_all}"/>
</li>
</f:for>
</ul>
</div>
</div>
</ep:container>
</div>
</f:section> </f:section>
</html> </html>
@@ -1,17 +1,26 @@
<html data-namespace-typo3-fluid="true" lang="en" <html data-namespace-typo3-fluid="true" lang="en"
xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers" xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers" xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers">
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers">
<f:layout name="Default"/> <f:layout name="Default"/>
<f:section name="Main"> <f:section name="Main">
<f:for each="{teasers}" as="concept"> <div>
<div class="col-md-3"> <ep:container data="{data}">
<f:render partial="Concept/Teaser" section="Teaser" arguments="{_all}"/> <div class="splide" data-controller="slider" data-slider-preset-value="teasers">
</div> <div class="splide__track">
</f:for> <ul class="splide__list">
<f:for each="{teasers}" as="concept">
<li class="splide__slide">
<f:render partial="Concept/Teaser" section="Teaser" arguments="{_all}"/>
</li>
</f:for>
</ul>
</div>
</div>
</ep:container>
</div>
</f:section> </f:section>
</html> </html>
@@ -30,7 +30,8 @@
<f:if condition="{teasers}"> <f:if condition="{teasers}">
<a id="teasers" class="anchor"></a> <a id="teasers" class="anchor"></a>
<div data-controller="slider" <div data-controller="slider"
data-slider-preset-value="teasers" data-slider-preset-value="teasers_embedded"
data-slider-arrows-value="true"
class="splide slider slider--teasers in-column"> class="splide slider slider--teasers in-column">
<div class="splide__track slider__items"> <div class="splide__track slider__items">
<ul class="splide__list"> <ul class="splide__list">
@@ -1,136 +0,0 @@
<html data-namespace-typo3-fluid="true" lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers"
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">
<f:layout name="Default"/>
<f:section name="Main">
<f:switch expression="{data.list_type}">
<f:comment>Plugin watchlist</f:comment>
<f:case value="epproducts_watchlist">
<f:render section="Header" arguments="{_all}"/>
<ep:container data="{data}">
<f:cObject typoscriptObjectPath="tt_content.list.20.{data.list_type}" data="{data}"/>
</ep:container>
</f:case>
<f:comment>Plugin snowreport</f:comment>
<f:case value="epproducts_snowreport_list">
<f:render section="Header" arguments="{_all}"/>
<f:cObject typoscriptObjectPath="tt_content.list.20.{data.list_type}" data="{data}"/>
</f:case>
<f:comment>Plugin product teasergroup</f:comment>
<f:case value="epproducts_product_teasergroup">
<f:render section="Header" arguments="{_all}"/>
<div>
<ep:container data="{data}">
<f:if condition="{data.flexForm.settings.layout} == 'cols'">
<f:then>
<div data-controller="slider" data-slider-preset-value="teasers" class="splide slider slider--teasers">
<div class="splide__track">
<ul class="splide__list">
<f:cObject typoscriptObjectPath="tt_content.list.20.{data.list_type}" data="{data}"/>
</ul>
</div>
</div>
</f:then>
<f:else>
<f:cObject typoscriptObjectPath="tt_content.list.20.{data.list_type}" data="{data}"/>
</f:else>
</f:if>
</ep:container>
</div>
</f:case>
<f:comment>Plugin region teasergroup</f:comment>
<f:case value="epproducts_region_teasergroup">
<f:render section="Header" arguments="{_all}"/>
<div>
<ep:container data="{data}" cssClasses="slider slider--teasers">
<div class="row slider__items">
<f:cObject typoscriptObjectPath="tt_content.list.20.{data.list_type}" data="{data}"/>
</div>
</ep:container>
</div>
</f:case>
<f:comment>Plugin city teasergroup</f:comment>
<f:case value="epproducts_city_teasergroup">
<f:render section="Header" arguments="{_all}"/>
<div>
<ep:container data="{data}" cssClasses="slider slider--teasers">
<div class="row slider__items">
<f:cObject typoscriptObjectPath="tt_content.list.20.{data.list_type}" data="{data}"/>
</div>
</ep:container>
</div>
</f:case>
<f:comment>Plugin concept teasergroup</f:comment>
<f:case value="epproducts_concept_teasergroup">
<f:render section="Header" arguments="{_all}"/>
<div>
<ep:container data="{data}" cssClasses="concept slider slider--teasers">
<div class="row slider__items">
<f:cObject typoscriptObjectPath="tt_content.list.20.{data.list_type}" data="{data}"/>
</div>
</ep:container>
</div>
</f:case>
<f:comment>Plugin hotel teasergroup</f:comment>
<f:case value="epproducts_hotel_teasergroup">
<f:render section="Header" arguments="{_all}"/>
<div>
<ep:container data="{data}" cssClasses="slider slider--teasers">
<div class="row slider__items">
<f:cObject typoscriptObjectPath="tt_content.list.20.{data.list_type}" data="{data}"/>
</div>
</ep:container>
</div>
</f:case>
<f:case value="epproducts_hotel_teasergroup_nodate">
<f:render section="Header" arguments="{_all}"/>
<div>
<ep:container data="{data}" cssClasses="slider slider--teasers">
<div class="row slider__items">
<f:cObject typoscriptObjectPath="tt_content.list.20.{data.list_type}" data="{data}"/>
</div>
</ep:container>
</div>
</f:case>
<f:comment>Social Media Plugin</f:comment>
<f:case value="pxasocialfeed_showfeed">
<f:render section="Header" arguments="{_all}"/>
<div>
<ep:container data="{data}">
<f:cObject typoscriptObjectPath="tt_content.list.20.{data.list_type}" data="{data}"/>
</ep:container>
</div>
</f:case>
<f:comment>Google maps Plugin</f:comment>
<f:case value="epproducts_maps">
<f:render section="Header" arguments="{_all}"/>
<ep:container data="{data}">
<f:cObject typoscriptObjectPath="tt_content.list.20.{data.list_type}" data="{data}"/>
</ep:container>
</f:case>
<f:comment>Default</f:comment>
<f:defaultCase>
<f:render section="Header" arguments="{_all}"/>
<f:cObject typoscriptObjectPath="tt_content.list.20.{data.list_type}" data="{data}"/>
</f:defaultCase>
</f:switch>
</f:section>
<f:section name="Header">
<f:if condition="{data.header_layout} != 100">
<f:if condition="{data.header}">
<ep:container data="{data}">
<div class="row">
<div class="col-md-12">
<f:render partial="Header/Header" arguments="{header: data.header, subheader: data.subheader, layout: data.header_layout, link: data.header_link, default: settings.defaultHeaderType}" />
</div>
</div>
</ep:container>
</f:if>
</f:if>
</f:section>
</html>
@@ -1,14 +1,27 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" <html xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"> xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers">
<f:layout name="Default"/> <f:layout name="Default"/>
<f:section name="Main"> <f:section name="Main">
<f:for each="{teasers}" as="hotel"> <div>
<div class="col-md-3"> <ep:container data="{data}">
<f:render partial="Hotel/TeaserSimple" section="Teaser" arguments="{_all}"/> <div class="splide"
</div> data-controller="slider"
</f:for> data-slider-preset-value="teasers">
<div class="splide__track">
<ul class="splide__list">
<f:for each="{teasers}" as="hotel">
<li class="splide__slide">
<f:render partial="Hotel/TeaserSimple" section="Teaser" arguments="{_all}"/>
</li>
</f:for>
</ul>
</div>
</div>
</ep:container>
</div>
</f:section> </f:section>
</html> </html>
@@ -1,21 +1,32 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" <html xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers" xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers" xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers">
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers">
<f:layout name="Default"/> <f:layout name="Default"/>
<f:section name="Main"> <f:section name="Main">
<f:for each="{bookable}" as="hotel"> <div>
<div class="col-md-3"> <ep:container data="{data}">
<f:render partial="Hotel/TeaserExtended" section="Teaser" arguments="{_all}"/> <div class="splide"
</div> data-controller="slider"
</f:for> data-slider-preset-value="teasers">
<f:for each="{nonBookable}" as="hotel"> <div class="splide__track">
<div class="col-md-3"> <ul class="splide__list">
<f:render partial="Hotel/TeaserSimple" section="Teaser" arguments="{_all}"/> <f:for each="{bookable}" as="hotel">
</div> <li class="splide__slide">
</f:for> <f:render partial="Hotel/TeaserExtended" section="Teaser" arguments="{_all}"/>
</li>
</f:for>
<f:for each="{nonBookable}" as="hotel">
<li class="splide__slide">
<f:render partial="Hotel/TeaserSimple" section="Teaser" arguments="{_all}"/>
</li>
</f:for>
</ul>
</div>
</div>
</ep:container>
</div>
</f:section> </f:section>
</html> </html>
@@ -1,10 +1,13 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" <html xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"> xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers">
<f:layout name="Default"/> <f:layout name="Default"/>
<f:section name="Main"> <f:section name="Main">
<osm-map :markers="{markerData}" :zoom="17"></osm-map> <ep:container data="{data}">
<osm-map :markers="{markerData}" :zoom="17"></osm-map>
</ep:container>
</f:section> </f:section>
</html> </html>
@@ -7,6 +7,39 @@
<f:layout name="Default"/> <f:layout name="Default"/>
<f:section name="Main"> <f:section name="Main">
<f:render partial="Header/Standalone" arguments="{_all}"/>
<div>
<ep:container data="{data}">
<f:if condition="{data.flexForm.settings.layout} == 'cols'">
<f:then>
<div class="splide"
data-controller="slider"
data-slider-preset-value="teasers">
<div class="splide__track">
<ul class="splide__list">
<f:render section="Teasers" arguments="{_all}"/>
</ul>
</div>
</div>
</f:then>
<f:else>
<f:render section="Teasers" arguments="{_all}"/>
</f:else>
</f:if>
<f:if condition="{settings.showMoreLink}">
<p class="text-right">
<f:link.action pageUid="{settings.defaultStaticSearchPageUid}" class="button"
action="staticresult" controller="Search"
arguments="{encodedFilterSettings: '{filterSettings -> ep:filterSettingsEncoder()}'}">
Alle anzeigen
</f:link.action>
</p>
</f:if>
</ep:container>
</div>
</f:section>
<f:section name="Teasers">
<f:if condition="{teasers}"> <f:if condition="{teasers}">
<f:for each="{teasers}" as="teaser"> <f:for each="{teasers}" as="teaser">
<f:if condition="{settings.layout} == 'rows'"> <f:if condition="{settings.layout} == 'rows'">
@@ -20,15 +53,6 @@
</f:else> </f:else>
</f:if> </f:if>
</f:for> </f:for>
<f:if condition="{settings.showMoreLink}">
<p class="text-right">
<f:link.action pageUid="{settings.defaultStaticSearchPageUid}" class="button"
action="staticresult" controller="Search"
arguments="{encodedFilterSettings: '{filterSettings -> ep:filterSettingsEncoder()}'}">
Alle anzeigen
</f:link.action>
</p>
</f:if>
</f:if> </f:if>
</f:section> </f:section>
@@ -1,17 +1,28 @@
<html data-namespace-typo3-fluid="true" lang="en" <html data-namespace-typo3-fluid="true" lang="en"
xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers" xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers" xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers">
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers">
<f:layout name="Default"/> <f:layout name="Default"/>
<f:section name="Main"> <f:section name="Main">
<f:for each="{teasers}" as="region"> <div>
<div class="col-md-3"> <ep:container data="{data}">
<f:render partial="Region/Teaser" section="Teaser" arguments="{_all}"/> <div class="splide"
</div> data-controller="slider"
</f:for> data-slider-preset-value="teasers">
<div class="splide__track">
<ul class="splide__list">
<f:for each="{teasers}" as="region">
<li class="splide__slide">
<f:render partial="Region/Teaser" section="Teaser" arguments="{_all}"/>
</li>
</f:for>
</ul>
</div>
</div>
</ep:container>
</div>
</f:section> </f:section>
</html> </html>
@@ -1,10 +0,0 @@
<div xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:pxa="http://typo3.org/ns/Pixelant/PxaSocialFeed/ViewHelpers"
xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers">
<f:layout name="Default"/>
<f:section name="main">
<f:render partial="Frontend/FeedsItems" arguments="{_all}"/>
</f:section>
</div>
@@ -1,20 +0,0 @@
<div xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers">
<f:layout name="Default"/>
<f:section name="main">
<div data-social-feed data-uri="{f:render(section: 'uri') -> f:spaceless()}">
<f:image src="EXT:ep_theme/Resources/Public/images/ajax-loader-white.gif" alt="Loading..." />
</div>
</f:section>
<f:section name="uri">
<f:uri.action action="loadFeedAjax"
pageType="7378121"
absolute="1"
pageUid="{settings.defaultAjaxUid}"
arguments="{configuration: settings.configuration, feedsLimit: settings.feedsLimit, partial: settings.partial, presentation: settings.presentation}"
/>
</f:section>
</div>
@@ -1,9 +0,0 @@
<div xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers">
<f:layout name="Empty"/>
<f:section name="main">
<f:render partial="Frontend/FeedsItems" arguments="{feeds: feeds}" />
</f:section>
</div>
@@ -5,10 +5,11 @@
<f:layout name="Default"/> <f:layout name="Default"/>
<f:section name="Main"> <f:section name="Main">
<ep:container data="{data}">
<watchlist loader-uri="{f:uri.image(src: 'EXT:ep_theme/Resources/Public/images/ajax-loader-white.gif')}" <watchlist loader-uri="{f:uri.image(src: 'EXT:ep_theme/Resources/Public/images/ajax-loader-white.gif')}"
referring-page-url="{f:uri.typolink(parameter: referringPageUid)}" referring-page-url="{f:uri.typolink(parameter: referringPageUid)}"
watchlist-uri="{ep:uri.ajax(action: 'list', controller: 'AjaxWatchlist', pageUid: settings.defaultAjaxUid)}"></watchlist> watchlist-uri="{ep:uri.ajax(action: 'list', controller: 'AjaxWatchlist', pageUid: settings.defaultAjaxUid)}"></watchlist>
</ep:container>
</f:section> </f:section>
</html> </html>