feat: include news galery fancybox
This commit is contained in:
@@ -47,11 +47,13 @@ page {
|
|||||||
|
|
||||||
includeCSS {
|
includeCSS {
|
||||||
main = EXT:base/Resources/Public/Css/main.css
|
main = EXT:base/Resources/Public/Css/main.css
|
||||||
|
fancybox = EXT:base/Resources/Public/Vendor/fancybox/fancybox.css
|
||||||
}
|
}
|
||||||
|
|
||||||
includeJSLibs {
|
includeJSLibs {
|
||||||
navigation = EXT:base/Resources/Public/JavaScript/navigation.js
|
navigation = EXT:base/Resources/Public/JavaScript/navigation.js
|
||||||
fadein = EXT:base/Resources/Public/JavaScript/fade-in.js
|
fadein = EXT:base/Resources/Public/JavaScript/fade-in.js
|
||||||
|
fancybox = EXT:base/Resources/Public/Vendor/fancybox/fancybox.umd.js
|
||||||
}
|
}
|
||||||
|
|
||||||
includeJSFooter {
|
includeJSFooter {
|
||||||
|
|||||||
@@ -1,11 +1,39 @@
|
|||||||
<f:layout name="General" />
|
<f:layout name="General" />
|
||||||
|
|
||||||
<f:section name="content">
|
<f:section name="content">
|
||||||
|
<script>
|
||||||
|
// Initialize Fancybox for elements with data-fancybox="gallery"
|
||||||
|
document.addEventListener("DOMContentLoaded", function() {
|
||||||
|
Fancybox.bind("[data-fancybox='gallery']", {});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
<!-- First image if present -->
|
<!-- First image if present -->
|
||||||
<f:if condition="{newsItem.media}">
|
<f:if condition="{newsItem.media}">
|
||||||
<div class="news-detail__main-image">
|
<div class="news-detail__main-image">
|
||||||
<figure>
|
<figure>
|
||||||
<f:image image="{newsItem.media.0.originalResource}" alt="{newsItem.media.0.originalResource.alternative}" title="{newsItem.media.0.originalResource.title}" loading="lazy" />
|
<picture>
|
||||||
|
<source
|
||||||
|
type="image/webp"
|
||||||
|
srcset="{f:uri.image(image: newsItem.media.0.originalResource, width:'320', fileExtension:'webp')} 320w,
|
||||||
|
{f:uri.image(image: newsItem.media.0.originalResource, width:'640', fileExtension:'webp')} 640w,
|
||||||
|
{f:uri.image(image: newsItem.media.0.originalResource, width:'1024', fileExtension:'webp')} 1024w"
|
||||||
|
sizes="(max-width: 320px) 320px, (max-width: 640px) 640px, 1024px"
|
||||||
|
/>
|
||||||
|
<source
|
||||||
|
type="image/jpeg"
|
||||||
|
srcset="{f:uri.image(image: newsItem.media.0.originalResource, width:'320')} 320w,
|
||||||
|
{f:uri.image(image: newsItem.media.0.originalResource, width:'640')} 640w,
|
||||||
|
{f:uri.image(image: newsItem.media.0.originalResource, width:'1024')} 1024w"
|
||||||
|
sizes="(max-width: 320px) 320px, (max-width: 640px) 640px, 1024px"
|
||||||
|
/>
|
||||||
|
<img
|
||||||
|
src="{f:uri.image(image: newsItem.media.0.originalResource, width:'1024')}"
|
||||||
|
alt="{newsItem.media.0.originalResource.alternative}"
|
||||||
|
title="{newsItem.media.0.originalResource.title}"
|
||||||
|
loading="lazy"
|
||||||
|
/>
|
||||||
|
</picture>
|
||||||
</figure>
|
</figure>
|
||||||
</div>
|
</div>
|
||||||
</f:if>
|
</f:if>
|
||||||
@@ -29,7 +57,6 @@
|
|||||||
|
|
||||||
<!-- Content elements if present -->
|
<!-- Content elements if present -->
|
||||||
<f:if condition="{newsItem.contentElements}">
|
<f:if condition="{newsItem.contentElements}">
|
||||||
<!-- content elements -->
|
|
||||||
<div class="news-detail__content-elements">
|
<div class="news-detail__content-elements">
|
||||||
<f:cObject typoscriptObjectPath="lib.tx_news.contentElementRendering">{newsItem.contentElementIdList}</f:cObject>
|
<f:cObject typoscriptObjectPath="lib.tx_news.contentElementRendering">{newsItem.contentElementIdList}</f:cObject>
|
||||||
</div>
|
</div>
|
||||||
@@ -38,10 +65,36 @@
|
|||||||
<!-- Gallery if more than one picture -->
|
<!-- Gallery if more than one picture -->
|
||||||
<f:if condition="{f:count(subject: newsItem.media)} > 1">
|
<f:if condition="{f:count(subject: newsItem.media)} > 1">
|
||||||
<div class="news-detail__gallery news-detail__gallery--grid">
|
<div class="news-detail__gallery news-detail__gallery--grid">
|
||||||
<f:for each="{newsItem.media}" as="mediaItem" iteration="iterator">
|
<f:for each="{newsItem.media}" as="mediaItem">
|
||||||
|
<a href="{f:uri.image(image: mediaItem.originalResource)}"
|
||||||
|
data-fancybox="gallery"
|
||||||
|
data-caption="{mediaItem.originalResource.title}"
|
||||||
|
class="news-detail__gallery-link">
|
||||||
<figure class="news-detail__gallery-item">
|
<figure class="news-detail__gallery-item">
|
||||||
<f:image image="{mediaItem.originalResource}" alt="{mediaItem.originalResource.alternative}" title="{mediaItem.originalResource.title}" loading="lazy" />
|
<picture>
|
||||||
|
<source
|
||||||
|
type="image/webp"
|
||||||
|
srcset="{f:uri.image(image: mediaItem.originalResource, width:'320', fileExtension:'webp')} 320w,
|
||||||
|
{f:uri.image(image: mediaItem.originalResource, width:'640', fileExtension:'webp')} 640w,
|
||||||
|
{f:uri.image(image: mediaItem.originalResource, width:'1024', fileExtension:'webp')} 1024w"
|
||||||
|
sizes="(max-width: 320px) 320px, (max-width: 640px) 640px, 1024px"
|
||||||
|
/>
|
||||||
|
<source
|
||||||
|
type="image/jpeg"
|
||||||
|
srcset="{f:uri.image(image: mediaItem.originalResource, width:'320')} 320w,
|
||||||
|
{f:uri.image(image: mediaItem.originalResource, width:'640')} 640w,
|
||||||
|
{f:uri.image(image: mediaItem.originalResource, width:'1024')} 1024w"
|
||||||
|
sizes="(max-width: 320px) 320px, (max-width: 640px) 640px, 1024px"
|
||||||
|
/>
|
||||||
|
<img
|
||||||
|
src="{f:uri.image(image: mediaItem.originalResource, width:'1024')}"
|
||||||
|
alt="{mediaItem.originalResource.alternative}"
|
||||||
|
title="{mediaItem.originalResource.title}"
|
||||||
|
loading="lazy"
|
||||||
|
/>
|
||||||
|
</picture>
|
||||||
</figure>
|
</figure>
|
||||||
|
</a>
|
||||||
</f:for>
|
</f:for>
|
||||||
</div>
|
</div>
|
||||||
</f:if>
|
</f:if>
|
||||||
|
|||||||
1
packages/base/Resources/Public/Vendor/fancybox/fancybox.css
vendored
Normal file
1
packages/base/Resources/Public/Vendor/fancybox/fancybox.css
vendored
Normal file
File diff suppressed because one or more lines are too long
2
packages/base/Resources/Public/Vendor/fancybox/fancybox.umd.js
vendored
Normal file
2
packages/base/Resources/Public/Vendor/fancybox/fancybox.umd.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user