first commit

This commit is contained in:
salam committed 2026-10-06 19:40:28 +02:00
commit e81864e683
2984 files changed
+267797

No files matched your search

@@ -0,0 +1,105 @@
#####################
### BOOTSTRAP 4.x ###
#####################
plugin.bootstrap_package.settings.scss >
############################
### CUSTOM SUBCATEGORIES ###
############################
# customsubcategory=bp4_001=Grayscale
# customsubcategory=bp4_002=Colors
# customsubcategory=bp4_003=Contrast
# customsubcategory=bp4_004=Body
# customsubcategory=bp4_005=Links
# customsubcategory=bp4_006=Fonts
# customsubcategory=bp4_010=Options
plugin.bootstrap_package {
settings {
scss {
# cat=bootstrap 4.x: styling/bp4_001/001; type=string; label=$white:
white = #ffffff
# cat=bootstrap 4.x: styling/bp4_001/002; type=string; label=$gray-100:
gray-100 = #f8f8f8
# cat=bootstrap 4.x: styling/bp4_001/003; type=string; label=$gray-200:
gray-200 = #e9e9e9
# cat=bootstrap 4.x: styling/bp4_001/004; type=string; label=$gray-300:
gray-300 = #dedede
# cat=bootstrap 4.x: styling/bp4_001/005; type=string; label=$gray-400:
gray-400 = #cecece
# cat=bootstrap 4.x: styling/bp4_001/006; type=string; label=$gray-500:
gray-500 = #ababab
# cat=bootstrap 4.x: styling/bp4_001/007; type=string; label=$gray-600:
gray-600 = #6c6c6c
# cat=bootstrap 4.x: styling/bp4_001/008; type=string; label=$gray-700:
gray-700 = #494949
# cat=bootstrap 4.x: styling/bp4_001/009; type=string; label=$gray-800:
gray-800 = #313131
# cat=bootstrap 4.x: styling/bp4_001/010; type=string; label=$gray-900:
gray-900 = #212121
# cat=bootstrap 4.x: styling/bp4_001/011; type=string; label=$black:
black = #000000
# cat=bootstrap 4.x: styling/bp4_002/001; type=string; label=$primary:
primary = #2a9d8f
# cat=bootstrap 4.x: styling/bp4_002/002; type=string; label=$secondary:
secondary = #e76f51
# cat=bootstrap 4.x: styling/bp4_002/003; type=string; label=$tertiary:
tertiary = #f4a261
# cat=bootstrap 4.x: styling/bp4_002/004; type=string; label=$quaternary:
quaternary = #e9c46a
# cat=bootstrap 4.x: styling/bp4_002/005; type=string; label=$default:
default = #eaebec
# cat=bootstrap 4.x: styling/bp4_002/006; type=string; label=$success:
success = #5cb85c
# cat=bootstrap 4.x: styling/bp4_002/007; type=string; label=$info:
info = #319fc0
# cat=bootstrap 4.x: styling/bp4_002/008; type=string; label=$warning:
warning = #f0ad4e
# cat=bootstrap 4.x: styling/bp4_002/009; type=string; label=$danger:
danger = #d9534f
# cat=bootstrap 4.x: styling/bp4_002/010; type=string; label=$lighter:
lighter = $gray-100
# cat=bootstrap 4.x: styling/bp4_002/011; type=string; label=$light:
light = $gray-200
# cat=bootstrap 4.x: styling/bp4_002/012; type=string; label=$dark:
dark = $gray-800
# cat=bootstrap 4.x: styling/bp4_002/013; type=string; label=$darker:
darker = $gray-900
# cat=bootstrap 4.x: styling/bp4_003/001; type=string; label=$yiq-contrasted-threshold:
yiq-contrasted-threshold = 160
# cat=bootstrap 4.x: styling/bp4_004/001; type=string; label=$body-bg:
body-bg = $white
# cat=bootstrap 4.x: styling/bp4_004/002; type=string; label=$body-color:
body-color = $gray-900
# cat=bootstrap 4.x: styling/bp4_005/001; type=string; label=$link-color:
link-color = theme-color("primary")
# cat=bootstrap 4.x: styling/bp4_005/002; type=string; label=$link-decoration:
link-decoration = none
# cat=bootstrap 4.x: styling/bp4_005/003; type=string; label=$link-hover-color:
link-hover-color = darken($link-color, 15%)
# cat=bootstrap 4.x: styling/bp4_005/004; type=string; label=$link-hover-decoration:
link-hover-decoration = underline
# cat=bootstrap 4.x: styling/bp4_006/001; type=string; label=$font-family-sans-serif:
font-family-sans-serif = "#{$google-webfont}", sans-serif
# cat=bootstrap 4.x: styling/bp4_006/002; type=string; label=$font-family-monospace:
font-family-monospace = SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace
# cat=bootstrap 4.x: styling/bp4_010/001; type=options[Enabled=true, Disabled=false]; label=$enable-rounded:
enable-rounded = true
# cat=bootstrap 4.x: styling/bp4_010/002; type=options[Enabled=true, Disabled=false]; label=$enable-shadows:
enable-shadows = true
# cat=bootstrap 4.x: styling/bp4_010/003; type=options[Enabled=true, Disabled=false]; label=$enable-gradients:
enable-gradients = false
# cat=bootstrap 4.x: styling/bp4_010/004; type=options[Enabled=true, Disabled=false]; label=$enable-transitions:
enable-transitions = true
}
}
}
@@ -0,0 +1,15 @@
##############
#### PAGE ####
##############
page {
includeCSS {
# bootstrap 4.x will be included in the themes.scss file
# for standalone usage just uncomment the following line
# bootstrap = EXT:bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/bootstrap.scss
theme = EXT:bootstrap_package/Resources/Public/Scss/bootstrap4/theme.scss
}
includeJSFooterlibs {
popper = EXT:bootstrap_package/Resources/Public/Contrib/popper/popper.min.js
bootstrap = EXT:bootstrap_package/Resources/Public/Contrib/bootstrap4/js/bootstrap.min.js
}
}
@@ -0,0 +1,107 @@
#####################
### BOOTSTRAP 5.x ###
#####################
plugin.bootstrap_package.settings.scss >
############################
### CUSTOM SUBCATEGORIES ###
############################
# customsubcategory=bp5_001=Grayscale
# customsubcategory=bp5_002=Colors
# customsubcategory=bp5_003=Contrast
# customsubcategory=bp5_004=Body
# customsubcategory=bp5_005=Links
# customsubcategory=bp5_006=Fonts
# customsubcategory=bp5_010=Options
plugin.bootstrap_package {
settings {
scss {
# cat=bootstrap 5.x: styling/bp5_001/001; type=string; label=$white:
white = #ffffff
# cat=bootstrap 5.x: styling/bp5_001/002; type=string; label=$gray-100:
gray-100 = #f8f8f8
# cat=bootstrap 5.x: styling/bp5_001/003; type=string; label=$gray-200:
gray-200 = #e9e9e9
# cat=bootstrap 5.x: styling/bp5_001/004; type=string; label=$gray-300:
gray-300 = #dedede
# cat=bootstrap 5.x: styling/bp5_001/005; type=string; label=$gray-400:
gray-400 = #cecece
# cat=bootstrap 5.x: styling/bp5_001/006; type=string; label=$gray-500:
gray-500 = #ababab
# cat=bootstrap 5.x: styling/bp5_001/007; type=string; label=$gray-600:
gray-600 = #6c6c6c
# cat=bootstrap 5.x: styling/bp5_001/008; type=string; label=$gray-700:
gray-700 = #494949
# cat=bootstrap 5.x: styling/bp5_001/009; type=string; label=$gray-800:
gray-800 = #313131
# cat=bootstrap 5.x: styling/bp5_001/010; type=string; label=$gray-900:
gray-900 = #212121
# cat=bootstrap 5.x: styling/bp5_001/011; type=string; label=$black:
black = #000000
# cat=bootstrap 5.x: styling/bp5_002/001; type=string; label=$primary:
primary = #2a9d8f
# cat=bootstrap 5.x: styling/bp5_002/002; type=string; label=$secondary:
secondary = #e76f51
# cat=bootstrap 5.x: styling/bp5_002/003; type=string; label=$tertiary:
tertiary = #f4a261
# cat=bootstrap 5.x: styling/bp5_002/004; type=string; label=$quaternary:
quaternary = #e9c46a
# cat=bootstrap 5.x: styling/bp5_002/005; type=string; label=$default:
default = #eaebec
# cat=bootstrap 5.x: styling/bp5_002/006; type=string; label=$success:
success = #5cb85c
# cat=bootstrap 5.x: styling/bp5_002/007; type=string; label=$info:
info = #319fc0
# cat=bootstrap 5.x: styling/bp5_002/008; type=string; label=$warning:
warning = #f0ad4e
# cat=bootstrap 5.x: styling/bp5_002/009; type=string; label=$danger:
danger = #d9534f
# cat=bootstrap 5.x: styling/bp5_002/010; type=string; label=$lighter:
lighter = $gray-100
# cat=bootstrap 5.x: styling/bp5_002/011; type=string; label=$light:
light = $gray-200
# cat=bootstrap 5.x: styling/bp5_002/012; type=string; label=$dark:
dark = $gray-800
# cat=bootstrap 5.x: styling/bp5_002/013; type=string; label=$darker:
darker = $gray-900
# cat=bootstrap 5.x: styling/bp5_003/001; type=string; label=$min-contrast-ratio:
min-contrast-ratio = 2.4
# cat=bootstrap 5.x: styling/bp5_004/001; type=string; label=$body-bg:
body-bg = $white
# cat=bootstrap 5.x: styling/bp5_004/002; type=string; label=$body-color:
body-color = $gray-900
# cat=bootstrap 5.x: styling/bp5_005/001; type=string; label=$link-color:
link-color = $primary
# cat=bootstrap 5.x: styling/bp5_005/002; type=string; label=$link-decoration:
link-decoration = none
# cat=bootstrap 5.x: styling/bp5_005/003; type=string; label=$link-shade-percentage:
link-shade-percentage = 20%
# cat=bootstrap 5.x: styling/bp5_005/004; type=string; label=$link-hover-color:
link-hover-color = shift-color($link-color, $link-shade-percentage)
# cat=bootstrap 5.x: styling/bp5_005/005; type=string; label=$link-hover-decoration:
link-hover-decoration = underline
# cat=bootstrap 5.x: styling/bp5_006/001; type=string; label=$font-family-sans-serif:
font-family-sans-serif = "#{$google-webfont}", sans-serif
# cat=bootstrap 5.x: styling/bp5_006/002; type=string; label=$font-family-monospace:
font-family-monospace = SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
# cat=bootstrap 5.x: styling/bp5_010/001; type=options[Enabled=true, Disabled=false]; label=$enable-rounded:
enable-rounded = true
# cat=bootstrap 5.x: styling/bp5_010/002; type=options[Enabled=true, Disabled=false]; label=$enable-shadows:
enable-shadows = true
# cat=bootstrap 5.x: styling/bp5_010/003; type=options[Enabled=true, Disabled=false]; label=$enable-gradients:
enable-gradients = false
# cat=bootstrap 5.x: styling/bp5_010/004; type=options[Enabled=true, Disabled=false]; label=$enable-transitions:
enable-transitions = true
}
}
}
@@ -0,0 +1,15 @@
##############
#### PAGE ####
##############
page {
includeCSS {
# bootstrap 5.x will be included in the themes.scss file
# for standalone usage just uncomment the following line
# bootstrap = EXT:bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/bootstrap.scss
theme = EXT:bootstrap_package/Resources/Public/Scss/bootstrap5/theme.scss
}
includeJSFooterlibs {
popper = EXT:bootstrap_package/Resources/Public/Contrib/popper-core/popper.min.js
bootstrap = EXT:bootstrap_package/Resources/Public/Contrib/bootstrap5/js/bootstrap.min.js
}
}
@@ -0,0 +1,111 @@
############################################
#### CTYPE: BOOTSTRAP PACKAGE ACCORDION ####
############################################
tt_content.accordion >
tt_content.accordion =< lib.contentElement
tt_content.accordion {
################
### TEMPLATE ###
################
templateName = Accordion
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
20 {
table = tx_bootstrappackage_accordion_item
pidInList.field = pid
where {
data = field:uid
intval = 1
wrap = tt_content=|
}
orderBy = sorting
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = media
}
}
}
}
}
#########################
### RESPONSIVE IMAGES ###
#########################
lib.contentElement.settings.responsiveimages.contentelements {
accordion {
left {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
gutters {
default = 16
xlarge = 16
large = 16
medium = 16
}
corrections {
default = 21
xlarge = 21
large = 21
medium = 21
small = 42
extrasmall = 42
}
}
top {
corrections {
default = 42
xlarge = 42
large = 42
medium = 42
small = 42
extrasmall = 42
}
}
right {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
gutters {
default = 16
xlarge = 16
large = 16
medium = 16
}
corrections {
default = 21
xlarge = 21
large = 21
medium = 21
small = 42
extrasmall = 42
}
}
bottom {
corrections {
default = 42
xlarge = 42
large = 42
medium = 42
small = 42
extrasmall = 42
}
}
}
}
@@ -0,0 +1,24 @@
######################
#### CTYPE: AUDIO ####
######################
tt_content.audio >
tt_content.audio =< lib.contentElement
tt_content.audio {
################
### TEMPLATE ###
################
templateName = Audio
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = assets
}
}
}
@@ -0,0 +1,40 @@
########################
#### CTYPE: BULLETS ####
########################
tt_content.bullets >
tt_content.bullets =< lib.contentElement
tt_content.bullets {
################
### TEMPLATE ###
################
templateName = Bullets
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\SplitProcessor
10 {
if {
value = 2
isLessThan.field = bullets_type
}
fieldName = bodytext
removeEmptyEntries = 1
as = bullets
}
20 = TYPO3\CMS\Frontend\DataProcessing\CommaSeparatedValueProcessor
20 {
fieldName = bodytext
if {
value = 2
equals.field = bullets_type
}
fieldDelimiter = |
as = bullets
}
}
}
@@ -0,0 +1,135 @@
##########################
#### CTYPE: CARDGROUP ####
##########################
tt_content.card_group >
tt_content.card_group =< lib.contentElement
tt_content.card_group {
################
### TEMPLATE ###
################
templateName = CardGroup
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
20 {
table = tx_bootstrappackage_card_group_item
pidInList.field = pid
where {
data = field:uid
intval = 1
wrap = tt_content=|
}
orderBy = sorting
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = image
as = image
}
1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor
1628754217 {
iconSet.field = link_icon_set
iconIdentifier.field = link_icon_identifier
iconFileFieldName = link_icon
as = linkIcon
}
}
}
}
}
#########################
### RESPONSIVE IMAGES ###
#########################
lib.contentElement.settings.responsiveimages.contentelements {
card_group {
1 {
corrections {
default = 2
xlarge = 2
large = 2
medium = 2
small = 2
extrasmall = 2
}
}
2 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 16
xlarge = 16
large = 16
medium = 16
small = 16
}
corrections {
default = 2
xlarge = 2
large = 2
medium = 2
small = 2
extrasmall = 2
}
}
3 {
multiplier {
default = 0.3333
xlarge = 0.3333
large = 0.3333
medium = 0.3333
}
gutters {
default = 32
xlarge = 32
large = 32
medium = 32
}
corrections {
default = 2
xlarge = 2
large = 2
medium = 2
small = 2
extrasmall = 2
}
}
4 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 48
xlarge = 48
large = 16
medium = 16
small = 16
}
corrections {
default = 2
xlarge = 2
large = 2
medium = 2
small = 2
extrasmall = 2
}
}
}
}
@@ -0,0 +1,73 @@
###########################################
#### CTYPE: BOOTSTRAP PACKAGE CAROUSEL ####
###########################################
tt_content.carousel >
tt_content.carousel =< lib.contentElement
tt_content.carousel {
################
### TEMPLATE ###
################
templateName = Carousel
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
20 {
table = tx_bootstrappackage_carousel_item
pidInList.field = pid
where {
data = field:uid
intval = 1
wrap = tt_content=|
}
orderBy = sorting
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = background_image
as = backgroundImage
}
20 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
20 {
references.fieldName = image
as = images
}
1532633187 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
1532633187 {
fieldName = background_image_options
}
}
}
}
}
#########################
### RESPONSIVE IMAGES ###
#########################
lib.contentElement.settings.responsiveimages.contentelements {
carousel {
background_image {
multiplier {
default = 1.5
xlarge = 1.5
large = 1.5
}
}
text_and_image {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
}
}
}
@@ -0,0 +1,73 @@
######################################################
#### CTYPE: BOOTSTRAP PACKAGE CAROUSEL FULLSCREEN ####
######################################################
tt_content.carousel_fullscreen >
tt_content.carousel_fullscreen =< lib.contentElement
tt_content.carousel_fullscreen {
################
### TEMPLATE ###
################
templateName = CarouselFullscreen
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
20 {
table = tx_bootstrappackage_carousel_item
pidInList.field = pid
where {
data = field:uid
intval = 1
wrap = tt_content=|
}
orderBy = sorting
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = background_image
as = backgroundImage
}
20 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
20 {
references.fieldName = image
as = images
}
1532633187 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
1532633187 {
fieldName = background_image_options
}
}
}
}
}
#########################
### RESPONSIVE IMAGES ###
#########################
lib.contentElement.settings.responsiveimages.contentelements {
carousel_fullscreen {
background_image {
multiplier {
default = 1.5
xlarge = 1.5
large = 1.5
}
}
text_and_image {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
}
}
}
@@ -0,0 +1,73 @@
#################################################
#### CTYPE: BOOTSTRAP PACKAGE CAROUSEL SMALL ####
#################################################
tt_content.carousel_small >
tt_content.carousel_small =< lib.contentElement
tt_content.carousel_small {
################
### TEMPLATE ###
################
templateName = CarouselSmall
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
20 {
table = tx_bootstrappackage_carousel_item
pidInList.field = pid
where {
data = field:uid
intval = 1
wrap = tt_content=|
}
orderBy = sorting
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = background_image
as = backgroundImage
}
20 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
20 {
references.fieldName = image
as = images
}
1532633187 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
1532633187 {
fieldName = background_image_options
}
}
}
}
}
#########################
### RESPONSIVE IMAGES ###
#########################
lib.contentElement.settings.responsiveimages.contentelements {
carousel_small {
background_image {
multiplier {
default = 1.5
xlarge = 1.5
large = 1.5
}
}
text_and_image {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
}
}
}
@@ -0,0 +1,33 @@
####################
#### CTYPE: CSV ####
####################
tt_content.csv >
tt_content.csv =< lib.contentElement
tt_content.csv {
################
### TEMPLATE ###
################
templateName = Csv
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = BK2K\BootstrapPackage\DataProcessing\CsvFileProcessor
10 {
references.fieldName = media
fieldDelimiter.char.cObject = TEXT
fieldDelimiter.char.cObject {
field = table_delimiter
}
fieldEnclosure.char.cObject = TEXT
fieldEnclosure.char.cObject {
field = table_enclosure
}
maximumColumns.field = cols
}
}
}
@@ -0,0 +1,14 @@
####################
#### CTYPE: DIV ####
####################
tt_content.div >
tt_content.div =< lib.contentElement
tt_content.div {
################
### TEMPLATE ###
################
templateName = Div
}
@@ -0,0 +1,14 @@
#################################################
#### CTYPE: BOOTSTRAP PACKAGE EXTERNAL MEDIA ####
#################################################
tt_content.external_media >
tt_content.external_media =< lib.contentElement
tt_content.external_media {
################
### TEMPLATE ###
################
templateName = ExternalMedia
}
@@ -0,0 +1,29 @@
########################
#### CTYPE: GALLERY ####
########################
tt_content.gallery >
tt_content.gallery =< lib.contentElement
tt_content.gallery {
################
### TEMPLATE ###
################
templateName = Gallery
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = image
folders.field = file_folder
sorting.field = filelink_sorting
}
20 = BK2K\BootstrapPackage\DataProcessing\FileFilterProcessor
20 {
predefinedList = image
}
}
}
@@ -0,0 +1,14 @@
#######################
#### CTYPE: HEADER ####
#######################
tt_content.header >
tt_content.header =< lib.contentElement
tt_content.header {
################
### TEMPLATE ###
################
templateName = Header
}
@@ -0,0 +1,14 @@
#####################
#### CTYPE: HTML ####
#####################
tt_content.html >
tt_content.html =< lib.contentElement
tt_content.html {
################
### TEMPLATE ###
################
templateName = Html
}
@@ -0,0 +1,41 @@
#####################
#### CTYPE: HTML ####
#####################
tt_content.icon_group >
tt_content.icon_group =< lib.contentElement
tt_content.icon_group {
################
### TEMPLATE ###
################
templateName = IconGroup
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
20 {
table = tx_bootstrappackage_icon_group_item
pidInList.field = pid
where {
data = field:uid
intval = 1
wrap = tt_content=|
}
orderBy = sorting
dataProcessing {
1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor
1628754217 {
iconSet.field = icon_set
iconIdentifier.field = icon_identifier
iconFileFieldName = icon_file
as = icon
}
}
}
}
}
@@ -0,0 +1,30 @@
######################
#### CTYPE: IMAGE ####
######################
tt_content.image >
tt_content.image =< lib.contentElement
tt_content.image {
################
### TEMPLATE ###
################
templateName = Image
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = image
folders.field = file_folder
sorting.field = filelink_sorting
}
20 = BK2K\BootstrapPackage\DataProcessing\FileFilterProcessor
20 {
predefinedList = image
}
}
}
@@ -0,0 +1,13 @@
#####################
#### CTYPE: LIST ####
#####################
tt_content.list =< lib.contentElement
tt_content.list {
################
### TEMPLATE ###
################
templateName = List
}
@@ -0,0 +1,26 @@
############################################
#### CTYPE: BOOTSTRAP PACKAGE LISTGROUP ####
############################################
tt_content.listgroup >
tt_content.listgroup =< lib.contentElement
tt_content.listgroup {
################
### TEMPLATE ###
################
templateName = ListGroup
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\SplitProcessor
10 {
fieldName = bodytext
removeEmptyEntries = 1
as = items
}
}
}
@@ -0,0 +1,30 @@
######################
#### CTYPE: MEDIA ####
######################
tt_content.media >
tt_content.media =< lib.contentElement
tt_content.media {
################
### TEMPLATE ###
################
templateName = Media
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = assets
folders.field = file_folder
sorting.field = filelink_sorting
}
20 = BK2K\BootstrapPackage\DataProcessing\FileFilterProcessor
20 {
allowedFileExtensions = youtube, vimeo
}
}
}
@@ -0,0 +1,45 @@
##############################################################
#### CTYPE: MENU OF SUBPAGES TO THESE PAGES WITH ABSTRACT ####
##############################################################
tt_content.menu_abstract >
tt_content.menu_abstract =< lib.contentElement
tt_content.menu_abstract {
################
### TEMPLATE ###
################
templateName = MenuAbstract
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
special = directory
special.value.field = pages
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = media
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
@@ -0,0 +1,148 @@
###################################
#### CTYPE: MENU CARD SUBPAGES ####
###################################
tt_content.menu_card_dir >
tt_content.menu_card_dir =< lib.contentElement
tt_content.menu_card_dir {
################
### TEMPLATE ###
################
templateName = MenuCardDir
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
20 {
special = directory
special.value.field = pages
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = thumbnail
if {
isTrue = {$plugin.bootstrap_package_contentelements.menu_card.thumbnail.enable}
}
}
1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor
1628754217 {
iconSet.field = nav_icon_set
iconIdentifier.field = nav_icon_identifier
iconFileFieldName = nav_icon
as = icon
if {
isTrue = {$plugin.bootstrap_package_contentelements.menu_card.icon.enable}
}
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
#########################
### RESPONSIVE IMAGES ###
#########################
lib.contentElement.settings.responsiveimages.contentelements {
menu_card_dir {
1 {
corrections {
default = 2
xlarge = 2
large = 2
medium = 2
small = 2
extrasmall = 2
}
}
2 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 16
xlarge = 16
large = 16
medium = 16
small = 16
}
corrections {
default = 2
xlarge = 2
large = 2
medium = 2
small = 2
extrasmall = 2
}
}
3 {
multiplier {
default = 0.3333
xlarge = 0.3333
large = 0.3333
medium = 0.3333
}
gutters {
default = 32
xlarge = 32
large = 32
medium = 32
}
corrections {
default = 2
xlarge = 2
large = 2
medium = 2
small = 2
extrasmall = 2
}
}
4 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 48
xlarge = 48
large = 16
medium = 16
small = 16
}
corrections {
default = 2
xlarge = 2
large = 2
medium = 2
small = 2
extrasmall = 2
}
}
}
}
@@ -0,0 +1,149 @@
###################################
#### CTYPE: MENU CARD SUBPAGES ####
###################################
tt_content.menu_card_list >
tt_content.menu_card_list =< lib.contentElement
tt_content.menu_card_list {
################
### TEMPLATE ###
################
templateName = MenuCardList
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
20 {
special = list
special.value.field = pages
includeNotInMenu = 1
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = thumbnail
if {
isTrue = {$plugin.bootstrap_package_contentelements.menu_card.thumbnail.enable}
}
}
1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor
1628754217 {
iconSet.field = nav_icon_set
iconIdentifier.field = nav_icon_identifier
iconFileFieldName = nav_icon
as = icon
if {
isTrue = {$plugin.bootstrap_package_contentelements.menu_card.icon.enable}
}
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
#########################
### RESPONSIVE IMAGES ###
#########################
lib.contentElement.settings.responsiveimages.contentelements {
menu_card_list {
1 {
corrections {
default = 2
xlarge = 2
large = 2
medium = 2
small = 2
extrasmall = 2
}
}
2 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 16
xlarge = 16
large = 16
medium = 16
small = 16
}
corrections {
default = 2
xlarge = 2
large = 2
medium = 2
small = 2
extrasmall = 2
}
}
3 {
multiplier {
default = 0.3333
xlarge = 0.3333
large = 0.3333
medium = 0.3333
}
gutters {
default = 32
xlarge = 32
large = 32
medium = 32
}
corrections {
default = 2
xlarge = 2
large = 2
medium = 2
small = 2
extrasmall = 2
}
}
4 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 48
xlarge = 48
large = 16
medium = 16
small = 16
}
corrections {
default = 2
xlarge = 2
large = 2
medium = 2
small = 2
extrasmall = 2
}
}
}
}
@@ -0,0 +1,54 @@
############################################
#### CTYPE: MENU OF CATEGORIZED CONTENT ####
############################################
tt_content.menu_categorized_content >
tt_content.menu_categorized_content =< lib.contentElement
tt_content.menu_categorized_content {
################
### TEMPLATE ###
################
templateName = MenuCategorizedContent
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
10 {
table = tt_content
selectFields = tt_content.*
groupBy = uid
pidInList.data = leveluid : 0
recursive = 99
join.data = field:selected_categories
join.wrap = sys_category_record_mm ON tt_content.uid = sys_category_record_mm.uid_foreign AND sys_category_record_mm.uid_local IN(|)
where.data = field:category_field
where.wrap = tablenames='tt_content' and fieldname='|'
as = content
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = image
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
@@ -0,0 +1,50 @@
##########################################
#### CTYPE: MENU OF CATEGORIZED PAGES ####
##########################################
tt_content.menu_categorized_pages >
tt_content.menu_categorized_pages =< lib.contentElement
tt_content.menu_categorized_pages {
################
### TEMPLATE ###
################
templateName = MenuCategorizedPages
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
special = categories
special {
value.field = selected_categories
relation.field = category_field
sorting = title
order = asc
}
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = media
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
@@ -0,0 +1,46 @@
#####################
#### CTYPE: MENU ####
#####################
tt_content.menu_pages >
tt_content.menu_pages =< lib.contentElement
tt_content.menu_pages {
################
### TEMPLATE ###
################
templateName = MenuPages
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
special = list
special.value.field = pages
includeNotInMenu = 1
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = media
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
@@ -0,0 +1,49 @@
############################################
#### CTYPE: MENU RECENTLY UPDATED PAGES ####
############################################
tt_content.menu_recently_updated >
tt_content.menu_recently_updated =< lib.contentElement
tt_content.menu_recently_updated {
################
### TEMPLATE ###
################
templateName = MenuRecentlyUpdated
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
special = updated
special {
value.field = pages
maxAge = 3600*24*7
excludeNoSearchPages = 1
}
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = media
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
@@ -0,0 +1,48 @@
#####################################################
#### CTYPE: MENU RELATED PAGES BASED ON KEYWORDS ####
#####################################################
tt_content.menu_related_pages >
tt_content.menu_related_pages =< lib.contentElement
tt_content.menu_related_pages {
################
### TEMPLATE ###
################
templateName = MenuRelatedPages
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
special = keywords
special {
value.field = pages
excludeNoSearchPages = 1
}
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = media
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
@@ -0,0 +1,70 @@
###################################
#### CTYPE: MENU SECTION INDEX ####
###################################
tt_content.menu_section >
tt_content.menu_section =< lib.contentElement
tt_content.menu_section {
################
### TEMPLATE ###
################
templateName = MenuSection
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
special = list
special {
value {
field = pages
override {
data = page:uid
if {
isFalse.field = pages
}
}
}
}
includeNotInMenu = 1
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = media
}
20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
20 {
table = tt_content
pidInList.field = uid
as = content
where = sectionIndex = 1
orderBy = sorting
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = image
}
}
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
@@ -0,0 +1,59 @@
#############################################################
#### CTYPE: MENU OF SUBPAGES TO THESE PAGES AND SECTIONS ####
#############################################################
tt_content.menu_section_pages >
tt_content.menu_section_pages =< lib.contentElement
tt_content.menu_section_pages {
################
### TEMPLATE ###
################
templateName = MenuSectionPages
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
special = directory
special.value.field = pages
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = media
}
20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
20 {
table = tt_content
pidInList.field = uid
as = content
where = sectionIndex = 1
orderBy = sorting
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = image
}
}
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
@@ -0,0 +1,46 @@
#############################
#### CTYPE: MENU SITEMAP ####
#############################
tt_content.menu_sitemap >
tt_content.menu_sitemap =< lib.contentElement
tt_content.menu_sitemap {
################
### TEMPLATE ###
################
templateName = MenuSitemap
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
special = list
special.value.field = pages
levels = 7
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = media
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
@@ -0,0 +1,46 @@
###############################################
#### CTYPE: MENU SITEMAP OF SELECTED PAGES ####
###############################################
tt_content.menu_sitemap_pages >
tt_content.menu_sitemap_pages =< lib.contentElement
tt_content.menu_sitemap_pages {
################
### TEMPLATE ###
################
templateName = MenuSitemapPages
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
special = directory
special.value.field = pages
levels = 7
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = media
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
@@ -0,0 +1,45 @@
################################################
#### CTYPE: MENU OF SUBPAGES TO THESE PAGES ####
################################################
tt_content.menu_subpages >
tt_content.menu_subpages =< lib.contentElement
tt_content.menu_subpages {
################
### TEMPLATE ###
################
templateName = MenuSubpages
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
special = directory
special.value.field = pages
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = media
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
@@ -0,0 +1,103 @@
########################################
#### CTYPE: MENU THUMBNAIL SUBPAGES ####
########################################
tt_content.menu_thumbnail_dir >
tt_content.menu_thumbnail_dir =< lib.contentElement
tt_content.menu_thumbnail_dir {
################
### TEMPLATE ###
################
templateName = MenuThumbnailDir
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
20 {
special = directory
special.value.field = pages
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = thumbnail
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
#########################
### RESPONSIVE IMAGES ###
#########################
lib.contentElement.settings.responsiveimages.contentelements {
menu_thumbnail_dir {
2 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 8
xlarge = 8
large = 8
medium = 8
small = 8
}
}
3 {
multiplier {
default = 0.3333
xlarge = 0.3333
large = 0.3333
medium = 0.3333
small = 0.3333
}
gutters {
default = 16
xlarge = 16
large = 16
medium = 16
small = 16
}
}
4 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
medium = 0.5
small = 0.5
}
gutters {
default = 24
xlarge = 24
large = 24
medium = 16
small = 16
}
}
}
}
@@ -0,0 +1,104 @@
########################################
#### CTYPE: MENU THUMBNAIL SUBPAGES ####
########################################
tt_content.menu_thumbnail_list >
tt_content.menu_thumbnail_list =< lib.contentElement
tt_content.menu_thumbnail_list {
################
### TEMPLATE ###
################
templateName = MenuThumbnailList
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
20 {
special = list
special.value.field = pages
includeNotInMenu = 1
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = thumbnail
}
}
}
90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
90 {
if {
isTrue.field = accessibility_bypass
}
table = tt_content
pidInList = this
orderBy = sorting
max = 1
where {
dataWrap = colPos = {field:colPos} AND sorting > {field:sorting}
}
as = nextContentElement
}
}
}
#########################
### RESPONSIVE IMAGES ###
#########################
lib.contentElement.settings.responsiveimages.contentelements {
menu_thumbnail_list {
2 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 8
xlarge = 8
large = 8
medium = 8
small = 8
}
}
3 {
multiplier {
default = 0.3333
xlarge = 0.3333
large = 0.3333
medium = 0.3333
small = 0.3333
}
gutters {
default = 16
xlarge = 16
large = 16
medium = 16
small = 16
}
}
4 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
medium = 0.5
small = 0.5
}
gutters {
default = 24
xlarge = 24
large = 24
medium = 16
small = 16
}
}
}
}
@@ -0,0 +1,14 @@
########################################
#### CTYPE: BOOTSTRAP PACKAGE PANEL ####
########################################
tt_content.panel >
tt_content.panel =< lib.contentElement
tt_content.panel {
################
### TEMPLATE ###
################
templateName = Panel
}
@@ -0,0 +1,14 @@
######################
#### CTYPE: QUOTE ####
######################
tt_content.quote >
tt_content.quote =< lib.contentElement
tt_content.quote {
################
### TEMPLATE ###
################
templateName = Quote
}
@@ -0,0 +1,25 @@
#########################
#### CTYPE: SHORTCUT ####
#########################
tt_content.shortcut >
tt_content.shortcut =< lib.contentElement
tt_content.shortcut {
################
### TEMPLATE ###
################
templateName = Shortcut
#################
### VARIABLES ###
#################
variables {
shortcuts = RECORDS
shortcuts {
source.field = records
tables = tt_content
}
}
}
@@ -0,0 +1,25 @@
#############################
#### CTYPE: SOCIAL LINKS ####
#############################
tt_content.social_links >
tt_content.social_links =< lib.contentElement
tt_content.social_links {
################
### TEMPLATE ###
################
templateName = SocialLinks
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
1 = BK2K\BootstrapPackage\DataProcessing\ConstantsProcessor
1 {
as = socialmedia
key = page.theme.socialmedia
}
}
}
@@ -0,0 +1,75 @@
######################################
#### CTYPE: BOOTSTRAP PACKAGE TAB ####
######################################
tt_content.tab >
tt_content.tab =< lib.contentElement
tt_content.tab {
################
### TEMPLATE ###
################
templateName = Tab
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
20 {
table = tx_bootstrappackage_tab_item
pidInList.field = pid
where {
data = field:uid
intval = 1
wrap = tt_content=|
}
orderBy = sorting
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = media
}
}
}
}
}
#########################
### RESPONSIVE IMAGES ###
#########################
lib.contentElement.settings.responsiveimages.contentelements {
tab {
left {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
gutters {
default = 16
xlarge = 16
large = 16
medium = 16
}
}
right {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
gutters {
default = 16
xlarge = 16
large = 16
medium = 16
}
}
}
}
@@ -0,0 +1,33 @@
######################
#### CTYPE: TABLE ####
######################
tt_content.table >
tt_content.table =< lib.contentElement
tt_content.table {
################
### TEMPLATE ###
################
templateName = Table
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\CommaSeparatedValueProcessor
10 {
fieldName = bodytext
fieldDelimiter.char.cObject = TEXT
fieldDelimiter.char.cObject {
field = table_delimiter
}
fieldEnclosure.char.cObject = TEXT
fieldEnclosure.char.cObject {
field = table_enclosure
}
as = table
}
}
}
@@ -0,0 +1,14 @@
#####################
#### CTYPE: TEXT ####
#####################
tt_content.text >
tt_content.text =< lib.contentElement
tt_content.text {
################
### TEMPLATE ###
################
templateName = Text
}
@@ -0,0 +1,14 @@
###########################
#### CTYPE: TEXTCOLUMN ####
###########################
tt_content.textcolumn >
tt_content.textcolumn =< lib.contentElement
tt_content.textcolumn {
################
### TEMPLATE ###
################
templateName = Textcolumn
}
@@ -0,0 +1,27 @@
###########################################
#### CTYPE: BOOTSTRAP PACKAGE TEXTICON ####
###########################################
tt_content.texticon >
tt_content.texticon =< lib.contentElement
tt_content.texticon {
################
### TEMPLATE ###
################
templateName = Texticon
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor
1628754217 {
iconSet.field = icon_set
iconIdentifier.field = icon
iconFileFieldName = icon_file
as = icon
}
}
}
@@ -0,0 +1,105 @@
##########################
#### CTYPE: TEXTMEDIA ####
##########################
tt_content.textmedia >
tt_content.textmedia =< lib.contentElement
tt_content.textmedia {
################
### TEMPLATE ###
################
templateName = TEXT
templateName.stdWrap.cObject = CASE
templateName.stdWrap.cObject {
key.field = imageorient
8 = TEXT
8.value = TextmediaBelow
25 = TEXT
25.value = TextmediaRight
26 = TEXT
26.value = TextmediaLeft
125 = TEXT
125.value = TextmediaCenteredRight
126 = TEXT
126.value = TextmediaCenteredLeft
default = TEXT
default.value = TextmediaAbove
}
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = assets
}
}
}
#########################
### RESPONSIVE IMAGES ###
#########################
lib.contentElement.settings.responsiveimages.contentelements {
textmedia {
centered_left {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
centered_right {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
left {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
right {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
}
}
@@ -0,0 +1,111 @@
########################
#### CTYPE: TEXTPIC ####
########################
tt_content.textpic >
tt_content.textpic =< lib.contentElement
tt_content.textpic {
################
### TEMPLATE ###
################
templateName = TEXT
templateName.stdWrap.cObject = CASE
templateName.stdWrap.cObject {
key.field = imageorient
8 = TEXT
8.value = TextpicBelow
25 = TEXT
25.value = TextpicRight
26 = TEXT
26.value = TextpicLeft
125 = TEXT
125.value = TextpicCenteredRight
126 = TEXT
126.value = TextpicCenteredLeft
default = TEXT
default.value = TextpicAbove
}
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = image
folders.field = file_folder
sorting.field = filelink_sorting
}
20 = BK2K\BootstrapPackage\DataProcessing\FileFilterProcessor
20 {
predefinedList = image
}
}
}
#########################
### RESPONSIVE IMAGES ###
#########################
lib.contentElement.settings.responsiveimages.contentelements {
textpic {
centered_left {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
centered_right {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
left {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
right {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
}
}
@@ -0,0 +1,14 @@
###########################
#### CTYPE: TEXTTEASER ####
###########################
tt_content.textteaser >
tt_content.textteaser =< lib.contentElement
tt_content.textteaser {
################
### TEMPLATE ###
################
templateName = Textteaser
}
@@ -0,0 +1,76 @@
#########################
#### CTYPE: TIMELINE ####
#########################
tt_content.timeline >
tt_content.timeline =< lib.contentElement
tt_content.timeline {
################
### TEMPLATE ###
################
templateName = Timeline
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
10 {
table = tx_bootstrappackage_timeline_item
pidInList.field = pid
where {
data = field:uid
intval = 1
wrap = tt_content=|
}
orderBy.stdWrap.cObject = TEXT
orderBy.stdWrap.cObject {
data = flexform:pi_flexform:sorting
ifEmpty.cObject = TEXT
ifEmpty.cObject {
value.current = 1
ifEmpty = date desc
}
}
dataProcessing {
20 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
20 {
references.fieldName = image
as = image
}
1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor
1628754217 {
iconSet.field = icon_set
iconIdentifier.field = icon_identifier
iconFileFieldName = icon_file
as = icon
}
}
}
}
}
#########################
### RESPONSIVE IMAGES ###
#########################
lib.contentElement.settings.responsiveimages.contentelements {
timeline {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
corrections {
default = 49
xlarge = 49
large = 49
medium = 49
small = 72
extrasmall = 72
}
}
}
@@ -0,0 +1,27 @@
########################
#### CTYPE: UPLOADS ####
########################
tt_content.uploads >
tt_content.uploads =< lib.contentElement
tt_content.uploads {
################
### TEMPLATE ###
################
templateName = Uploads
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = media
collections.field = file_collections
sorting.field = filelink_sorting
sorting.direction.field = filelink_sorting_direction
}
}
}
@@ -0,0 +1,687 @@
##################################################
### CONTENT ELEMENT SETTINGS ###
### Shared settings for TYPO3 content elements ###
##################################################
lib.contentElement = FLUIDTEMPLATE
lib.contentElement {
################
### TEMPLATE ###
################
templateName = Default
templateRootPaths {
0 = EXT:bootstrap_package/Resources/Private/Templates/ContentElements/
10 = {$plugin.bootstrap_package_contentelements.view.templateRootPath}
}
partialRootPaths {
0 = EXT:bootstrap_package/Resources/Private/Partials/ContentElements/
10 = {$plugin.bootstrap_package_contentelements.view.partialRootPath}
}
layoutRootPaths {
0 = EXT:bootstrap_package/Resources/Private/Layouts/ContentElements/
10 = {$plugin.bootstrap_package_contentelements.view.layoutRootPath}
}
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
1509614342 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
1509614342 {
references.fieldName = background_image
as = backgroundImage
}
1532626753 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor
1532626753 {
fieldName = background_image_options
}
}
#################
### VARIABLES ###
#################
variables {
backendlayout = TEXT
backendlayout {
data = pagelayout
replacement.10 {
search = pagets__
replace =
}
ifEmpty = default
}
}
################
### SETTINGS ###
################
settings {
header {
defaultHeaderType = {$plugin.bootstrap_package_contentelements.header.defaultHeaderType}
class = {$plugin.bootstrap_package_contentelements.header.class}
date {
format = {$plugin.bootstrap_package_contentelements.header.date.format}
}
}
subheader {
class = {$plugin.bootstrap_package_contentelements.subheader.class}
}
lightbox {
cssClass = {$plugin.bootstrap_package_contentelements.lightbox.cssClass}
prefix = {$plugin.bootstrap_package_contentelements.lightbox.prefix}
image {
maxHeight = {$plugin.bootstrap_package_contentelements.lightbox.image.maxHeight}
maxWidth = {$plugin.bootstrap_package_contentelements.lightbox.image.maxWidth}
}
}
media {
additionalConfig {
autoplay = {$plugin.bootstrap_package_contentelements.media.additionalConfig.autoplay}
controls = {$plugin.bootstrap_package_contentelements.media.additionalConfig.controls}
loop = {$plugin.bootstrap_package_contentelements.media.additionalConfig.loop}
enablejsapi = {$plugin.bootstrap_package_contentelements.media.additionalConfig.enablejsapi}
showinfo = {$plugin.bootstrap_package_contentelements.media.additionalConfig.showinfo}
relatedVideos = {$plugin.bootstrap_package_contentelements.media.additionalConfig.relatedVideos}
modestbranding = {$plugin.bootstrap_package_contentelements.media.additionalConfig.modestbranding}
}
}
gallery {
columns {
1 {
class = {$plugin.bootstrap_package_contentelements.gallery.columns.1.class}
}
2 {
class = {$plugin.bootstrap_package_contentelements.gallery.columns.2.class}
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
extrasmall = 0.5
}
gutters {
default = 8
xlarge = 8
large = 8
medium = 8
small = 8
extrasmall = 8
}
}
3 {
class = {$plugin.bootstrap_package_contentelements.gallery.columns.3.class}
multiplier {
default = 0.3333
xlarge = 0.3333
large = 0.3333
medium = 0.3333
small = 0.3333
extrasmall = 0.3333
}
gutters {
default = 16
xlarge = 16
large = 16
medium = 16
small = 16
extrasmall = 16
}
}
4 {
class = {$plugin.bootstrap_package_contentelements.gallery.columns.4.class}
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
medium = 0.5
small = 0.5
extrasmall = 0.5
}
gutters {
default = 24
xlarge = 24
large = 24
medium = 8
small = 8
extrasmall = 8
}
}
5 {
class = {$plugin.bootstrap_package_contentelements.gallery.columns.5.class}
multiplier {
default = 0.2
xlarge = 0.2
large = 0.2
medium = 0.3333
small = 0.3333
extrasmall = 0.5
}
gutters {
default = 32
xlarge = 32
large = 32
medium = 16
small = 16
extrasmall = 8
}
}
6 {
class = {$plugin.bootstrap_package_contentelements.gallery.columns.6.class}
multiplier {
default = 0.1666
xlarge = 0.16666
large = 0.16666
medium = 0.3333
small = 0.3333
extrasmall = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 16
small = 16
extrasmall = 8
}
}
}
}
responsiveimages {
variants {
default {
breakpoint = 1400
width = 1280
}
xlarge {
breakpoint = 1200
width = 1100
}
large {
breakpoint = 992
width = 920
}
medium {
breakpoint = 768
width = 680
}
small {
breakpoint = 576
width = 500
}
extrasmall {
breakpoint = unset
width = 374
}
}
backendlayout {
2_columns {
0 {
multiplier {
default = 0.75
xlarge = 0.75
large = 0.75
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
2 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
}
2_columns_25_75 {
0 {
multiplier {
default = 0.75
xlarge = 0.75
large = 0.75
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
1 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
}
2_columns_50_50 {
0 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
2 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
}
subnavigation_left {
0 {
multiplier {
default = 0.75
xlarge = 0.75
large = 0.75
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
}
2_columns_offset_right {
0 {
multiplier {
default = 0.6666
xlarge = 0.6666
large = 0.6666
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
2 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
}
3_columns {
0 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
1 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
2 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
}
special_feature {
30 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
small = 40
}
}
31 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
small = 40
}
}
32 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
small = 40
}
}
33 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
small = 40
}
}
34 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
small = 40
}
}
35 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
small = 40
}
}
36 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
small = 40
}
}
37 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
small = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
small = 40
}
}
}
special_start {
20 {
multiplier {
default = 0.3333
xlarge = 0.3333
large = 0.3333
medium = 0.3333
}
gutters {
default = 80
xlarge = 80
large = 80
medium = 80
}
}
21 {
multiplier {
default = 0.3333
xlarge = 0.3333
large = 0.3333
medium = 0.3333
}
gutters {
default = 80
xlarge = 80
large = 80
medium = 80
}
}
22 {
multiplier {
default = 0.3333
xlarge = 0.3333
large = 0.3333
medium = 0.3333
}
gutters {
default = 80
xlarge = 80
large = 80
medium = 80
}
}
}
subnavigation_left {
0 {
multiplier {
default = 0.75
xlarge = 0.75
large = 0.75
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
}
subnavigation_left_2_columns {
0 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
1 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
}
subnavigation_right {
0 {
multiplier {
default = 0.75
xlarge = 0.75
large = 0.75
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
}
subnavigation_right_2_columns {
0 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
2 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
}
gutters {
default = 40
xlarge = 40
large = 40
}
}
}
}
}
menuthumbnail {
title {
crop = {$plugin.bootstrap_package_contentelements.menu_thumbnail.title.crop}
}
subtitle {
crop = {$plugin.bootstrap_package_contentelements.menu_thumbnail.subtitle.crop}
}
}
menucard {
icon {
enable = {$plugin.bootstrap_package_contentelements.menu_card.icon.enable}
height = {$plugin.bootstrap_package_contentelements.menu_card.icon.height}
width = {$plugin.bootstrap_package_contentelements.menu_card.icon.width}
}
title {
crop = {$plugin.bootstrap_package_contentelements.menu_card.title.crop}
}
subtitle {
crop = {$plugin.bootstrap_package_contentelements.menu_card.subtitle.crop}
}
abstract {
crop = {$plugin.bootstrap_package_contentelements.menu_card.abstract.crop}
}
}
texticon {
icon {
default {
height = {$plugin.bootstrap_package_contentelements.texticon.icon.default.height}
width = {$plugin.bootstrap_package_contentelements.texticon.icon.default.width}
}
medium {
height = {$plugin.bootstrap_package_contentelements.texticon.icon.medium.height}
width = {$plugin.bootstrap_package_contentelements.texticon.icon.medium.width}
}
large {
height = {$plugin.bootstrap_package_contentelements.texticon.icon.large.height}
width = {$plugin.bootstrap_package_contentelements.texticon.icon.large.width}
}
awesome {
height = {$plugin.bootstrap_package_contentelements.texticon.icon.awesome.height}
width = {$plugin.bootstrap_package_contentelements.texticon.icon.awesome.width}
}
}
}
timeline {
date {
format = {$plugin.bootstrap_package_contentelements.timeline.date.format}
}
}
uploads {
preview {
height = {$plugin.bootstrap_package_contentelements.uploads.preview.height}
width = {$plugin.bootstrap_package_contentelements.uploads.preview.width}
}
}
}
}
@@ -0,0 +1,118 @@
################################################
#### DYNAMIC CONTENT LIB FOR USAGE IN FLUID ####
################################################
#
# EXAMPLE
# ---------------
# <f:cObject typoscriptObjectPath="lib.dynamicContent" data="{
# pageUid: '{data.uid}',
# colPos: '0',
# slide: '0',
# wrap: '<div class=\"hero\">|</div>',
# elementWrap: '<div class=\"element\">|</div>'
# }" />
#
#
# COLUMN NUMBERS
# ---------------
#
# 0 = main
# 1 = left
# 2 = right
# 3 = border
# 4 = main2
#
# 8 = content before
# 9 = content after
#
# 10 = footer1
# 11 = footer2
# 12 = footer3
#
# 20 = middle1
# 21 = middle2
# 22 = middle3
#
# 30 = special1
# 31 = special2
# 32 = special3
# 33 = special4
# 34 = special5
# 35 = special6
# 36 = special7
# 37 = special8
# 38 = special9
# 39 = special10
#
#################
lib.dynamicContent = COA
lib.dynamicContent {
5 = LOAD_REGISTER
5 {
colPos.cObject = TEXT
colPos.cObject {
field = colPos
ifEmpty.cObject = TEXT
ifEmpty.cObject {
value.current = 1
ifEmpty = 0
}
}
slide.cObject = TEXT
slide.cObject {
override {
field = slide
if {
isInList.field = slide
value = -1, 0, 1, 2
}
}
ifEmpty = 0
}
pageUid.cObject = TEXT
pageUid.cObject {
field = pageUid
ifEmpty.data = TSFE:id
}
contentFromPid.cObject = TEXT
contentFromPid.cObject {
data = DB:pages:{register:pageUid}:content_from_pid
data.insertData = 1
}
wrap.cObject = TEXT
wrap.cObject {
field = wrap
}
elementWrap.cObject = TEXT
elementWrap.cObject{
field = elementWrap
}
}
20 = CONTENT
20 {
table = tt_content
select {
includeRecordsWithoutDefaultTranslation = 1
orderBy = sorting
where = {#colPos}={register:colPos}
where.insertData = 1
pidInList.data = register:pageUid
pidInList.override.data = register:contentFromPid
}
slide = {register:slide}
slide.insertData = 1
renderObj {
stdWrap{
dataWrap = {register:elementWrap}
required = 1
}
}
stdWrap {
dataWrap = {register:wrap}
required = 1
}
}
90 = RESTORE_REGISTER
}
lib.dynamicContentSlide =< lib.dynamicContent
lib.dynamicContentSlide.20.slide = -1
@@ -0,0 +1,141 @@
###################
#### PARSEFUNC ####
###################
lib.parseFunc {
makelinks = 1
makelinks {
http {
keep = path
extTarget = _blank
}
mailto {
keep = path
}
}
tags {
link = TEXT
link {
current = 1
typolink {
parameter {
data = parameters : allParams
}
extTarget = _blank
}
parseFunc.constants = 1
}
a = TEXT
a {
current = 1
typolink {
parameter.data = parameters:href
title.data = parameters:title
ATagParams.data = parameters:allParams
target.data = parameters:target
extTarget = _blank
extTarget.override.data = parameters:target
}
}
}
allowTags := addToList(a, abbr, acronym, address, article, aside, b, bdo)
allowTags := addToList(big, blockquote, br, caption, center, cite, code, col)
allowTags := addToList(colgroup, dd, del, dfn, dl, div, dt, em, font)
allowTags := addToList(footer, header, h1, h2, h3, h4, h5, h6, hr, i, img)
allowTags := addToList(ins, kbd, label, li, link, meta, nav, ol, p, pre, q)
allowTags := addToList(samp, sdfield, section, small, span, strike, strong)
allowTags := addToList(style, sub, sup, table, thead, tbody, tfoot, td, th)
allowTags := addToList(tr, title, tt, u, ul, var)
denyTags = *
sword = <span class="text-highlight">|</span>
constants = 1
nonTypoTagStdWrap {
HTMLparser = 1
HTMLparser {
keepNonMatchedTags = 1
htmlSpecialChars = 2
}
}
}
#######################
#### PARSEFUNC RTE ####
#######################
lib.parseFunc_RTE < lib.parseFunc
lib.parseFunc_RTE {
externalBlocks := addToList(article, address, aside, blockquote, div, dd, dl, footer)
externalBlocks := addToList(header, nav, ol, section, table, ul, pre, figure)
externalBlocks {
ol {
stripNL = 1
stdWrap {
parseFunc = < lib.parseFunc
}
}
ul {
stripNL = 1
stdWrap {
parseFunc = < lib.parseFunc
HTMLparser = 1
HTMLparser {
tags.ul.fixAttrib.class {
default = list-normal
}
keepNonMatchedTags = 1
}
}
}
table {
stripNL = 1
stdWrap {
wrap = <div class="table-responsive">|</div>
}
HTMLtableCells = 1
HTMLtableCells {
default.stdWrap {
parseFunc = < lib.parseFunc_RTE
parseFunc {
nonTypoTagStdWrap {
encapsLines {
nonWrappedTag =
}
}
}
}
}
}
pre {
stripNL = 1
stdWrap.parseFunc < lib.parseFunc
}
div {
stripNL = 1
callRecursive = 1
}
article < .div
aside < .div
figure < .div
blockquote < .div
footer < .div
header < .div
nav < .div
section < .div
dl < .div
dd < .div
}
nonTypoTagStdWrap {
encapsLines {
encapsTagList = p, pre, h1, h2, h3, h4, h5, h6, hr, dt
remapTag.DIV = P
nonWrappedTag = P
innerStdWrap_all.ifBlank = &nbsp;
}
}
nonTypoTagStdWrap {
HTMLparser = 1
HTMLparser {
keepNonMatchedTags = 1
htmlSpecialChars = 2
}
}
}
@@ -0,0 +1,175 @@
##################
### CATEGORIES ###
##################
# customsubcategory=100_contentelement=Templates
# customsubcategory=110_contentelement=Header
# customsubcategory=120_contentelement=Subheader
# customsubcategory=130_contentelement=Lightbox
# customsubcategory=131_contentelement=Media
# customsubcategory=140_contentelement=Gallery
# customsubcategory=150_contentelement=Menu Thumbnail
# customsubcategory=160_contentelement=Menu Card
# customsubcategory=170_contentelement=Text and Icon
# customsubcategory=180_contentelement=Timeline
# customsubcategory=190_contentelement=Uploads
########################
### CONTENT ELEMENTS ###
########################
plugin.bootstrap_package_contentelements {
view {
# cat=bootstrap package: content elements/100_contentelement/001_layoutRootPath; type=string; label=Layout Root Path: Path to layouts
layoutRootPath = EXT:bootstrap_package/Resources/Private/Layouts/ContentElements/
# cat=bootstrap package: content elements/100_contentelement/002_partialRootPath; type=string; label=Partial Root Path: Path to partials
partialRootPath = EXT:bootstrap_package/Resources/Private/Partials/ContentElements/
# cat=bootstrap package: content elements/100_contentelement/003_templateRootPath; type=string; label=Template Root Path: Path to templates
templateRootPath = EXT:bootstrap_package/Resources/Private/Templates/ContentElements/
}
header {
# cat=bootstrap package: content elements/110_contentelement/001_defaultHeaderType; type=int[1-5]; label=Default Header type: Enter the number of the header layout to be used by default
defaultHeaderType = 2
# cat=bootstrap package: content elements/110_contentelement/002_class; type=string; label=Default Header class
class = element-header
date {
# cat=bootstrap package: content elements/110_contentelement/003_date_format; type=string; label=Header date format
format = %B %e, %Y
}
}
subheader {
# cat=bootstrap package: content elements/120_contentelement/001_class; type=string; label=Default Subheader class
class = element-subheader
}
lightbox {
# cat=bootstrap package: content elements/130_contentelement/001_cssclass; type=string; label=Css Class
cssClass = lightbox
# cat=bootstrap package: content elements/130_contentelement/002_prefix; type=string; label=Group Prefix
prefix = lightbox-group
image {
# cat=bootstrap package: content elements/130_contentelement/003_image_maxheight; type=int+; label=Max Image Hight
maxHeight = 1200
# cat=bootstrap package: content elements/130_contentelement/003_image_maxwidth; type=int+; label=Max Image Width
maxWidth = 1200
}
}
media {
additionalConfig {
# cat=bootstrap package: content elements/131_contentelement/001_autoplay; type=boolean; label=Autoplay
autoplay = 0
# cat=bootstrap package: content elements/131_contentelement/002_controls; type=boolean; label=Controls
controls = 1
# cat=bootstrap package: content elements/131_contentelement/003_loop; type=boolean; label=Loop
loop = 0
# cat=bootstrap package: content elements/131_contentelement/004_enablejsapi; type=boolean; label=Enable JavaScript API
enablejsapi = 1
# cat=bootstrap package: content elements/131_contentelement/005_showinfo; type=boolean; label=Show Info
showinfo = 0
# cat=bootstrap package: content elements/131_contentelement/005_relatedVideos; type=boolean; label=Related Videos
relatedVideos = 0
# cat=bootstrap package: content elements/131_contentelement/005_relatedVideos; type=boolean; label=Modest Branding
modestbranding = 0
}
}
gallery {
columns {
1 {
# cat=bootstrap package: content elements/140_contentelement/001_columns_1_class; type=string; label=Item CSS Class for 1 column
class = gallery-item-size-1
}
2 {
# cat=bootstrap package: content elements/140_contentelement/002_columns_2_class; type=string; label=Item CSS Class for 2 columns
class = gallery-item-size-2
}
3 {
# cat=bootstrap package: content elements/140_contentelement/003_columns_3_class; type=string; label=Item CSS Class for 3 columns
class = gallery-item-size-3
}
4 {
# cat=bootstrap package: content elements/140_contentelement/004_columns_4_class; type=string; label=Item CSS Class for 4 Columns
class = gallery-item-size-4
}
5 {
# cat=bootstrap package: content elements/140_contentelement/005_columns_5_class; type=string; label=Item CSS Class for 5 Columns
class = gallery-item-size-5
}
6 {
# cat=bootstrap package: content elements/140_contentelement/006_columns_6_class; type=string; label=Item CSS Class for 6 Columns
class = gallery-item-size-6
}
}
}
menu_thumbnail {
title {
# cat=bootstrap package: content elements/150_contentelement/001_title_crop; type=string; label=Crop Title
crop = 100
}
subtitle {
# cat=bootstrap package: content elements/150_contentelement/002_subtitle_crop; type=string; label=Crop Subtitle
crop = 80
}
}
menu_card {
icon {
# cat=bootstrap package: content elements/160_contentelement/001_icon_enable; type=boolean; label=Enable Icon
enable = 0
# cat=bootstrap package: content elements/160_contentelement/002_icon_height; type=string; label=Icon Height
height = 32
# cat=bootstrap package: content elements/160_contentelement/003_icon_width; type=string; label=Icon Width
width = 32c
}
title {
# cat=bootstrap package: content elements/160_contentelement/004_title_crop; type=string; label=Crop Title
crop = 100
}
subtitle {
# cat=bootstrap package: content elements/160_contentelement/005_subtitle_crop; type=string; label=Crop Subtitle
crop = 100
}
abstract {
# cat=bootstrap package: content elements/160_contentelement/006_abstract_crop; type=string; label=Crop Abstract
crop = 250
}
}
texticon {
icon {
default {
# cat=bootstrap package: content elements/170_contentelement/001_default_icon_height; type=string; label=Default Icon Height
height = 32
# cat=bootstrap package: content elements/170_contentelement/002_default_icon_width; type=string; label=Default Icon Width
width = 32
}
medium {
# cat=bootstrap package: content elements/170_contentelement/003_medium_icon_height; type=string; label=Medium Icon Height
height = 48
# cat=bootstrap package: content elements/170_contentelement/004_medium_icon_width; type=string; label=Medium Icon Width
width = 48
}
large {
# cat=bootstrap package: content elements/170_contentelement/005_large_icon_height; type=string; label=Large Icon Height
height = 64
# cat=bootstrap package: content elements/170_contentelement/006_large_icon_width; type=string; label=Large Icon Width
width = 64
}
awesome {
# cat=bootstrap package: content elements/170_contentelement/007_awesome_icon_height; type=string; label=Awesome Icon Height
height = 80
# cat=bootstrap package: content elements/170_contentelement/008_awesome_icon_width; type=string; label=Awesome Icon Width
width = 80
}
}
}
timeline {
date {
# cat=bootstrap package: content elements/180_contentelement/001_date_format; type=string; label=Date Format
format = %B %e, %Y - %H:%M
}
}
uploads {
preview {
# cat=bootstrap package: content elements/190_contentelement/001_preview_height; type=string; label=Preview Height
height = 100c
# cat=bootstrap package: content elements/190_contentelement/001_preview_width; type=string; label=Preview Width
width = 100c
}
}
}
@@ -0,0 +1,59 @@
################
#### HELPER ####
################
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Helper/ContentElement.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Helper/DynamicContent.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Helper/ParseFunc.typoscript'
#############################################################
#### CONTENT ELEMENT RENDERING ####
#### Manual inclusion to keep control over loading order ####
#############################################################
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Audio.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Bullets.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Csv.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Div.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Header.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Html.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Image.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/List.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Media.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuAbstract.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCategorizedContent.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCategorizedPages.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuPages.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSubpages.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuRecentlyUpdated.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuRelatedPages.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSection.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSectionPages.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSitemap.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSitemapPages.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Quote.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Shortcut.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/SocialLinks.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Table.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Text.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textcolumn.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textteaser.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textpic.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textmedia.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Uploads.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Accordion.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/CardGroup.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Carousel.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/CarouselSmall.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/CarouselFullscreen.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/ExternalMedia.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Gallery.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/IconGroup.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/ListGroup.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Panel.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Tab.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Texticon.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Timeline.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCardDir.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCardList.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuThumbnailDir.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuThumbnailList.typoscript'
@@ -0,0 +1,42 @@
############################
### CUSTOM SUBCATEGORIES ###
############################
# customsubcategory=230=Cookie Consent
############
### PAGE ###
############
page {
theme {
cookieconsent {
# cat=bootstrap package: cookie consent/230/01_enable; type=boolean; label=Enable Cookie Consent: For more information about this solution please head over to https://cookieconsent.insites.com/
enable = 1
# cat=bootstrap package: cookie consent/230/02_layout; type=options[Basic=basic, Basic Close=basic-close, Basic Header=basic-header]; label=Layout
layout = basic
# cat=bootstrap package: cookie consent/230/03_position; type=options[Banner Top=top, Banner Bottom=bottom, Floating Top Left=top-left, Floating Top Right=top-right, Floating Bottom Left=bottom-left, Floating Bottom Right=bottom-right]; label=Position: Position is used to describe where on the screen your popup should display. We also use 'position' to assume the shape of your popup. If you specify 'top' or 'bottom', we assume that a full width 'banner' is required. If however you specify a horizontal direction, we assume that a corner popup is required (which we call 'floating').
position = bottom
# cat=bootstrap package: cookie consent/230/04_static; type=boolean; label=Static Position: The popup uses position fixed to stay in one place on the screen despite any scroll bars. This option makes the popup position static so it displays at the top of the page. A height animation has also been added by default so the popup doesn’t make the page jump, but gradually grows and fades in.
static = 0
content {
# cat=bootstrap package: cookie consent/230/05_content_href; type=string; label=Privacy Police: Insert a full Link to the privacy police page or a page uid from your current TYPO3 System.
href =
}
# cat=bootstrap package: cookie consent/230/06_revokable; type=boolean; label=Revokable: If set true, revoke button is displayed every time. If false, revoke button is only displayed for advanced compliance options (opt-in and opt-out) and in countries that require revokable consent. The latter can be disabled by regionalLaw.
revokable = 0
# cat=bootstrap package: cookie consent/230/07_location; type=boolean; label=Location Detection: Location is simply a tool for getting the two letter country code that the user is in.
location = 0
law {
# cat=bootstrap package: cookie consent/230/08_law_countryCode; type=string; label=Country Code: Rather than getting the country code from the location services, you can hard code a particular country into the tool.
countryCode =
# cat=bootstrap package: cookie consent/230/09_law_regionalLaw; type=boolean; label=Regional Law: If false, then we only enable the popup if the country has the cookie law. We ignore all other country specific rules.
regionalLaw = 1
}
# cat=bootstrap package: cookie consent/230/10_type; type=options[Informal=info, Opt-In=opt-in, Opt-Out=opt-out]; label=Compliance: The informal confirmation does not require any further adjustments to your JavaScript. The Opt-In and Opt-Out options are not out-of-the-box solutions, manual adjustments to your software are necessary. For your support we provide the events bk2k.cookie.enable, bk2k.cookie.disable and bk2k.cookie.revoke. These events allow you to let your application react to them and to set or remove cookies accordingly. The cookie that contains the current status is called cookieconsent_status.
type = info
cookie {
# cat=bootstrap package: cookie consent/230/11_expiryDays; type=int; label=Expiry Days: The cookies expire date, specified in days (specify -1 for no expiry)
expiryDays = 365
}
}
}
}
@@ -0,0 +1,11 @@
########################
#### COOKIE CONSENT ####
########################
[{$page.theme.cookieconsent.enable} == 1]
page {
includeJSFooterlibs {
contrib_cookieconsent = EXT:bootstrap_package/Resources/Public/Contrib/cookieconsent/cookieconsent.min.js
bootstrap_cookieconsent = EXT:bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.cookieconsent.min.js
}
}
[end]
@@ -0,0 +1,229 @@
###############################
### RESPONSIVE IMAGE CONFIG ###
###############################
lib.contentElement {
settings {
responsiveimages {
container {
container_2_columns {
201 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
202 {
multiplier {
default = 0.5
xlarge = 0.5
large = 0.5
medium = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
}
container_2_columns_right {
201 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
medium = 0.33
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
202 {
multiplier {
default = 0.75
xlarge = 0.75
large = 0.75
medium = 0.66
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
}
container_2_columns_left {
201 {
multiplier {
default = 0.75
xlarge = 0.75
large = 0.75
medium = 0.66
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
202 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
medium = 0.33
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
}
container_3_columns {
201 {
multiplier {
default = 0.33
xlarge = 0.33
large = 0.33
medium = 0.33
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
202 {
multiplier {
default = 0.33
xlarge = 0.33
large = 0.33
medium = 0.33
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
203 {
multiplier {
default = 0.33
xlarge = 0.33
large = 0.33
medium = 0.33
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
}
container_4_columns {
201 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
medium = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
202 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
medium = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
203 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
medium = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
204 {
multiplier {
default = 0.25
xlarge = 0.25
large = 0.25
medium = 0.5
}
gutters {
default = 40
xlarge = 40
large = 40
medium = 40
}
}
}
}
}
}
}
###############################
### RESPONSIVE IMAGE CONFIG ###
###############################
lib.contentElement {
dataProcessing {
1628591788 = BK2K\BootstrapPackage\DataProcessing\ContainerContextProcessor
}
}
########################
### CONTAINER CONFIG ###
########################
lib.contentContainer < lib.contentElement
lib.contentContainer {
templateName = Container
dataProcessing {
1628519620 = B13\Container\DataProcessing\ContainerProcessor
}
}
tt_content.container_1_columns < lib.contentContainer
tt_content.container_2_columns < lib.contentContainer
tt_content.container_2_columns_right < lib.contentContainer
tt_content.container_2_columns_left < lib.contentContainer
tt_content.container_3_columns < lib.contentContainer
tt_content.container_4_columns < lib.contentContainer
@@ -0,0 +1,6 @@
########################
#### FRONTEND LOGIN ####
########################
styles.content.loginform {
templateFile = EXT:bootstrap_package/Resources/Private/Templates/Felogin/FrontendLogin.html
}
@@ -0,0 +1,19 @@
########################
#### FRONTEND LOGIN ####
########################
plugin.tx_felogin_pi1 {
wrapContentInBaseClass = 0
welcomeMessage_stdWrap.wrap = <p>|</p>
logoutMessage_stdWrap.wrap = <p>|</p>
errorMessage_stdWrap.wrap = <p class="text-danger">|</p>
successMessage_stdWrap.wrap = <p class="text-success">|</p>
cookieWarning_stdWrap.wrap = <p class="text-warning">|</p>
forgotMessage_stdWrap.wrap = <p>|</p>
forgotErrorMessage_stdWrap.wrap = <p class="text-danger">|</p>
forgotResetMessageEmailSentMessage_stdWrap.wrap = <p class="text-success">|</p>
changePasswordNotValidMessage_stdWrap.wrap = <p class="text-danger">|</p>
changePasswordTooShortMessage_stdWrap.wrap = <p class="text-danger">|</p>
changePasswordNotEqualMessage_stdWrap.wrap = <p class="text-danger">|</p>
changePasswordMessage_stdWrap.wrap = <p>|</p>
changePasswordDoneMessage_stdWrap.wrap = <p class="text-success">|</p>
}
@@ -0,0 +1,3 @@
########################
#### FORM FRAMEWORK ####
########################
@@ -0,0 +1,5 @@
########################
#### FORM FRAMEWORK ####
########################
@import 'EXT:form/Configuration/TypoScript/setup.typoscript'
@@ -0,0 +1,5 @@
########################
#### INDEXED SEARCH ####
########################
@import 'EXT:indexed_search/Configuration/TypoScript/constants.typoscript'
@@ -0,0 +1,22 @@
########################
#### INDEXED SEARCH ####
########################
@import 'EXT:indexed_search/Configuration/TypoScript/setup.typoscript'
plugin.tx_indexedsearch {
view {
templateRootPaths {
20 = EXT:bootstrap_package/Resources/Private/Templates/IndexedSearch/
21 = {$plugin.bootstrap_package.view.templateRootPath}IndexedSearch/
}
partialRootPaths {
20 = EXT:bootstrap_package/Resources/Private/Partials/IndexedSearch/
21 = {$plugin.bootstrap_package.view.partialRootPath}IndexedSearch/
}
layoutRootPaths {
20 = EXT:bootstrap_package/Resources/Private/Layouts/IndexedSearch/
21 = {$plugin.bootstrap_package.view.layoutRootPath}IndexedSearch/
}
}
}
@@ -0,0 +1,5 @@
#############
#### SEO ####
#############
@import 'EXT:seo/Configuration/TypoScript/XmlSitemap/constants.typoscript'
@@ -0,0 +1,22 @@
#############
#### SEO ####
#############
@import 'EXT:seo/Configuration/TypoScript/XmlSitemap/setup.typoscript'
plugin.tx_seo {
view {
templateRootPaths {
20 = EXT:bootstrap_package/Resources/Private/Templates/Seo/
21 = {$plugin.bootstrap_package.view.templateRootPath}Seo/
}
partialRootPaths {
20 = EXT:bootstrap_package/Resources/Private/Partials/Seo/
21 = {$plugin.bootstrap_package.view.partialRootPath}Seo/
}
layoutRootPaths {
20 = EXT:bootstrap_package/Resources/Private/Layouts/Seo/
21 = {$plugin.bootstrap_package.view.layoutRootPath}Seo/
}
}
}
@@ -0,0 +1,54 @@
######################
### TEMPLATE BLOCK ###
######################
#
# TypoScript Example:
# ---------------
#
# 10 < lib.block
# 10.templateName = MyBlock
#
#
# Fluid Example:
# ---------------
#
# <f:cObject typoscriptObjectPath="lib.block" data="{template: 'MyBlock'}" />
#
######################
lib.block = FLUIDTEMPLATE
lib.block {
################
### TEMPLATE ###
################
templateName = Default
templateName {
override {
field = template
}
}
templateRootPaths {
0 = EXT:bootstrap_package/Resources/Private/Templates/Blocks/
10 = {$plugin.bootstrap_package_blocks.view.templateRootPath}
}
partialRootPaths {
0 = EXT:bootstrap_package/Resources/Private/Partials/Blocks/
10 = {$plugin.bootstrap_package_blocks.view.partialRootPath}
}
layoutRootPaths {
0 = EXT:bootstrap_package/Resources/Private/Layouts/Blocks/
10 = {$plugin.bootstrap_package_blocks.view.layoutRootPath}
}
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
1 = BK2K\BootstrapPackage\DataProcessing\ConstantsProcessor
1 {
as = theme
key = page.theme
}
}
}
@@ -0,0 +1,42 @@
####################
#### PAGE CLASS ####
####################
lib.page.class = COA
lib.page.class {
// Page alias or id as fallback
10 = TEXT
10 {
field = alias // uid
noTrimWrap = |page-||
}
// Current level of the page within the tree structure
20 = TEXT
20 {
data = level:1
noTrimWrap = | pagelevel-||
}
// Language
30 = TEXT
30 {
data = siteLanguage:languageId
noTrimWrap = | language-||
}
// Backend layout
40 = TEXT
40 {
data = pagelayout
replacement.10 {
search = pagets__
replace =
}
ifEmpty = default
noTrimWrap = | backendlayout-||
}
// Layout
50 = TEXT
50 {
field = layout
noTrimWrap = | layout-||
ifEmpty = default
}
}
@@ -0,0 +1,316 @@
############################
### CUSTOM SUBCATEGORIES ###
############################
# customsubcategory=100=Page Template
# customsubcategory=110=Logo
# customsubcategory=111=Favicon
# customsubcategory=120=Meta Settings
# customsubcategory=150=Config
# customsubcategory=151=Navigation
# customsubcategory=152=Subnavigation
# customsubcategory=160=Theme
# customsubcategory=161=Font
# customsubcategory=162=Breadcrumb
# customsubcategory=165=Social Media
# customsubcategory=167=Meta
# customsubcategory=168=Language
# customsubcategory=169=Copyright
# customsubcategory=180=Tracking
# customsubcategory=190=Bootstrap Package Settings
# customsubcategory=200=Extension Overrides
# customsubcategory=201=Blocks
######################
#### DEPENDENCIES ####
######################
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/constants.typoscript'
############
### PAGE ###
############
page {
logo {
# cat=bootstrap package: logo/110/100; type=string; label=Logo: Leave blank to use website title from template instead
file = EXT:bootstrap_package/Resources/Public/Images/BootstrapPackage.svg
# cat=bootstrap package: logo/110/110; type=string; label=Logo Inverted: Leave blank to use website title from template instead
fileInverted = EXT:bootstrap_package/Resources/Public/Images/BootstrapPackageInverted.svg
# cat=bootstrap package: logo/110/120; type=int+; label=Height: The image will not be resized!
height = 52
# cat=bootstrap package: logo/110/130; type=int+; label=Width: The image will not be resized!
width = 180
# cat=bootstrap package: logo/110/140; type=string; label=Alternative text: Text of the alt attribute of the logo image (default: "<website title> logo")
alt =
# cat=bootstrap package: logo/110/150; type=string; label=Link title: Title of the link attribute of the logo image
linktitle =
}
favicon {
# cat=bootstrap package: logo/111/100; type=string; label=Favicon
file = EXT:bootstrap_package/Resources/Public/Icons/favicon.ico
}
theme {
googleFont {
# cat=bootstrap package: google font/161/1_enable; type=boolean; label=Enable
enable = 1
# cat=bootstrap package: google font/161/2_font; type=options[Lora=Lora, Merriweather=Merriweather, Nunito=Nunito, Raleway=Raleway, Roboto=Roboto, Source Sans Pro=Source Sans Pro, Quattrocento=Quattrocento, Ubuntu=Ubuntu]; label=Font
font = Source Sans Pro
# cat=bootstrap package: google font/161/3_weight; type=string; label=Font Weights: Comma separated list of font weights
weight = 300,400,700
}
navigation {
# cat=bootstrap package: navigation/151/100; type=options[Default=default, Default Transition=default-transition, Inverse=inverse, Inverse Transition=inverse-transition]; label=Navigation Style
style = default
# cat=bootstrap package: navigation/151/101; type=options[Default=, Fixed Top=top]; label=Navigation Type
type =
icon {
# cat=bootstrap package: navigation/151/102; type=boolean; label=Navigation Icon Enable
enable = 1
# cat=bootstrap package: navigation/151/103; type=int+; label=Navigation Icon Width
width = 20
# cat=bootstrap package: navigation/151/104; type=int+; label=Navigation Icon Height
height = 20
}
dropdown {
icon {
# cat=bootstrap package: navigation/151/105; type=boolean; label=Dropdown Icon Enable
enable = 1
# cat=bootstrap package: navigation/151/106; type=int+; label=Dropdown Icon Width
width = 16
# cat=bootstrap package: navigation/151/107; type=int+; label=Dropdown Icon Height
height = 16
}
}
}
subnavigation {
icon {
# cat=bootstrap package: navigation/152/108; type=boolean; label=SubNavigation Icon Enable
enable = 1
# cat=bootstrap package: navigation/152/109; type=int+; label=SubNavigation Icon Width
width = 16
# cat=bootstrap package: navigation/152/110; type=int+; label=SubNavigation Icon Width
height = 16
}
}
breadcrumb {
# cat=bootstrap package: navigation/162/breadcrumb_enable; type=boolean; label=Breadcrumb: Enable to display the breadcrumb
enable = 1
# cat=bootstrap package: navigation/162/breadcrumb_enableLevel; type=int+; label=Breadcrumb Enable Level: Enable breadcrumb menu is greater or equal this value
enableLevel = 2
icon {
# cat=bootstrap package: navigation/162/breadcrumb_icon_enable; type=boolean; label=Breadcrumb Icon: Enable navigation icons in the breadcrumb
enable = 0
# cat=bootstrap package: navigation/162/breadcrumb_icon_width; type=int+; label=Breadcrumb Icon Width
width = 16
# cat=bootstrap package: navigation/162/breadcrumb_icon_height; type=int+; label=Breadcrumb Icon Height
height = 16
}
}
meta {
# cat=bootstrap package: navigation/167/meta_enable; type=boolean; label=MetaSection: Enable to display the MetaSection at bottom
enable = 1
# cat=bootstrap package: navigation/167/meta_navigationValue; type=string; label=Meta Navigation Values: Comma separated list of page uids
navigationValue =
# cat=bootstrap package: navigation/167/meta_navigationType; type=options[List=list, Directory=directory]; label=Meta Navigation Type
navigationType = list
# cat=bootstrap package: navigation/167/meta_includeNotInMenu; type=boolean; label=Meta Navigation include items not in menu
includeNotInMenu = 1
}
language {
# cat=bootstrap package: language/168/language_enable; type=boolean; label=LanguageSection: Enable to display the LanguageSection at bottom
enable = 1
# cat=bootstrap package: language/168/language_languageValue; type=string; label=Language Navigation Values: Comma separated list of language uids or set to 'auto' to load all enabled system languages
languageValue = auto
}
socialmedia {
# cat=bootstrap package: social media/165/00_enable; type=boolean; label=Social Media: Enable to display the social media links
enable = 1
channels {
facebook {
label = Facebook
# cat=bootstrap package: social media/165/01_facebook_url; type=string; label=Facebook: Insert the full account url
url =
}
twitter {
label = Twitter
# cat=bootstrap package: social media/165/02_twitter_url; type=string; label=Twitter: Insert the full account url
url =
}
instagram {
label = Instagram
# cat=bootstrap package: social media/165/03_instagram_url; type=string; label=Instagram: Insert the full account url
url =
}
github {
label = GitHub
# cat=bootstrap package: social media/165/04_googleplus_url; type=string; label=GitHub: Insert the full account url
url =
}
googleplus {
label = Google+
# cat=bootstrap package: social media/165/04_googleplus_url; type=string; label=Google+: Insert the full account url
url =
}
linkedin {
label = LinkedIn
# cat=bootstrap package: social media/165/05_linkedin_url; type=string; label=LinkedIn: Insert the full account url
url =
}
xing {
label = Xing
# cat=bootstrap package: social media/165/06_xing_url; type=string; label=Xing: Insert the full account url
url =
}
youtube {
label = YouTube
# cat=bootstrap package: social media/165/07_youtube_url; type=string; label=YouTube: Insert the full account url
url =
}
vk {
label = VK
# cat=bootstrap package: social media/165/08_vk_url; type=string; label=VK: Insert the full account url
url =
}
vimeo {
label = Vimeo
# cat=bootstrap package: social media/165/09_vimeo_url; type=string; label=Vimeo: Insert the full account url
url =
}
rss {
label = RSS
# cat=bootstrap package: social media/165/10_rss_url; type=string; label=RSS: Insert the full url
url =
}
}
}
copyright {
# cat=bootstrap package: copyright/169/120; type=boolean; label=Copyright: Enable to display the copyright
enable = 1
# cat=bootstrap package: copyright/169/121; type=string; label=Copyright Text
text = Running with <a href="http://www.typo3.org" rel="noopener" target="_blank">TYPO3</a> and <a href="https://www.bootstrap-package.com" rel="noopener" target="_blank">Bootstrap Package</a>.
}
}
fluidtemplate {
# cat=bootstrap package: templates/100/100; type=string; label=Layout Root Path: Path to layouts
layoutRootPath = EXT:bootstrap_package/Resources/Private/Layouts/Page/
# cat=bootstrap package: templates/100/110; type=string; label=Partial Root Path: Path to partials
partialRootPath = EXT:bootstrap_package/Resources/Private/Partials/Page/
# cat=bootstrap package: templates/100/120; type=string; label=Template Root Path: Path to templates
templateRootPath = EXT:bootstrap_package/Resources/Private/Templates/Page/
}
meta {
# cat=bootstrap package: meta data/120/100; type=string; label=viewport
viewport = width=device-width, initial-scale=1, minimum-scale=1
# cat=bootstrap package: meta data/120/110; type=string; label=robots
robots = index,follow
# cat=bootstrap package: meta data/120/120; type=string; label=apple-mobile-web-app-capable
apple-mobile-web-app-capable = no
# cat=bootstrap package: meta data/120/130; type=string; label=compatible
compatible = IE=edge
# cat=bootstrap package: meta data/120/140; type=string; label=google
google = notranslate
# cat=bootstrap package: meta data/120/150; type=string; label=google-site-verification
google-site-verification =
}
tracking {
google {
# cat=bootstrap package: tracking/180/100; type=string; label=Google Analytics: Tracking-ID
trackingID =
}
}
}
##############
### CONFIG ###
##############
config {
# cat=bootstrap package: config/150/110; type=boolean; label=No Cache
no_cache = 0
# cat=bootstrap package: config/150/120; type=options[Do not remove=0,Remove=1,Move to external file=external]; label=Remove default JavaScript
removeDefaultJS = 0
# cat=bootstrap package: config/150/130; type=boolean; label=Compress JavaScript
compressJs = 1
# cat=bootstrap package: config/150/140; type=boolean; label=Compress CSS
compressCss = 1
# cat=bootstrap package: config/150/150; type=boolean; label=Concatenate JavaScript
concatenateJs = 1
# cat=bootstrap package: config/150/160; type=boolean; label=Concatenate CSS
concatenateCss = 1
# cat=bootstrap package: config/150/170; type=boolean; label=Admin Panel
admPanel = 1
# cat=bootstrap package: config/150/180; type=options[None=,All=all,Cached=cached,Output=output]; label=Prefix local Anchors: See [http://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Config/Index.html#prefixlocalanchors] for explanation.
prefixLocalAnchors = all
# cat=bootstrap package: config/150/190; type=string; label=Header Comment
headerComment = Based on the TYPO3 Bootstrap Package by Benjamin Kott - https://www.bootstrap-package.com/
# cat=bootstrap package: config/150/210; type=boolean; label=Send cache headers: Allow appropriate caching by transparent proxies and browser clients
sendCacheHeaders = 1
}
#########################
### BOOTSTRAP PACKAGE ###
#########################
plugin.bootstrap_package {
settings {
# cat=bootstrap package: css parser/190/100; type=boolean; label=Override Parser Variables: If enabled the variables defined in your SCSS files will be overridden with the ones defined as TypoScript Constants.
overrideParserVariables = 1
# cat=bootstrap package: css parser/190/110; type=boolean; label=CSS source mapping: Create a CSS source map useful to debug CSS in browser developer tools. Note: CSS compression will be disabled.
cssSourceMapping = 0
}
}
#################################
### BOOTSTRAP PACKAGE BLOCKS ####
#################################
plugin.bootstrap_package_blocks {
view {
# cat=bootstrap package: blocks/201/layoutRootPath; type=string; label=Layout Root Path: Path to layouts
layoutRootPath = EXT:bootstrap_package/Resources/Private/Layouts/Blocks/
# cat=bootstrap package: blocks/201/partialRootPath; type=string; label=Partial Root Path: Path to partials
partialRootPath = EXT:bootstrap_package/Resources/Private/Partials/Blocks/
# cat=bootstrap package: blocks/201/templateRootPath; type=string; label=Template Root Path: Path to templates
templateRootPath = EXT:bootstrap_package/Resources/Private/Templates/Blocks/
}
}
####################################
### BOOTSTRAP PACKAGE EXTENSIONS ###
####################################
plugin.bootstrap_package {
view {
# cat=bootstrap package: templates/200/layoutRootPath; type=string; label=Layout Root Path: Path to layouts
layoutRootPath = EXT:bootstrap_package/Resources/Private/Layouts/
# cat=bootstrap package: templates/200/partialRootPath; type=string; label=Partial Root Path: Path to partials
partialRootPath = EXT:bootstrap_package/Resources/Private/Partials/
# cat=bootstrap package: templates/200/templateRootPath; type=string; label=Template Root Path: Path to templates
templateRootPath = EXT:bootstrap_package/Resources/Private/Templates/
}
}
####################
#### COMPONENTS ####
####################
@import 'EXT:bootstrap_package/Configuration/TypoScript/CookieConsent/constants.typoscript'
#############################################################
#### EXTENSIONS ####
#### Manual inclusion to keep control over loading order ####
#############################################################
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:bootstrap_package/Configuration/TypoScript/Extension/Felogin/constants.typoscript" condition="extension.isLoaded('felogin') == 1">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:bootstrap_package/Configuration/TypoScript/Extension/Form/constants.typoscript" condition="extension.isLoaded('form') == 1">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:bootstrap_package/Configuration/TypoScript/Extension/IndexedSearch/constants.typoscript" condition="extension.isLoaded('indexed_search') == 1">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:bootstrap_package/Configuration/TypoScript/Extension/Seo/constants.typoscript" condition="extension.isLoaded('seo') == 1">
###################
#### FRAMEWORK ####
###################
@import 'EXT:bootstrap_package/Configuration/TypoScript/Bootstrap5/constants.typoscript'
@@ -0,0 +1,478 @@
######################
#### DEPENDENCIES ####
######################
@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/setup.typoscript'
################
#### HELPER ####
################
@import 'EXT:bootstrap_package/Configuration/TypoScript/Helper/Block.typoscript'
@import 'EXT:bootstrap_package/Configuration/TypoScript/Helper/PageClass.typoscript'
#############################################################
#### EXTENSIONS ####
#### Manual inclusion to keep control over loading order ####
#############################################################
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:bootstrap_package/Configuration/TypoScript/Extension/Felogin/setup.typoscript" condition="extension.isLoaded('felogin') == 1">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:bootstrap_package/Configuration/TypoScript/Extension/Form/setup.typoscript" condition="extension.isLoaded('form') == 1">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:bootstrap_package/Configuration/TypoScript/Extension/IndexedSearch/setup.typoscript" condition="extension.isLoaded('indexed_search') == 1">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:bootstrap_package/Configuration/TypoScript/Extension/Seo/setup.typoscript" condition="extension.isLoaded('seo') == 1">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:bootstrap_package/Configuration/TypoScript/Extension/Container/setup.typoscript" condition="extension.isLoaded('container') == 1">
###################
#### FRAMEWORK ####
###################
@import 'EXT:bootstrap_package/Configuration/TypoScript/Bootstrap5/setup.typoscript'
####################################
#### BOOTSTRAP PACKAGE SETTINGS ####
####################################
plugin.tx_bootstrappackage {
settings {
overrideParserVariables = {$plugin.bootstrap_package.settings.overrideParserVariables}
cssSourceMapping = {$plugin.bootstrap_package.settings.cssSourceMapping}
}
}
##############
#### PAGE ####
##############
page = PAGE
page {
typeNum = 0
shortcutIcon = {$page.favicon.file}
bodyTagCObject = COA
bodyTagCObject {
10 = TEXT
10.data = TSFE:id
10.noTrimWrap = | id="p|"|
20 =< lib.page.class
20.stdWrap.noTrimWrap = | class="|"|
wrap = <body|>
}
headerData {
// Flip ahead browsing for IE10/11
// http://msdn.microsoft.com/en-us/library/ie/jj883726(v=vs.85).aspx
10 = HMENU
10 {
special = browse
special {
items = prev|next
}
1 = TMENU
1.NO {
allWrap = <link rel="prev" href="|"> |*| <link rel="next" href="|">
doNotLinkIt = 1
stdWrap {
typolink {
parameter.data = field:uid
returnLast = url
}
}
}
}
}
10 = FLUIDTEMPLATE
10 {
# Template names will be generated automatically by converting the applied
# backend_layout, there is no explicit mapping necessary anymore.
#
# BackendLayout Key
# subnavigation_right_2_columns -> SubnavigationRight2Columns.html
#
# Backend Record
# uid: 1 -> 1.html
#
# Database Entry
# value: -1 -> None.html
# value: pagets__subnavigation_right_2_columns -> SubnavigationRight2Columns.html
templateName = TEXT
templateName {
cObject = TEXT
cObject {
data = pagelayout
required = 1
case = uppercamelcase
split {
token = pagets__
cObjNum = 1
1.current = 1
}
}
ifEmpty = Default
}
templateRootPaths {
0 = EXT:bootstrap_package/Resources/Private/Templates/Page/
1 = {$page.fluidtemplate.templateRootPath}
}
partialRootPaths {
0 = EXT:bootstrap_package/Resources/Private/Partials/Page/
1 = {$page.fluidtemplate.partialRootPath}
}
layoutRootPaths {
0 = EXT:bootstrap_package/Resources/Private/Layouts/Page/
1 = {$page.fluidtemplate.layoutRootPath}
}
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
1 = BK2K\BootstrapPackage\DataProcessing\ConstantsProcessor
1 {
as = theme
key = page.theme
}
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
levels = 2
includeSpacer = 1
as = mainnavigation
dataProcessing {
1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor
1628754217 {
iconSet.field = nav_icon_set
iconIdentifier.field = nav_icon_identifier
iconFileFieldName = nav_icon
as = icon
if {
isTrue.stdWrap.cObject = COA
isTrue.stdWrap.cObject {
10 = TEXT
10.value = 1
10.if.isTrue = {$page.theme.navigation.icon.enable}
20 = TEXT
20.value = 1
20.if.isTrue = {$page.theme.navigation.dropdown.icon.enable}
}
}
}
}
}
20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
20 {
entryLevel = 1
levels = 2
expandAll = 0
includeSpacer = 1
as = subnavigation
dataProcessing {
1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor
1628754217 {
iconSet.field = nav_icon_set
iconIdentifier.field = nav_icon_identifier
iconFileFieldName = nav_icon
as = icon
if {
isTrue = {$page.theme.subnavigation.icon.enable}
}
}
}
}
30 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
30 {
special = rootline
special.range = 0|-1
includeNotInMenu = 1
as = breadcrumb
if {
value = {$page.theme.breadcrumb.enableLevel}
value {
insertData = 1
prioriCalc = 1
stdWrap.wrap = |-1
}
isGreaterThan {
data = level
}
}
dataProcessing {
1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor
1628754217 {
iconSet.field = nav_icon_set
iconIdentifier.field = nav_icon_identifier
iconFileFieldName = nav_icon
as = icon
}
}
}
40 = TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor
40 {
languages = {$page.theme.language.languageValue}
as = languagenavigation
}
50 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
50 {
special = {$page.theme.meta.navigationType}
special.value = {$page.theme.meta.navigationValue}
includeNotInMenu = {$page.theme.meta.includeNotInMenu}
as = metanavigation
if {
isTrue = {$page.theme.meta.navigationValue}
}
}
1553883874 = BK2K\BootstrapPackage\DataProcessing\StaticFilesProcessor
1553883874 {
files {
normal = {$page.logo.file}
inverted = {$page.logo.fileInverted}
}
as = logo
}
}
################
### SETTINGS ###
################
settings {
logo {
height = {$page.logo.height}
width = {$page.logo.width}
linktitle = {$page.logo.linktitle}
}
}
#################
### VARIABLES ###
#################
variables {
pageTitle = TEXT
pageTitle.data = page:title
siteTitle = TEXT
siteTitle.data = siteLanguage:websiteTitle//site:websiteTitle//site:identifier
rootPage = TEXT
rootPage.data = leveluid:0
pagelayout = TEXT
pagelayout {
data = pagelayout
replacement.10 {
search = pagets__
replace =
}
ifEmpty = default
}
logoAlt = COA
logoAlt {
10 = TEXT
10 {
data = siteLanguage:websiteTitle//site:websiteTitle//site:identifier
noTrimWrap = || logo|
if.isFalse = {$page.logo.alt}
}
20 = TEXT
20 {
value = {$page.logo.alt}
if.isTrue = {$page.logo.alt}
}
}
# BreadcrumbExtendedValue should be used to display the title of a
# single record. For example the title of a news record.
breadcrumbExtendedValue = COA
breadcrumbExtendedValue {
}
}
stdWrap.replacement {
1 {
search = http://###BACKEND_URL###/
replace.typolink {
parameter = typo3/
returnLast = url
}
}
2 {
search = ###FRONTEND_URL###
replace.typolink {
parameter.data = leveluid:0
returnLast = url
}
}
3 {
search = ###CURRENTYEAR###
replace {
data = date:U
strftime = %Y
}
}
4 {
search = ###SPACE###
replace {
char = 32
}
}
}
}
meta {
viewport = {$page.meta.viewport}
robots = {$page.meta.robots}
apple-mobile-web-app-capable = {$page.meta.apple-mobile-web-app-capable}
X-UA-Compatible = {$page.meta.compatible}
X-UA-Compatible {
attribute = http-equiv
}
# Google
google = {$page.meta.google}
google-site-verification = {$page.meta.google-site-verification}
}
includeCSSLibs {
googlewebfont = https://fonts.googleapis.com/css?display=swap&family={$page.theme.googleFont.font}:{$page.theme.googleFont.weight}
googlewebfont {
external = 1
disableCompression = 1
excludeFromConcatenation = 1
if {
isTrue = {$page.theme.googleFont.enable}
}
}
bootstrappackageicon = EXT:bootstrap_package/Resources/Public/Fonts/bootstrappackageicon.min.css
}
includeJSLibs {
modernizr = EXT:bootstrap_package/Resources/Public/Contrib/modernizr/modernizr.min.js
modernizr.forceOnTop = 1
modernizr.async = 1
}
includeJSFooterlibs {
#### Contrib
jquery = EXT:bootstrap_package/Resources/Public/Contrib/jquery/jquery.min.js
jquery.forceOnTop = 1
photoswipe_core = EXT:bootstrap_package/Resources/Public/Contrib/photoswipe/photoswipe.min.js
photoswipe_ui = EXT:bootstrap_package/Resources/Public/Contrib/photoswipe/photoswipe-ui-default.min.js
#### Custom Modules
bootstrap_accordion = EXT:bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.accordion.min.js
bootstrap_popover = EXT:bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.popover.min.js
bootstrap_stickyheader = EXT:bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.stickyheader.min.js
bootstrap_smoothscroll = EXT:bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.smoothscroll.min.js
bootstrap_lightbox = EXT:bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.lightbox.min.js
bootstrap_navbar = EXT:bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.navbar.min.js
}
}
##########################
#### GOOGLE ANALYTICS ####
##########################
page {
10.stdWrap.replacement {
99 {
search = ###GoogleAnalyticsStatus###
replace {
cObject < lib.block
cObject.templateName = GoogleAnalyticsStatus
}
}
}
jsInline {
99 = COA
99 {
if {
isTrue = {$page.tracking.google.trackingID}
}
10 = TEXT
10.value (
var gaProperty = '{$page.tracking.google.trackingID}';
var disableStr = 'ga-disable-' + gaProperty;
if (document.cookie.indexOf(disableStr + '=true') > -1) {
window[disableStr] = true;
}
function googleAnalyticsToggle(event) {
if (document.cookie.indexOf(disableStr + '=true') > -1) {
event.target.innerHTML = event.target.getAttribute('data-label-disable');
googleAnalyticsOptIn();
} else {
event.target.innerHTML = event.target.getAttribute('data-label-enable');
googleAnalyticsOptOut();
}
}
function googleAnalyticsOptOut() {
document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
window[disableStr] = true;
}
function googleAnalyticsOptIn() {
document.cookie = disableStr + '=; expires=Thu, 01 Jan 1970 00:00:01 UTC; path=/';
window[disableStr] = false;
}
document.addEventListener('DOMContentLoaded', function() {
var matches = document.querySelectorAll('[data-action="googleAnalyticsToggle"]');
for (i=0; i<matches.length; i++) {
if (document.cookie.indexOf(disableStr + '=true') > -1) {
matches[i].innerHTML = matches[i].getAttribute('data-label-enable');
} else {
matches[i].innerHTML = matches[i].getAttribute('data-label-disable');
}
matches[i].onclick = function(event) {
event.preventDefault();
event.stopPropagation();
googleAnalyticsToggle(event);
}
}
});
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '{$page.tracking.google.trackingID}', 'auto');
ga('set', 'anonymizeIp', true);
)
90 = TEXT
90.value (
ga('send', 'pageview');
)
}
}
}
####################
#### COMPONENTS ####
####################
@import 'EXT:bootstrap_package/Configuration/TypoScript/CookieConsent/setup.typoscript'
################
#### CONFIG ####
################
config {
absRefPrefix = auto
no_cache = {$config.no_cache}
pageTitleFirst = 1
pageTitleSeparator = -
pageTitleSeparator.noTrimWrap = | | |
linkVars = L(int)
prefixLocalAnchors = {$config.prefixLocalAnchors}
doctype = html5
removeDefaultJS = {$config.removeDefaultJS}
admPanel = {$config.admPanel}
debug = 0
sendCacheHeaders = {$config.sendCacheHeaders}
index_enable = 1
index_externals = 1
index_metatags = 1
headerComment = {$config.headerComment}
// Language Settings
sys_language_overlay = 1
sys_language_mode = content_fallback
// Compression and Concatenation of CSS and JS Files
compressJs = {$config.compressJs}
compressCss = {$config.compressCss}
concatenateJs = {$config.concatenateJs}
concatenateCss = {$config.concatenateCss}
}