1 | 1 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,24 @@ |
1 |
+# EditorConfig is awesome: http://EditorConfig.org |
|
2 |
+ |
|
3 |
+# top-most EditorConfig file |
|
4 |
+root = true |
|
5 |
+ |
|
6 |
+# Unix-style newlines with a newline ending every file |
|
7 |
+[*] |
|
8 |
+end_of_line = lf |
|
9 |
+insert_final_newline = true |
|
10 |
+trim_trailing_whitespace = true |
|
11 |
+ |
|
12 |
+[*.{php,twig,yml}] |
|
13 |
+indent_style = space |
|
14 |
+indent_size = 4 |
|
15 |
+ |
|
16 |
+[*.{svg,min.css,min.js}] |
|
17 |
+insert_final_newline = false |
|
18 |
+ |
|
19 |
+[*/src/Resources/contao/**.{css,js,php}] |
|
20 |
+indent_style = tab |
|
21 |
+ |
|
22 |
+[*/src/Resources/contao/**.html5] |
|
23 |
+indent_style = space |
|
24 |
+indent_size = 2 |
|
0 | 25 |
\ No newline at end of file |
... | ... |
@@ -179,8 +179,9 @@ |
179 | 179 |
/** |
180 | 180 |
* Object Fit |
181 | 181 |
*/ |
182 |
-@mixin object-fit($mode: cover) { |
|
182 |
+@mixin object-fit($mode: cover, $position: 50% 50%) { |
|
183 | 183 |
object-fit: $mode; |
184 |
+ object-position: $position; |
|
184 | 185 |
font-family: 'object-fit: #{$mode};'; |
185 | 186 |
display: block; |
186 | 187 |
width: 100%; |
... | ... |
@@ -1556,4 +1556,183 @@ $shadow-color: #fff; |
1556 | 1556 |
} |
1557 | 1557 |
} |
1558 | 1558 |
} |
1559 |
+} |
|
1560 |
+ |
|
1561 |
+/** |
|
1562 |
+ * PHOTO / TEXT COMBI |
|
1563 |
+ */ |
|
1564 |
+.photo-text-wrapper { |
|
1565 |
+ position: relative; |
|
1566 |
+ |
|
1567 |
+ .photo-text-wrapper-background { |
|
1568 |
+ @extend .background-wrapper-background; |
|
1569 |
+ } |
|
1570 |
+ |
|
1571 |
+ &.-valign-center { |
|
1572 |
+ min-height: 100vh; |
|
1573 |
+ display: flex; |
|
1574 |
+ flex-direction: column; |
|
1575 |
+ justify-content: center; |
|
1576 |
+ > .text-wall { |
|
1577 |
+ flex: 0 0 auto; |
|
1578 |
+ width: 100%; |
|
1579 |
+ } |
|
1580 |
+ |
|
1581 |
+ &.-valignTop { |
|
1582 |
+ justify-content: flex-start; |
|
1583 |
+ } |
|
1584 |
+ &.-valignBottom { |
|
1585 |
+ justify-content: flex-end; |
|
1586 |
+ } |
|
1587 |
+ } |
|
1588 |
+ |
|
1589 |
+ .photo-wall { |
|
1590 |
+ position: absolute; |
|
1591 |
+ //margin-left: $gutter-default; |
|
1592 |
+ left: 50%-$gutter-default/2; |
|
1593 |
+ right: 0; |
|
1594 |
+ top: 0; |
|
1595 |
+ height: 100%; |
|
1596 |
+ |
|
1597 |
+ &-content { |
|
1598 |
+ height: 100%; |
|
1599 |
+ overflow: hidden; |
|
1600 |
+ background: 50% 50% no-repeat; |
|
1601 |
+ background-size: cover; |
|
1602 |
+ } |
|
1603 |
+ } |
|
1604 |
+ .text-wall { |
|
1605 |
+ @include centered-1200; |
|
1606 |
+ |
|
1607 |
+ &-content { |
|
1608 |
+ max-width: 50%; |
|
1609 |
+ margin-right: auto; |
|
1610 |
+ -webkit-box-sizing: border-box; |
|
1611 |
+ -moz-box-sizing: border-box; |
|
1612 |
+ box-sizing: border-box; |
|
1613 |
+ padding-right: 75px; |
|
1614 |
+ |
|
1615 |
+ .-bg-dark& { |
|
1616 |
+ &, |
|
1617 |
+ h1,h2,h3,h4,h5,h6 { |
|
1618 |
+ color: $color-text-invert; |
|
1619 |
+ } |
|
1620 |
+ } |
|
1621 |
+ |
|
1622 |
+ &.-padding { |
|
1623 |
+ padding: $gutter-default*2 0; |
|
1624 |
+ } |
|
1625 |
+ &.-medium-padding { |
|
1626 |
+ padding: 50px 0; |
|
1627 |
+ } |
|
1628 |
+ &.-large-padding { |
|
1629 |
+ padding: 100px 0; |
|
1630 |
+ } |
|
1631 |
+ |
|
1632 |
+ &.-padding-top { |
|
1633 |
+ padding: $gutter-default*2 0 0; |
|
1634 |
+ } |
|
1635 |
+ &.-medium-padding-top { |
|
1636 |
+ padding: 50px 0 0; |
|
1637 |
+ } |
|
1638 |
+ &.-large-padding-top { |
|
1639 |
+ padding: 100px 0 0; |
|
1640 |
+ } |
|
1641 |
+ |
|
1642 |
+ &.-padding-bottom { |
|
1643 |
+ padding: 0 0 $gutter-default*2; |
|
1644 |
+ } |
|
1645 |
+ &.-medium-padding-bottom { |
|
1646 |
+ padding: 0 0 50px; |
|
1647 |
+ } |
|
1648 |
+ &.-large-padding-bottom { |
|
1649 |
+ padding: 0 0 100px; |
|
1650 |
+ } |
|
1651 |
+ } |
|
1652 |
+ } |
|
1653 |
+ |
|
1654 |
+ &.-alt-color { |
|
1655 |
+ background-color: $color-bg-secondary; |
|
1656 |
+ |
|
1657 |
+ /*&, |
|
1658 |
+ h1,h2,h3,h4,h5,h6 { |
|
1659 |
+ color: $color-headline-invert; |
|
1660 |
+ }*/ |
|
1661 |
+ } |
|
1662 |
+ |
|
1663 |
+ &.-bg-dark { |
|
1664 |
+ background-color: #000; |
|
1665 |
+ } |
|
1666 |
+ |
|
1667 |
+ &.-text-right { |
|
1668 |
+ .photo-wall { |
|
1669 |
+ margin-left: 0; |
|
1670 |
+ margin-right: $gutter-default; |
|
1671 |
+ left: 0; |
|
1672 |
+ right: 50%-$gutter-default/2; |
|
1673 |
+ } |
|
1674 |
+ |
|
1675 |
+ .text-wall { |
|
1676 |
+ &-content { |
|
1677 |
+ margin-right: 0; |
|
1678 |
+ margin-left: auto; |
|
1679 |
+ padding-right: 0; |
|
1680 |
+ padding-left: 75px; |
|
1681 |
+ } |
|
1682 |
+ } |
|
1683 |
+ } |
|
1684 |
+ |
|
1685 |
+ @media screen and (max-width: 800px) { |
|
1686 |
+ .photo-wall { |
|
1687 |
+ margin-left: 60px; |
|
1688 |
+ } |
|
1689 |
+ |
|
1690 |
+ .text-wall { |
|
1691 |
+ &-content { |
|
1692 |
+ padding-right: 0; |
|
1693 |
+ } |
|
1694 |
+ } |
|
1695 |
+ |
|
1696 |
+ &.-text-right { |
|
1697 |
+ .photo-wall { |
|
1698 |
+ margin-right: 60px; |
|
1699 |
+ } |
|
1700 |
+ |
|
1701 |
+ .text-wall { |
|
1702 |
+ &-content { |
|
1703 |
+ padding-left: 0; |
|
1704 |
+ } |
|
1705 |
+ } |
|
1706 |
+ } |
|
1707 |
+ } |
|
1708 |
+ |
|
1709 |
+ @media screen and (max-width: 599px) { |
|
1710 |
+ .photo-wall { |
|
1711 |
+ position: relative; |
|
1712 |
+ right: auto; |
|
1713 |
+ left: auto; |
|
1714 |
+ top: auto; |
|
1715 |
+ margin: 0 0 15px; |
|
1716 |
+ padding: 15px 15px 0; |
|
1717 |
+ } |
|
1718 |
+ |
|
1719 |
+ .photo-wall-content { |
|
1720 |
+ min-height: 66vw; |
|
1721 |
+ } |
|
1722 |
+ |
|
1723 |
+ .text-wall { |
|
1724 |
+ &-content { |
|
1725 |
+ padding-right: 0; |
|
1726 |
+ max-width: none; |
|
1727 |
+ } |
|
1728 |
+ } |
|
1729 |
+ |
|
1730 |
+ &.-text-right { |
|
1731 |
+ .photo-wall { |
|
1732 |
+ margin-right: 0; |
|
1733 |
+ right: 0; |
|
1734 |
+ } |
|
1735 |
+ } |
|
1736 |
+ } |
|
1737 |
+ |
|
1559 | 1738 |
} |
1560 | 1739 |
\ No newline at end of file |
1561 | 1740 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,65 @@ |
1 |
+<?php |
|
2 |
+$cssClasses = array( |
|
3 |
+ 'feature-wrapper', |
|
4 |
+ 'feature-wrapper_'.$this->id, |
|
5 |
+ $this->class, |
|
6 |
+); |
|
7 |
+if ($this->contentPosition) { |
|
8 |
+ $cssClasses[] = $this->contentPosition; |
|
9 |
+} |
|
10 |
+if ($this->valign) { |
|
11 |
+ $cssClasses[] = $this->valign; |
|
12 |
+} |
|
13 |
+if ($this->valignCenter) { |
|
14 |
+ $cssClasses[] = '-valign-center'; |
|
15 |
+} |
|
16 |
+ |
|
17 |
+$figure = ''; |
|
18 |
+$blnIsVideo = false; |
|
19 |
+if (($file = \FilesModel::findByUuid($this->backgroundImage)) !== null) |
|
20 |
+{ |
|
21 |
+ if (in_array( |
|
22 |
+ $file->extension, |
|
23 |
+ array_map('trim', explode(',', \Config::get('validImageTypes'))) |
|
24 |
+ )) |
|
25 |
+ { |
|
26 |
+ $figure = $this->figure( |
|
27 |
+ $file->uuid, $this->backgroundImageSize, |
|
28 |
+ [ |
|
29 |
+ 'options' => [ |
|
30 |
+ 'attr' => [ |
|
31 |
+ 'class' => 'feature-image', |
|
32 |
+ 'style' => "object-fit: $this->backgroundSize;" . |
|
33 |
+ "object-position: $this->backgroundPosition;" . |
|
34 |
+ "font-family: 'object-fit: $this->backgroundSize';" |
|
35 |
+ ] |
|
36 |
+ ] |
|
37 |
+ ] |
|
38 |
+ ); |
|
39 |
+ } else { |
|
40 |
+ $blnIsVideo = !$blnIsVideo; |
|
41 |
+ } |
|
42 |
+} |
|
43 |
+ |
|
44 |
+ |
|
45 |
+?> |
|
46 |
+ |
|
47 |
+<?php $this->block('content'); ?> |
|
48 |
+<div class="<?php echo implode(' ', $cssClasses) ?> block"<?= $this->cssID ?><?php if ($this->style): ?> style="<?= $this->style ?>"<?php endif; ?>> |
|
49 |
+ |
|
50 |
+ <div class="photo-wall"> |
|
51 |
+ <?php if ($blnIsVideo && $file !== null): ?> |
|
52 |
+ <div class="photo-wall-content"> |
|
53 |
+ <video class="no-mejs" autoplay loop> |
|
54 |
+ <source src="<?php echo TL_FILES_URL . $file->path ?>" type="video/<?php echo $file->extension ?>"> |
|
55 |
+ </video> |
|
56 |
+ </div> |
|
57 |
+ <?php elseif ($figure !== null): ?> |
|
58 |
+ <div class="photo-wall-content"> |
|
59 |
+ <?= $figure ?> |
|
60 |
+ </div> |
|
61 |
+ <?php endif ?> |
|
62 |
+ </div> |
|
63 |
+ |
|
64 |
+ <div class="text-wall"><div class="text-wall-content<?php if ($this->padding): ?> <?= $this->padding ?><?php endif; ?>"> |
|
65 |
+<?php $this->endblock(); ?> |
0 | 66 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,170 @@ |
1 |
+<?php |
|
2 |
+// rsce_boxes_config.php |
|
3 |
+return array( |
|
4 |
+ 'label' => array('Zentrierter Featured-Block Anfang →', 'Erzeugt einen zentrierten Feature-Block (z.B. Weinlinie)'), |
|
5 |
+ 'types' => array('content','module'), |
|
6 |
+ 'standardFields' => array('cssID', 'space'), |
|
7 |
+ 'wrapper' => array( |
|
8 |
+ 'type' => 'start', |
|
9 |
+ ), |
|
10 |
+ 'fields' => array( |
|
11 |
+ 'content_set' => array( |
|
12 |
+ 'label' => array('Inhaltsspalte'), |
|
13 |
+ 'inputType' => 'group', |
|
14 |
+ ), |
|
15 |
+ 'contentPosition' => array( |
|
16 |
+ 'label' => array('Position', 'Legt fest ob der Inhalt links oder rechts vom Bild positioniert ist.'), |
|
17 |
+ 'inputType' => 'select', |
|
18 |
+ 'options' => array( |
|
19 |
+ '' => 'Links', |
|
20 |
+ '-text-right' => 'Rechts', |
|
21 |
+ ), |
|
22 |
+ 'eval' => array('tl_class' => 'w50'), |
|
23 |
+ ), |
|
24 |
+ 'image_set' => array( |
|
25 |
+ 'label' => array('Bildspalte'), |
|
26 |
+ 'inputType' => 'group', |
|
27 |
+ ), |
|
28 |
+ 'backgroundImage' => array( |
|
29 |
+ 'label' => array('Bild oder Video', 'Wählen Sie ein Bild oder eine Videodatei aus.'), |
|
30 |
+ 'inputType' => 'fileTree', |
|
31 |
+ 'eval' => array( |
|
32 |
+ 'tl_class' => 'clr', |
|
33 |
+ 'multiple' => false, |
|
34 |
+ 'fieldType' => 'radio', |
|
35 |
+ 'filesOnly' => true, |
|
36 |
+ 'extensions' => \Config::get('validImageTypes') . ',mp4,webm,ogv,ogg', |
|
37 |
+ 'orderField'=>'orderSRC', |
|
38 |
+// 'isGallery' => true, |
|
39 |
+ ), |
|
40 |
+ ), |
|
41 |
+ 'backgroundImageSize' => array( |
|
42 |
+ 'label' => array('Bildbreite und Bildhöhe', ''), |
|
43 |
+ 'inputType' => 'imageSize', |
|
44 |
+ 'options' => \System::getContainer()->get('contao.image.image_sizes')->getOptionsForUser(BackendUser::getInstance()), |
|
45 |
+ 'reference' => &$GLOBALS['TL_LANG']['MSC'], |
|
46 |
+ 'eval' => array( |
|
47 |
+ 'rgxp' => 'digit', |
|
48 |
+ 'tl_class' => 'w50', |
|
49 |
+ 'includeBlankOption' => true, |
|
50 |
+ ), |
|
51 |
+ ), |
|
52 |
+ 'backgroundSize' => array( |
|
53 |
+ 'label' => array('Bildanpassung', ''), |
|
54 |
+ 'inputType' => 'select', |
|
55 |
+ 'options' => array( |
|
56 |
+ 'cover' => 'Beschnitten', |
|
57 |
+ 'contain' => 'Proportional', |
|
58 |
+ '100% 100%' => 'Verzerrt', |
|
59 |
+ 'auto auto' => 'Originalgröße', |
|
60 |
+ ), |
|
61 |
+ 'eval' => array('tl_class' => 'w50'), |
|
62 |
+ ), |
|
63 |
+ 'backgroundPosition' => array( |
|
64 |
+ 'label' => array('Position', 'Bildausrichtung'), |
|
65 |
+ 'inputType' => 'select', |
|
66 |
+ 'options' => array( |
|
67 |
+ '' => '-', |
|
68 |
+ '0 0' => 'Links | Oben', |
|
69 |
+ '50% 0' => 'Mitte | Oben', |
|
70 |
+ '100% 0' => 'Rechts | Oben', |
|
71 |
+ '0 50%' => 'Links | Mitte', |
|
72 |
+ '50% 50%' => 'Mitte | Mitte', |
|
73 |
+ '100% 50%' => 'Rechts | Mitte', |
|
74 |
+ '0 100%' => 'Links | Unten', |
|
75 |
+ '50% 100%' => 'Mitte | Unten', |
|
76 |
+ '100% 100%' => 'Rechts | Unten', |
|
77 |
+ ), |
|
78 |
+ 'eval' => array('tl_class' => 'w50'), |
|
79 |
+ ), |
|
80 |
+ 'featureLink' => array( |
|
81 |
+ 'label' => array('Featurelink unter Bild', 'Stellt einen prominenten Link unterhalb des Bildes dar.'), |
|
82 |
+ 'inputType' => 'checkbox', |
|
83 |
+ 'eval' => array( |
|
84 |
+ 'tl_class' => 'w50 m12 clr', |
|
85 |
+ ), |
|
86 |
+ ), |
|
87 |
+ 'linkLabel' => array( |
|
88 |
+ 'label' => array('Link-Text', ''), |
|
89 |
+ 'inputType' => 'text', |
|
90 |
+ 'eval' => array('tl_class' => 'w50'), |
|
91 |
+ 'dependsOn' => array( |
|
92 |
+ 'field' => 'featureLink' |
|
93 |
+ ) |
|
94 |
+ ), |
|
95 |
+ 'linkUrl' => array( |
|
96 |
+ 'label' => array('Link-URL', 'Beispiele: {{link_url::seitenalias}} (Alias, ID oder anderer Inserttag), http://example.com'), |
|
97 |
+ 'inputType' => 'url', |
|
98 |
+ 'eval' => array('tl_class' => 'w50'), |
|
99 |
+ 'dependsOn' => array( |
|
100 |
+ 'field' => 'featureLink' |
|
101 |
+ ) |
|
102 |
+ ), |
|
103 |
+ 'linkTitle' => array( |
|
104 |
+ 'label' => array('Link-Titel', 'Wird beim hovern mit der Maus dargestellt.'), |
|
105 |
+ 'inputType' => 'text', |
|
106 |
+ 'eval' => array('tl_class' => 'w50'), |
|
107 |
+ 'dependsOn' => array( |
|
108 |
+ 'field' => 'featureLink' |
|
109 |
+ ) |
|
110 |
+ ), |
|
111 |
+ 'newWindow' => array( |
|
112 |
+ 'label' => $GLOBALS['TL_LANG']['MSC']['target'], |
|
113 |
+ 'inputType' => 'checkbox', |
|
114 |
+ 'eval' => array('tl_class' => 'w50 m12'), |
|
115 |
+ 'dependsOn' => array( |
|
116 |
+ 'field' => 'featureLink' |
|
117 |
+ ) |
|
118 |
+ ), |
|
119 |
+ 'layout_set' => array( |
|
120 |
+ 'label' => array('Layoutoptionen'), |
|
121 |
+ 'inputType' => 'group', |
|
122 |
+ ), |
|
123 |
+ 'padding' => array( |
|
124 |
+ 'label' => array('Innenabstand', 'Es wird Oben und Unten ein Innenabstand angewendet.'), |
|
125 |
+ 'inputType' => 'select', |
|
126 |
+ 'options' => array( |
|
127 |
+ '' => '-', |
|
128 |
+ '-padding' => 'Default', |
|
129 |
+ '-medium-padding' => 'Medium', |
|
130 |
+ '-large-padding' => 'Large', |
|
131 |
+ '-padding-top' => 'Small Top', |
|
132 |
+ '-medium-padding-top' => 'Medium Top', |
|
133 |
+ '-large-padding-top' => 'Large Top', |
|
134 |
+ '-padding-bottom' => 'Small Bottom', |
|
135 |
+ '-medium-padding-bottom' => 'Medium Bottom', |
|
136 |
+ '-large-padding-bottom' => 'Large Bottom', |
|
137 |
+ ), |
|
138 |
+ 'eval' => array( |
|
139 |
+ 'tl_class' => 'w50', |
|
140 |
+ ), |
|
141 |
+ ), |
|
142 |
+ 'valign' => array( |
|
143 |
+ 'label' => array('Vertikale Ausrichtung', 'Vertikale Ausrichtung (nur in Verbindung mit "Mind. Viewport Höhe").'), |
|
144 |
+ 'inputType' => 'select', |
|
145 |
+ 'options' => array( |
|
146 |
+ '' => 'Mitte', |
|
147 |
+ '-valignTop' => 'Oben', |
|
148 |
+ '-valignBottom' => 'Unten', |
|
149 |
+ ), |
|
150 |
+ 'eval' => array('tl_class' => 'w50'), |
|
151 |
+ ), |
|
152 |
+ 'valignCenter' => array( |
|
153 |
+ 'label' => array('Mind. Viewport Höhe', 'Der Inhaltsbereich hat mindestens die Höhe des Viewports. Der Inhalt wird zentriert dargestellt.'), |
|
154 |
+ 'inputType' => 'checkbox', |
|
155 |
+ 'eval' => array( |
|
156 |
+ 'tl_class' => 'w50 m12 clr', |
|
157 |
+ ), |
|
158 |
+ ), |
|
159 |
+ 'spacing' => array( |
|
160 |
+ 'label' => array('Abstand'), |
|
161 |
+ 'inputType' => 'group', |
|
162 |
+ ), |
|
163 |
+ 'es_spacing' => array ( |
|
164 |
+ 'inputType' => 'standardField' |
|
165 |
+ ), |
|
166 |
+ 'es_padding' => array ( |
|
167 |
+ 'inputType' => 'standardField' |
|
168 |
+ ), |
|
169 |
+ ), |
|
170 |
+); |
|
0 | 171 |
\ No newline at end of file |
1 | 172 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,70 @@ |
1 |
+<?php |
|
2 |
+$cssClasses = array( |
|
3 |
+ 'photo-text-wrapper', |
|
4 |
+ 'photo-text-wrapper_'.$this->id, |
|
5 |
+ $this->class, |
|
6 |
+); |
|
7 |
+if ($this->textPosition) { |
|
8 |
+ $cssClasses[] = $this->textPosition; |
|
9 |
+} |
|
10 |
+if ($this->valign) { |
|
11 |
+ $cssClasses[] = $this->valign; |
|
12 |
+} |
|
13 |
+if ($this->valignCenter) { |
|
14 |
+ $cssClasses[] = '-valign-center'; |
|
15 |
+} |
|
16 |
+$imageFiles = array(); |
|
17 |
+$videoFiles = array(); |
|
18 |
+if (is_array($this->backgroundImage)) { |
|
19 |
+ foreach (\FilesModel::findMultipleByUuids($this->backgroundImage) as $file) { |
|
20 |
+ if (in_array( |
|
21 |
+ $file->extension, |
|
22 |
+ array_map('trim', explode(',', \Config::get('validImageTypes'))) |
|
23 |
+ )) { |
|
24 |
+ $imageFiles[] = $file; |
|
25 |
+ } |
|
26 |
+ else { |
|
27 |
+ $videoFiles[] = $file; |
|
28 |
+ } |
|
29 |
+ } |
|
30 |
+} |
|
31 |
+$imgColStyle = ''; |
|
32 |
+if (count($imageFiles) && $image = $this->getImageObject($imageFiles[0]->uuid, $this->backgroundImageSize)) { |
|
33 |
+ $imgColStyle .= 'background-image: url("' . $image->src . '");'; |
|
34 |
+} |
|
35 |
+if ((count($imageFiles) || count($videoFiles)) && $this->backgroundSize) { |
|
36 |
+ $imgColStyle .= 'background-size: ' . $this->backgroundSize . ';'; |
|
37 |
+} |
|
38 |
+if ((count($imageFiles) || count($videoFiles)) && $this->backgroundPosition) { |
|
39 |
+ $imgColStyle .= 'background-position: ' . $this->backgroundPosition . ';'; |
|
40 |
+} |
|
41 |
+ |
|
42 |
+$style = ''; |
|
43 |
+if (!count($videoFiles) && !count($imageFiles)) { |
|
44 |
+ $style .= $imgColStyle; |
|
45 |
+} |
|
46 |
+ |
|
47 |
+?> |
|
48 |
+ |
|
49 |
+<?php $this->block('content'); ?> |
|
50 |
+<div class="<?php echo implode(' ', $cssClasses) ?> block"<?= $this->cssID ?><?php if ($this->style): ?> style="<?= $this->style ?>"<?php endif; ?>> |
|
51 |
+ |
|
52 |
+ <div class="photo-wall"> |
|
53 |
+ <?php if (count($videoFiles)): ?> |
|
54 |
+ <div class="photo-wall-content"> |
|
55 |
+ <video class="no-mejs" autoplay loop <?php if (count($imageFiles) && $image = $this->getImageObject($imageFiles[0]->uuid, $this->backgroundImageSize)): ?> poster="<?php echo $image->src ?>"<?php endif ?>> |
|
56 |
+ <?php foreach ($videoFiles as $video): ?> |
|
57 |
+ <source src="<?php echo TL_FILES_URL . $video->path ?>" type="video/<?php echo $video->extension ?>"> |
|
58 |
+ <?php endforeach ?> |
|
59 |
+ <?php if (count($imageFiles) && $image = $this->getImageObject($imageFiles[0]->uuid, $this->backgroundImageSize)): ?> |
|
60 |
+ <?php $this->insert('picture_default', $image->picture) ?> |
|
61 |
+ <?php endif ?> |
|
62 |
+ </video> |
|
63 |
+ </div> |
|
64 |
+ <?php elseif (count($imageFiles) && $image = $this->getImageObject($imageFiles[0]->uuid, $this->backgroundImageSize)): ?> |
|
65 |
+ <div class="photo-wall-content" style="<?php echo htmlspecialchars($imgColStyle) ?>" data-image-url="<?php echo $image->src ?>"></div> |
|
66 |
+ <?php endif ?> |
|
67 |
+ </div> |
|
68 |
+ |
|
69 |
+ <div class="text-wall"><div class="text-wall-content<?php if ($this->padding): ?> <?= $this->padding ?><?php endif; ?>"> |
|
70 |
+<?php $this->endblock(); ?> |
0 | 71 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,127 @@ |
1 |
+<?php |
|
2 |
+// rsce_boxes_config.php |
|
3 |
+return array( |
|
4 |
+ 'label' => array('Zentrierter Inhaltsbereich mit halbseitigem Bild Start', 'Erzeugt einen zentrierten Inhaltsbereich'), |
|
5 |
+ 'types' => array('content','module'), |
|
6 |
+ 'standardFields' => array('cssID', 'space'), |
|
7 |
+ 'wrapper' => array( |
|
8 |
+ 'type' => 'start', |
|
9 |
+ ), |
|
10 |
+ 'fields' => array( |
|
11 |
+ 'text_set' => array( |
|
12 |
+ 'label' => array('Textspalte'), |
|
13 |
+ 'inputType' => 'group', |
|
14 |
+ ), |
|
15 |
+ 'textPosition' => array( |
|
16 |
+ 'label' => array('Textposition', 'Legt fest ob der Text links oder rechts vom Bild positioniert ist.'), |
|
17 |
+ 'inputType' => 'select', |
|
18 |
+ 'options' => array( |
|
19 |
+ '' => 'Links', |
|
20 |
+ '-text-right' => 'Rechts', |
|
21 |
+ ), |
|
22 |
+ 'eval' => array('tl_class' => 'w50'), |
|
23 |
+ ), |
|
24 |
+ 'image_set' => array( |
|
25 |
+ 'label' => array('Bildspalte'), |
|
26 |
+ 'inputType' => 'group', |
|
27 |
+ ), |
|
28 |
+ 'backgroundImage' => array( |
|
29 |
+ 'label' => array('Bild oder Video', 'Wählen Sie ein Bild oder mehrere Videodateien aus.'), |
|
30 |
+ 'inputType' => 'fileTree', |
|
31 |
+ 'eval' => array( |
|
32 |
+ 'tl_class' => 'clr', |
|
33 |
+ 'multiple' => true, |
|
34 |
+ 'fieldType' => 'checkbox', |
|
35 |
+ 'filesOnly' => true, |
|
36 |
+ 'extensions' => \Config::get('validImageTypes') . ',mp4,webm,ogv,ogg', |
|
37 |
+ 'orderField'=>'orderSRC', |
|
38 |
+// 'isGallery' => true, |
|
39 |
+ ), |
|
40 |
+ ), |
|
41 |
+ 'backgroundImageSize' => array( |
|
42 |
+ 'label' => array('Bildbreite und Bildhöhe', ''), |
|
43 |
+ 'inputType' => 'imageSize', |
|
44 |
+ 'options' => \System::getContainer()->get('contao.image.image_sizes')->getOptionsForUser(BackendUser::getInstance()), |
|
45 |
+ 'reference' => &$GLOBALS['TL_LANG']['MSC'], |
|
46 |
+ 'eval' => array( |
|
47 |
+ 'rgxp' => 'digit', |
|
48 |
+ 'tl_class' => 'w50', |
|
49 |
+ 'includeBlankOption' => true, |
|
50 |
+ ), |
|
51 |
+ ), |
|
52 |
+ 'backgroundSize' => array( |
|
53 |
+ 'label' => array('Bildanpassung', ''), |
|
54 |
+ 'inputType' => 'select', |
|
55 |
+ 'options' => array( |
|
56 |
+ '' => 'Beschnitten', |
|
57 |
+ 'contain' => 'Proportional', |
|
58 |
+ '100% 100%' => 'Verzerrt', |
|
59 |
+ 'auto auto' => 'Originalgröße', |
|
60 |
+ ), |
|
61 |
+ 'eval' => array('tl_class' => 'w50'), |
|
62 |
+ ), |
|
63 |
+ 'backgroundPosition' => array( |
|
64 |
+ 'label' => array('Position', 'Nicht mit Parallax-Effekt kombinierbar'), |
|
65 |
+ 'inputType' => 'select', |
|
66 |
+ 'options' => array( |
|
67 |
+ '' => '-', |
|
68 |
+ '0 0' => 'Links | Oben', |
|
69 |
+ '50% 0' => 'Mitte | Oben', |
|
70 |
+ '100% 0' => 'Rechts | Oben', |
|
71 |
+ '0 50%' => 'Links | Mitte', |
|
72 |
+ '50% 50%' => 'Mitte | Mitte', |
|
73 |
+ '100% 50%' => 'Rechts | Mitte', |
|
74 |
+ '0 100%' => 'Links | Unten', |
|
75 |
+ '50% 100%' => 'Mitte | Unten', |
|
76 |
+ '100% 100%' => 'Rechts | Unten', |
|
77 |
+ ), |
|
78 |
+ 'eval' => array('tl_class' => 'w50'), |
|
79 |
+ ), |
|
80 |
+ 'padding' => array( |
|
81 |
+ 'label' => array('Innenabstand', 'Es wird Oben und Unten ein Innenabstand angewendet.'), |
|
82 |
+ 'inputType' => 'select', |
|
83 |
+ 'options' => array( |
|
84 |
+ '' => '-', |
|
85 |
+ '-padding' => 'Default', |
|
86 |
+ '-medium-padding' => 'Medium', |
|
87 |
+ '-large-padding' => 'Large', |
|
88 |
+ '-padding-top' => 'Small Top', |
|
89 |
+ '-medium-padding-top' => 'Medium Top', |
|
90 |
+ '-large-padding-top' => 'Large Top', |
|
91 |
+ '-padding-bottom' => 'Small Bottom', |
|
92 |
+ '-medium-padding-bottom' => 'Medium Bottom', |
|
93 |
+ '-large-padding-bottom' => 'Large Bottom', |
|
94 |
+ ), |
|
95 |
+ 'eval' => array( |
|
96 |
+ 'tl_class' => 'w50', |
|
97 |
+ ), |
|
98 |
+ ), |
|
99 |
+ 'valignCenter' => array( |
|
100 |
+ 'label' => array('Mind. Viewport Höhe', 'Der Inhaltsbereich hat mindestens die Höhe des Viewports. Der Inhalt wird zentriert dargestellt.'), |
|
101 |
+ 'inputType' => 'checkbox', |
|
102 |
+ 'eval' => array( |
|
103 |
+ 'tl_class' => 'w50 m12 clr', |
|
104 |
+ ), |
|
105 |
+ ), |
|
106 |
+ 'valign' => array( |
|
107 |
+ 'label' => array('Vertikale Ausrichtung', 'Vertikale Ausrichtung (nur in Verbindung mit "Mind. Viewport Höhe").'), |
|
108 |
+ 'inputType' => 'select', |
|
109 |
+ 'options' => array( |
|
110 |
+ '' => 'Mitte', |
|
111 |
+ '-valignTop' => 'Oben', |
|
112 |
+ '-valignBottom' => 'Unten', |
|
113 |
+ ), |
|
114 |
+ 'eval' => array('tl_class' => 'w50'), |
|
115 |
+ ), |
|
116 |
+ 'spacing' => array( |
|
117 |
+ 'label' => array('Abstand'), |
|
118 |
+ 'inputType' => 'group', |
|
119 |
+ ), |
|
120 |
+ 'es_spacing' => array ( |
|
121 |
+ 'inputType' => 'standardField' |
|
122 |
+ ), |
|
123 |
+ 'es_padding' => array ( |
|
124 |
+ 'inputType' => 'standardField' |
|
125 |
+ ), |
|
126 |
+ ), |
|
127 |
+); |
|
0 | 128 |
\ No newline at end of file |
0 | 7 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,13 @@ |
1 |
+<?php |
|
2 |
+ |
|
3 |
+return array( |
|
4 |
+ 'label' => array( |
|
5 |
+ 'Zentrierter Inhaltsbereich mit halbseitigem Bild Ende', |
|
6 |
+ 'Beendet einen zentrierten Inhaltsbereich', |
|
7 |
+ ), |
|
8 |
+ 'types' => array('content', 'module'), |
|
9 |
+ 'wrapper' => array( |
|
10 |
+ 'type' => 'stop', |
|
11 |
+ ), |
|
12 |
+ 'fields' => array(), |
|
13 |
+); |