... | ... |
@@ -30,7 +30,7 @@ $GLOBALS['TL_DCA']['tl_content']['palettes']['slickSliderSlideStop'] = '{type_le |
30 | 30 |
$GLOBALS['TL_DCA']['tl_content']['palettes']['slickSliderWallpaper'] = '{type_legend},type;{slickSlider_legend},eSM_slick_text,eSM_slick_url,singleSRC,size;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space;{invisible_legend:hide},invisible,start,stop'; |
31 | 31 |
|
32 | 32 |
|
33 |
-$GLOBALS['TL_DCA']['tl_content']['subpalettes']['eSM_addImage'] = 'singleSRC,size'; |
|
33 |
+$GLOBALS['TL_DCA']['tl_content']['subpalettes']['eSM_addImage'] = 'singleSRC,size,eSM_slick_slide_bgSize,eSM_slick_slide_bgPosition,eSM_slick_slide_minHeight,eSM_slick_slide_bgOpacity'; |
|
34 | 34 |
|
35 | 35 |
/** |
36 | 36 |
* Add fields to tl_content |
... | ... |
@@ -179,6 +179,72 @@ $GLOBALS['TL_DCA']['tl_content']['fields']['eSM_addImage'] = array |
179 | 179 |
'sql' => "char(1) NOT NULL default ''" |
180 | 180 |
); |
181 | 181 |
|
182 |
+$GLOBALS['TL_DCA']['tl_content']['fields']['eSM_slick_slide_minHeight'] = array |
|
183 |
+( |
|
184 |
+ 'label' => &$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_minHeight'], |
|
185 |
+ 'exclude' => true, |
|
186 |
+ 'inputType' => 'checkbox', |
|
187 |
+ 'eval' => array('tl_class'=>'w50 m12'), |
|
188 |
+ 'sql' => "char(1) NOT NULL default ''" |
|
189 |
+); |
|
190 |
+ |
|
191 |
+$GLOBALS['TL_DCA']['tl_content']['fields']['eSM_slick_slide_bgPosition'] = array |
|
192 |
+( |
|
193 |
+ 'label' => &$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_bgPosition'], |
|
194 |
+ 'exclude' => true, |
|
195 |
+ 'inputType' => 'select', |
|
196 |
+ 'options' => array |
|
197 |
+ ( |
|
198 |
+ '0 0' => 'Links | Oben', |
|
199 |
+ '50% 0' => 'Mitte | Oben', |
|
200 |
+ '100% 0' => 'Rechts | Oben', |
|
201 |
+ '0 50%' => 'Links | Mitte', |
|
202 |
+ '50% 50%' => 'Mitte | Mitte', |
|
203 |
+ '100% 50%' => 'Rechts | Mitte', |
|
204 |
+ '0 100%' => 'Links | Unten', |
|
205 |
+ '50% 100%' => 'Mitte | Unten', |
|
206 |
+ '100% 100%' => 'Rechts | Unten', |
|
207 |
+ ), |
|
208 |
+ 'eval' => array('tl_class' => 'w50','includeBlankOption'=>true), |
|
209 |
+ 'sql' => "varchar(16) NOT NULL default ''" |
|
210 |
+); |
|
211 |
+ |
|
212 |
+$GLOBALS['TL_DCA']['tl_content']['fields']['eSM_slick_slide_bgSize'] = array |
|
213 |
+( |
|
214 |
+ 'label' => &$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_bgSize'], |
|
215 |
+ 'exclude' => true, |
|
216 |
+ 'inputType' => 'select', |
|
217 |
+ 'options' => array |
|
218 |
+ ( |
|
219 |
+ 'contain' => 'Proportional', |
|
220 |
+ '100% 100%' => 'Verzerrt', |
|
221 |
+ 'auto auto' => 'Originalgröße', |
|
222 |
+ ), |
|
223 |
+ 'eval' => array('tl_class' => 'w50','includeBlankOption'=>true,'blankOptionLabel'=>'Beschnitten'), |
|
224 |
+ 'sql' => "varchar(16) NOT NULL default ''" |
|
225 |
+); |
|
226 |
+ |
|
227 |
+$GLOBALS['TL_DCA']['tl_content']['fields']['eSM_slick_slide_bgOpacity'] = array |
|
228 |
+( |
|
229 |
+ 'label' => &$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_bgOpacity'], |
|
230 |
+ 'exclude' => true, |
|
231 |
+ 'inputType' => 'select', |
|
232 |
+ 'options' => array |
|
233 |
+ ( |
|
234 |
+ '10' => '10%', |
|
235 |
+ '20' => '20%', |
|
236 |
+ '30' => '30%', |
|
237 |
+ '40' => '40%', |
|
238 |
+ '50' => '50%', |
|
239 |
+ '60' => '60%', |
|
240 |
+ '70' => '70%', |
|
241 |
+ '80' => '80%', |
|
242 |
+ '90' => '90%', |
|
243 |
+ '100' => '100%', |
|
244 |
+ ), |
|
245 |
+ 'eval' => array('tl_class' => 'w50','includeBlankOption'=>true), |
|
246 |
+ 'sql' => "varchar(16) NOT NULL default ''" |
|
247 |
+); |
|
182 | 248 |
|
183 | 249 |
class tl_content_eSM_slick extends Backend |
184 | 250 |
{ |
... | ... |
@@ -50,6 +50,28 @@ class ContentSlickSliderSlideStart extends \ContentElement |
50 | 50 |
|
51 | 51 |
$this->addImageToTemplate($this->Template, array('singleSRC'=>$this->singleSRC, 'size'=>$this->size)); |
52 | 52 |
} |
53 |
+ |
|
54 |
+ $backgroundStyle = 'background-image: url(\''.$this->Template->src.'\');'; |
|
55 |
+ |
|
56 |
+ if ($this->eSM_slick_slide_bgSize) { |
|
57 |
+ $backgroundStyle .= 'background-size: ' . $this->eSM_slick_slide_bgSize . ';'; |
|
58 |
+ } else { |
|
59 |
+ $backgroundStyle .= 'background-size: cover;'; |
|
60 |
+ } |
|
61 |
+ if ($this->eSM_slick_slide_bgPosition) { |
|
62 |
+ $backgroundStyle .= 'background-position: ' . $this->eSM_slick_slide_bgPosition . ';'; |
|
63 |
+ } else { |
|
64 |
+ $backgroundStyle .= 'background-position: 0 0;'; |
|
65 |
+ } |
|
66 |
+ if ($this->eSM_slick_slide_bgOpacity) { |
|
67 |
+ $backgroundStyle .= 'opacity:' . $this->eSM_slick_slide_bgOpacity/100 . ';'; |
|
68 |
+ } |
|
69 |
+ |
|
70 |
+ if ($this->eSM_slick_slide_minHeight) { |
|
71 |
+ $this->Template->minHeight = round($this->Template->height/$this->Template->width*100).'%'; |
|
72 |
+ } |
|
73 |
+ |
|
74 |
+ $this->Template->backgroundStyle = $backgroundStyle; |
|
53 | 75 |
} |
54 | 76 |
|
55 | 77 |
} |
... | ... |
@@ -38,6 +38,14 @@ $GLOBALS['TL_LANG']['tl_content']['eSM_slick_adaptiveHeight'][0] = "Adaptive Hö |
38 | 38 |
$GLOBALS['TL_LANG']['tl_content']['eSM_slick_adaptiveHeight'][1] = "Die Höhe des Sliders passt sich automatisch den sichtbaren Slides an."; |
39 | 39 |
$GLOBALS['TL_LANG']['tl_content']['eSM_slick_text'][0] = "Text"; |
40 | 40 |
$GLOBALS['TL_LANG']['tl_content']['eSM_slick_text'][1] = "Ein Text der auf dem Hintergrundbild platziert wird."; |
41 |
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_bgPosition'][0] = "Bildposition"; |
|
42 |
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_bgPosition'][1] = "Legt die Positionierung des Bildes fest."; |
|
43 |
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_bgSize'][0] = "Hintergrundbildgröße"; |
|
44 |
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_bgSize'][1] = "Steuert die Hintergrundbildgröße bezogen auf den Container."; |
|
45 |
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_minHeight'][0] = "Mindesthöhe erzwingen"; |
|
46 |
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_minHeight'][1] = "Die Mindesthöhe des Slide wird am Bild ausgerichtet."; |
|
47 |
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_bgOpacity'][0] = "Hintergrundbildtransparenz"; |
|
48 |
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_bgOpacity'][1] = "Die Transparenz des Hintergrundbildes."; |
|
41 | 49 |
/** |
42 | 50 |
* Legends |
43 | 51 |
*/ |
... | ... |
@@ -1,7 +1,13 @@ |
1 | 1 |
<?php //$this->dumpTemplateVars(); ?> |
2 | 2 |
<?php $this->block('content'); ?> |
3 | 3 |
|
4 |
- <div class="slick-slider-slide"<?php if ($this->eSM_addImage && $this->src): ?> style="background-image: url('<?= $this->src ?>'); min-height: <?= round($this->height/$this->width*100) ?>vw;"<?php endif; ?>> |
|
4 |
+ <div class="slick-slider-slide slide_<?= $this->id ?>"> |
|
5 |
+ <?php if ($this->eSM_addImage && $this->src): ?> |
|
6 |
+ <div class="slick-slider-slide-image" style="<?= $this->backgroundStyle ?>"></div> |
|
7 |
+ <?php if ($this->minHeight): ?> |
|
8 |
+ <style>.slide_<?= $this->id ?>:before { content: ""; display: block; padding-top: <?= $this->minHeight ?>; float: left; }</style> |
|
9 |
+ <?php endif; ?> |
|
10 |
+ <?php endif; ?> |
|
5 | 11 |
<div class="slide-content"> |
6 | 12 |
|
7 | 13 |
<?php $this->endblock(); ?> |
... | ... |
@@ -2,6 +2,7 @@ |
2 | 2 |
|
3 | 3 |
$GLOBALS['TL_CSS'][] = '/system/modules/eSM_slick/assets/lib/slick/'.$GLOBALS['TL_ASSETS']['SLICKSLIDER'].'/css/slick.css'; |
4 | 4 |
$GLOBALS['TL_CSS'][] = '/system/modules/eSM_slick/assets/lib/slick/'.$GLOBALS['TL_ASSETS']['SLICKSLIDER'].'/css/slick-theme.css'; |
5 |
+$GLOBALS['TL_CSS'][] = '/system/modules/eSM_slick/assets/css/slick-addons.css'; |
|
5 | 6 |
|
6 | 7 |
?> |
7 | 8 |
|
... | ... |
@@ -24,7 +25,7 @@ $GLOBALS['TL_CSS'][] = '/system/modules/eSM_slick/assets/lib/slick/'.$GLOBALS['T |
24 | 25 |
speed: parseInt(c[1]), |
25 | 26 |
initialSlide: parseInt(c[2]), |
26 | 27 |
lazyLoad: c[3], |
27 |
- cssEase: 'linear', |
|
28 |
+ cssEase: 'ease', |
|
28 | 29 |
slidesToShow: parseInt(c[9]), |
29 | 30 |
slidesToScroll: parseInt(c[10]), |
30 | 31 |
adaptiveHeight: (parseInt(c[11]) == 1 ? true : false) |