Compare commits
11 Commits
c4d01f2a47
...
v13.4.14-1
| Author | SHA1 | Date | |
|---|---|---|---|
| 9d4fad0889 | |||
| 9720b9328e | |||
| 177d79ceb1 | |||
| b6ba7f24fe | |||
| 080bf9e186 | |||
| 71d06aabd6 | |||
| b65377dee4 | |||
| c552021c35 | |||
| 1cd8e30a16 | |||
| 6c602a4838 | |||
| 37300492dc |
@@ -68,8 +68,8 @@ jobs:
|
|||||||
rm typo3.tar.gz
|
rm typo3.tar.gz
|
||||||
- name: Install ssh agent and rsync
|
- name: Install ssh agent and rsync
|
||||||
run: |
|
run: |
|
||||||
apt update
|
apt-get update
|
||||||
apt install -y openssh-client rsync
|
apt-get install -y openssh-client rsync
|
||||||
- name: Upload release
|
- name: Upload release
|
||||||
uses: deployphp/action@v1
|
uses: deployphp/action@v1
|
||||||
with:
|
with:
|
||||||
@@ -93,8 +93,8 @@ jobs:
|
|||||||
rm typo3.tar.gz
|
rm typo3.tar.gz
|
||||||
- name: Install ssh agent and rsync
|
- name: Install ssh agent and rsync
|
||||||
run: |
|
run: |
|
||||||
apt update
|
apt-get update
|
||||||
apt install -y openssh-client rsync
|
apt-get install -y openssh-client rsync
|
||||||
- name: Switch to release
|
- name: Switch to release
|
||||||
uses: deployphp/action@v1
|
uses: deployphp/action@v1
|
||||||
with:
|
with:
|
||||||
@@ -102,28 +102,28 @@ jobs:
|
|||||||
dep: --file=./build/deploy.php release:switch stage
|
dep: --file=./build/deploy.php release:switch stage
|
||||||
private-key: ${{secrets.STAGE_KEY}}
|
private-key: ${{secrets.STAGE_KEY}}
|
||||||
|
|
||||||
# deploy-production:
|
deploy-production:
|
||||||
# needs: build
|
needs: build
|
||||||
# runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
# steps:
|
steps:
|
||||||
# - name: Setup PHP
|
- name: Setup PHP
|
||||||
# uses: shivammathur/setup-php@7c0b4c8c8ebed23eca9ec2802474895d105b11bc
|
uses: shivammathur/setup-php@7c0b4c8c8ebed23eca9ec2802474895d105b11bc
|
||||||
# with:
|
with:
|
||||||
# php-version: ${{ env.PHP_VERSION }}
|
php-version: ${{ env.PHP_VERSION }}
|
||||||
# - uses: actions/download-artifact@v3
|
- uses: actions/download-artifact@v3
|
||||||
# with:
|
with:
|
||||||
# name: typo3
|
name: typo3
|
||||||
# - name: Extract artifact
|
- name: Extract artifact
|
||||||
# run: |
|
run: |
|
||||||
# tar xf typo3.tar.gz
|
tar xf typo3.tar.gz
|
||||||
# rm typo3.tar.gz
|
rm typo3.tar.gz
|
||||||
# - name: Install ssh agent and rsync
|
- name: Install ssh agent and rsync
|
||||||
# run: |
|
run: |
|
||||||
# apt update
|
apt-get update
|
||||||
# apt install -y openssh-client rsync
|
apt-get install -y openssh-client rsync
|
||||||
# - name: Deploy
|
- name: Deploy
|
||||||
# uses: deployphp/action@v1
|
uses: deployphp/action@v1
|
||||||
# with:
|
with:
|
||||||
# deployer-binary: "./bin/dep"
|
deployer-binary: "./bin/dep"
|
||||||
# dep: --file=./build/deploy.php release:create production
|
dep: --file=./build/deploy.php release:create production
|
||||||
# private-key: ${{secrets.PROD_KEY}}
|
private-key: ${{secrets.PROD_KEY}}
|
||||||
|
|||||||
@@ -26,8 +26,8 @@ jobs:
|
|||||||
composer validate --no-check-publish && composer install --prefer-dist --no-progress --ignore-platform-reqs
|
composer validate --no-check-publish && composer install --prefer-dist --no-progress --ignore-platform-reqs
|
||||||
- name: Install ssh agent, rsync
|
- name: Install ssh agent, rsync
|
||||||
run: |
|
run: |
|
||||||
apt update
|
apt-get update
|
||||||
apt install -y openssh-client rsync
|
apt-get install -y openssh-client rsync
|
||||||
- name: Switch to release
|
- name: Switch to release
|
||||||
uses: deployphp/action@v1
|
uses: deployphp/action@v1
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ task('release:create', [
|
|||||||
'deploy:vendors',
|
'deploy:vendors',
|
||||||
'deploy:shared',
|
'deploy:shared',
|
||||||
'deploy:writable',
|
'deploy:writable',
|
||||||
|
'typo3:cache:flush',
|
||||||
'typo3:extension:setup',
|
'typo3:extension:setup',
|
||||||
'deploy:unlock',
|
'deploy:unlock',
|
||||||
'deploy:success'
|
'deploy:success'
|
||||||
@@ -117,6 +118,7 @@ task('deploy', [
|
|||||||
'deploy:vendors',
|
'deploy:vendors',
|
||||||
'deploy:shared',
|
'deploy:shared',
|
||||||
'deploy:writable',
|
'deploy:writable',
|
||||||
|
'typo3:cache:flush',
|
||||||
'typo3:extension:setup',
|
'typo3:extension:setup',
|
||||||
'deploy:symlink',
|
'deploy:symlink',
|
||||||
'php:reload',
|
'php:reload',
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ RTE {
|
|||||||
TCEFORM {
|
TCEFORM {
|
||||||
tt_content {
|
tt_content {
|
||||||
CType {
|
CType {
|
||||||
keepItems = cloonar_text,cloonar_textimage,cloonar_hero,cloonar_cards,form_formframework
|
keepItems = cloonar_text,cloonar_textimage,cloonar_hero,cloonar_cards,cloonar_imagegallery,form_formframework
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
<div class="card-front absolute w-full h-full backface-hidden overflow-hidden shadow-lg">
|
<div class="card-front absolute w-full h-full backface-hidden overflow-hidden shadow-lg">
|
||||||
<f:if condition="{card.images}">
|
<f:if condition="{card.images}">
|
||||||
<f:then>
|
<f:then>
|
||||||
<picture class="w-full h-full object-cover grayscale group-hover:grayscale-0 transition-all duration-500">
|
<picture class="w-full h-full object-cover transition-all duration-500">
|
||||||
<!-- WEBP source -->
|
<!-- WEBP source -->
|
||||||
<source
|
<source
|
||||||
type="image/webp"
|
type="image/webp"
|
||||||
@@ -59,9 +59,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</f:else>
|
</f:else>
|
||||||
</f:if>
|
</f:if>
|
||||||
<div class="absolute inset-0 bg-black bg-opacity-40 flex flex-col items-center justify-center">
|
<div class="absolute inset-0 bg-white bg-opacity-80 flex flex-col items-center justify-center">
|
||||||
<div class="w-full">
|
<div class="w-full">
|
||||||
<h3 class="text-white text-xl font-bold text-center px-4">{card.header}</h3>
|
<h3 class="text-black text-xl font-bold text-center px-4">{card.header}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="w-full text-center">
|
<div class="w-full text-center">
|
||||||
<div class="w-6 h-6 bg-primary text-white rounded-full inline-flex items-center justify-center">
|
<div class="w-6 h-6 bg-primary text-white rounded-full inline-flex items-center justify-center">
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card-back absolute w-full h-full backface-hidden rotate-y-180 bg-light-grey border border-dark-grey p-6">
|
<div class="card-back absolute w-full h-full backface-hidden rotate-y-180 bg-light-grey border border-dark-grey p-6">
|
||||||
<h4>{card.header}</h4>
|
<h4 class="text-center">{card.header}</h4>
|
||||||
<div class="text-sm">
|
<div class="text-sm">
|
||||||
<f:format.html>{card.bodytext}</f:format.html>
|
<f:format.html>{card.bodytext}</f:format.html>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
name: cloonar/imagegallery
|
||||||
|
typeName: cloonar_imagegallery
|
||||||
|
group: default
|
||||||
|
prefixFields: false
|
||||||
|
fields:
|
||||||
|
- identifier: header
|
||||||
|
useExistingField: true
|
||||||
|
- identifier: image
|
||||||
|
type: File
|
||||||
|
properties:
|
||||||
|
allowed: [jpg, jpeg, png, gif, webp]
|
||||||
|
multiple: true
|
||||||
|
useExistingField: true
|
||||||
|
- identifier: columns
|
||||||
|
type: Select
|
||||||
|
renderType: selectSingle
|
||||||
|
default: 1
|
||||||
|
items:
|
||||||
|
- label: LLL:EXT:base/ContentBlocks/ContentElements/imagegallery/language/labels.xlf:columns.1
|
||||||
|
value: 1
|
||||||
|
- label: LLL:EXT:base/ContentBlocks/ContentElements/imagegallery/language/labels.xlf:columns.2
|
||||||
|
value: 2
|
||||||
|
- label: LLL:EXT:base/ContentBlocks/ContentElements/imagegallery/language/labels.xlf:columns.3
|
||||||
|
value: 3
|
||||||
|
- label: LLL:EXT:base/ContentBlocks/ContentElements/imagegallery/language/labels.xlf:columns.5
|
||||||
|
value: 5
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
|
||||||
|
<file datatype="plaintext" original="labels.xlf" source-language="en" product-name="cloonar/imagegallery">
|
||||||
|
<header/>
|
||||||
|
<body>
|
||||||
|
<trans-unit id="title">
|
||||||
|
<source>Image Gallery</source>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="description">
|
||||||
|
<source>A gallery of images with configurable columns</source>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="columns.1">
|
||||||
|
<source>1 Column</source>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="columns.2">
|
||||||
|
<source>2 Columns</source>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="columns.3">
|
||||||
|
<source>3 Columns</source>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="columns.5">
|
||||||
|
<source>5 Columns</source>
|
||||||
|
</trans-unit>
|
||||||
|
</body>
|
||||||
|
</file>
|
||||||
|
</xliff>
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<html
|
||||||
|
xmlns:be="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||||
|
data-namespace-typo3-fluid="true"
|
||||||
|
>
|
||||||
|
<f:layout name="Preview"/>
|
||||||
|
|
||||||
|
<f:section name="Header">
|
||||||
|
<be:link.editRecord uid="{data.uid}" table="{data.mainType}">
|
||||||
|
<f:if condition="{data.header}">
|
||||||
|
<f:then><strong>{data.header}</strong></f:then>
|
||||||
|
</f:if>
|
||||||
|
</be:link.editRecord>
|
||||||
|
</f:section>
|
||||||
|
|
||||||
|
<f:section name="Content">
|
||||||
|
<f:if condition="{data.image}">
|
||||||
|
<div class="row">
|
||||||
|
<f:for each="{data.image}" as="image" iteration="iterator">
|
||||||
|
<f:if condition="{iterator.index} < 3">
|
||||||
|
<div class="col-4">
|
||||||
|
<f:image image="{image}" width="100" height="auto" treatIdAsReference="1" alt="Preview image" />
|
||||||
|
</div>
|
||||||
|
</f:if>
|
||||||
|
</f:for>
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
<f:switch expression="{data.columns}">
|
||||||
|
<f:case value="2">2 Columns</f:case>
|
||||||
|
<f:case value="3">3 Columns</f:case>
|
||||||
|
<f:case value="5">5 Columns</f:case>
|
||||||
|
<f:defaultCase>1 Column</f:defaultCase>
|
||||||
|
</f:switch>
|
||||||
|
</p>
|
||||||
|
</f:if>
|
||||||
|
</f:section>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
<f:layout name="Default" />
|
||||||
|
<f:section name="Header"></f:section>
|
||||||
|
<f:section name="Main">
|
||||||
|
<f:if condition="{data.header}">
|
||||||
|
<h2 class="text-center mb-8">{data.header}</h2>
|
||||||
|
</f:if>
|
||||||
|
|
||||||
|
<f:if condition="{data.image}">
|
||||||
|
<f:variable name="columnClass">
|
||||||
|
<f:switch expression="{data.columns}">
|
||||||
|
<f:case value="2">md:grid-cols-2</f:case>
|
||||||
|
<f:case value="3">md:grid-cols-3</f:case>
|
||||||
|
<f:case value="5">md:grid-cols-5</f:case>
|
||||||
|
<f:defaultCase>md:grid-cols-1</f:defaultCase>
|
||||||
|
</f:switch>
|
||||||
|
</f:variable>
|
||||||
|
|
||||||
|
<div class="grid grid-cols-1 {columnClass} gap-6 md:gap-8">
|
||||||
|
<f:for each="{data.image}" as="image">
|
||||||
|
<div class="relative">
|
||||||
|
<f:if condition="{image.link}">
|
||||||
|
<f:then>
|
||||||
|
<f:link.typolink parameter="{image.link}" class="block w-full h-full">
|
||||||
|
<picture class="block w-full h-full">
|
||||||
|
<source
|
||||||
|
type="image/webp"
|
||||||
|
srcset="{f:uri.image(image:image, width:'320', cropVariant:'default', fileExtension:'webp')} 320w,
|
||||||
|
{f:uri.image(image:image, width:'768', cropVariant:'default', fileExtension:'webp')} 768w"
|
||||||
|
sizes="(max-width: 767px) 90vw, 33vw" />
|
||||||
|
<img
|
||||||
|
src="{f:uri.image(image:image, width:'768', cropVariant:'default')}"
|
||||||
|
srcset="{f:uri.image(image:image, width:'320', cropVariant:'default')} 320w,
|
||||||
|
{f:uri.image(image:image, width:'768', cropVariant:'default')} 768w"
|
||||||
|
sizes="(max-width: 767px) 90vw, 33vw"
|
||||||
|
alt="{image.alternative}"
|
||||||
|
class="w-full h-full object-cover"
|
||||||
|
/>
|
||||||
|
</picture>
|
||||||
|
</f:link.typolink>
|
||||||
|
</f:then>
|
||||||
|
<f:else>
|
||||||
|
<picture class="block w-full h-full">
|
||||||
|
<source
|
||||||
|
type="image/webp"
|
||||||
|
srcset="{f:uri.image(image:image, width:'320', cropVariant:'default', fileExtension:'webp')} 320w,
|
||||||
|
{f:uri.image(image:image, width:'768', cropVariant:'default', fileExtension:'webp')} 768w"
|
||||||
|
sizes="(max-width: 767px) 90vw, 33vw" />
|
||||||
|
<img
|
||||||
|
src="{f:uri.image(image:image, width:'768', cropVariant:'default')}"
|
||||||
|
srcset="{f:uri.image(image:image, width:'320', cropVariant:'default')} 320w,
|
||||||
|
{f:uri.image(image:image, width:'768', cropVariant:'default')} 768w"
|
||||||
|
sizes="(max-width: 767px) 90vw, 33vw"
|
||||||
|
alt="{image.alternative}"
|
||||||
|
class="w-full h-full object-cover"
|
||||||
|
/>
|
||||||
|
</picture>
|
||||||
|
</f:else>
|
||||||
|
</f:if>
|
||||||
|
</div>
|
||||||
|
</f:for>
|
||||||
|
</div>
|
||||||
|
</f:if>
|
||||||
|
</f:section>
|
||||||
Reference in New Issue
Block a user