Browse code

Add even more background options

Benjamin Roth authored on01/11/2017 16:54:37
Showing8 changed files
... ...
@@ -1,5 +1,12 @@
1
+.slick-slider-container {
2
+  overflow: hidden; }
3
+
4
+.slick-slider-container,
1 5
 .slick-slider-slide {
2 6
   position: relative; }
7
+  .slick-slider-container .slick-slider-background,
8
+  .slick-slider-container .slick-slider-slide-image,
9
+  .slick-slider-slide .slick-slider-background,
3 10
   .slick-slider-slide .slick-slider-slide-image {
4 11
     position: absolute;
5 12
     left: 0;
... ...
@@ -1,6 +1,11 @@
1
+.slick-slider-container {
2
+  overflow: hidden;
3
+}
4
+.slick-slider-container,
1 5
 .slick-slider-slide {
2 6
   position: relative;
3 7
 
8
+  .slick-slider-background,
4 9
   .slick-slider-slide-image {
5 10
     position: absolute;
6 11
     left: 0;
... ...
@@ -23,14 +23,14 @@ $GLOBALS['TL_DCA']['tl_content']['config']['onsubmit_callback'][] = array('tl_co
23 23
  * Add palettes to tl_content
24 24
  */
25 25
 $GLOBALS['TL_DCA']['tl_content']['palettes']['__selector__'][] = 'eSM_addImage';
26
-$GLOBALS['TL_DCA']['tl_content']['palettes']['slickSliderStart'] = '{type_legend},type;{slickSlider_legend},eSM_slick_autoPlaySpeed,eSM_slick_speed,eSM_slick_initialSlide,eSM_slick_lazyLoad,eSM_slick_slidesToShow,eSM_slick_slidesToScroll,eSM_slick_infinite,eSM_slick_arrows,eSM_slick_pagination,eSM_slick_pause,eSM_slick_fade,eSM_slick_adaptiveHeight;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space;{invisible_legend:hide},invisible,start,stop';
26
+$GLOBALS['TL_DCA']['tl_content']['palettes']['slickSliderStart'] = '{type_legend},type;{slickSlider_legend},eSM_slick_autoPlaySpeed,eSM_slick_speed,eSM_slick_initialSlide,eSM_slick_lazyLoad,eSM_slick_slidesToShow,eSM_slick_slidesToScroll,eSM_slick_infinite,eSM_slick_arrows,eSM_slick_pagination,eSM_slick_pause,eSM_slick_fade,eSM_slick_adaptiveHeight;{image_legend},eSM_addImage;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space;{invisible_legend:hide},invisible,start,stop';
27 27
 $GLOBALS['TL_DCA']['tl_content']['palettes']['slickSliderStop'] = '{type_legend},type;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests;{invisible_legend:hide},invisible,start,stop';
28 28
 $GLOBALS['TL_DCA']['tl_content']['palettes']['slickSliderSlideStart'] = '{type_legend},type;{slickSlider_legend},eSM_addImage;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space;{invisible_legend:hide},invisible,start,stop';
29 29
 $GLOBALS['TL_DCA']['tl_content']['palettes']['slickSliderSlideStop'] = '{type_legend},type;{protected_legend:hide},protected;{expert_legend:hide},guests;{invisible_legend:hide},invisible,start,stop';
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,eSM_slick_slide_bgSize,eSM_slick_slide_bgPosition,eSM_slick_slide_minHeight,eSM_slick_slide_bgOpacity';
33
+$GLOBALS['TL_DCA']['tl_content']['subpalettes']['eSM_addImage'] = 'singleSRC,size,eSM_slick_bgSize,eSM_slick_bgPosition,eSM_slick_minHeight,eSM_slick_bgOpacity';
34 34
 
35 35
 /**
36 36
  * Add fields to tl_content
... ...
@@ -179,18 +179,18 @@ $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
182
+$GLOBALS['TL_DCA']['tl_content']['fields']['eSM_slick_minHeight'] = array
183 183
 (
184
-  'label'                   => &$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_minHeight'],
184
+  'label'                   => &$GLOBALS['TL_LANG']['tl_content']['eSM_slick_minHeight'],
185 185
   'exclude'                 => true,
186 186
   'inputType'               => 'checkbox',
187 187
   'eval'                    => array('tl_class'=>'w50 m12'),
188 188
   'sql'                     => "char(1) NOT NULL default ''"
189 189
 );
190 190
 
191
-$GLOBALS['TL_DCA']['tl_content']['fields']['eSM_slick_slide_bgPosition'] = array
191
+$GLOBALS['TL_DCA']['tl_content']['fields']['eSM_slick_bgPosition'] = array
192 192
 (
193
-  'label'                   => &$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_bgPosition'],
193
+  'label'                   => &$GLOBALS['TL_LANG']['tl_content']['eSM_slick_bgPosition'],
194 194
   'exclude'                 => true,
195 195
   'inputType'               => 'select',
196 196
   'options'                 => array
... ...
@@ -209,9 +209,9 @@ $GLOBALS['TL_DCA']['tl_content']['fields']['eSM_slick_slide_bgPosition'] = array
209 209
   'sql'                     => "varchar(16) NOT NULL default ''"
210 210
 );
211 211
 
212
-$GLOBALS['TL_DCA']['tl_content']['fields']['eSM_slick_slide_bgSize'] = array
212
+$GLOBALS['TL_DCA']['tl_content']['fields']['eSM_slick_bgSize'] = array
213 213
 (
214
-  'label'                   => &$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_bgSize'],
214
+  'label'                   => &$GLOBALS['TL_LANG']['tl_content']['eSM_slick_bgSize'],
215 215
   'exclude'                 => true,
216 216
   'inputType'               => 'select',
217 217
   'options'                 => array
... ...
@@ -224,9 +224,9 @@ $GLOBALS['TL_DCA']['tl_content']['fields']['eSM_slick_slide_bgSize'] = array
224 224
   'sql'                     => "varchar(16) NOT NULL default ''"
225 225
 );
226 226
 
227
-$GLOBALS['TL_DCA']['tl_content']['fields']['eSM_slick_slide_bgOpacity'] = array
227
+$GLOBALS['TL_DCA']['tl_content']['fields']['eSM_slick_bgOpacity'] = array
228 228
 (
229
-  'label'                   => &$GLOBALS['TL_LANG']['tl_content']['eSM_slick_slide_bgOpacity'],
229
+  'label'                   => &$GLOBALS['TL_LANG']['tl_content']['eSM_slick_bgOpacity'],
230 230
   'exclude'                 => true,
231 231
   'inputType'               => 'select',
232 232
   'options'                 => array
... ...
@@ -53,21 +53,21 @@ class ContentSlickSliderSlideStart extends \ContentElement
53 53
 
54 54
       $backgroundStyle = 'background-image: url(\''.$this->Template->src.'\');';
55 55
 
56
-      if ($this->eSM_slick_slide_bgSize) {
57
-        $backgroundStyle .= 'background-size: ' . $this->eSM_slick_slide_bgSize . ';';
56
+      if ($this->eSM_slick_bgSize) {
57
+        $backgroundStyle .= 'background-size: ' . $this->eSM_slick_bgSize . ';';
58 58
       } else {
59 59
         $backgroundStyle .= 'background-size: cover;';
60 60
       }
61
-      if ($this->eSM_slick_slide_bgPosition) {
62
-        $backgroundStyle .= 'background-position: ' . $this->eSM_slick_slide_bgPosition . ';';
61
+      if ($this->eSM_slick_bgPosition) {
62
+        $backgroundStyle .= 'background-position: ' . $this->eSM_slick_bgPosition . ';';
63 63
       } else {
64 64
         $backgroundStyle .= 'background-position: 0 0;';
65 65
       }
66
-      if ($this->eSM_slick_slide_bgOpacity) {
67
-        $backgroundStyle .= 'opacity:' . $this->eSM_slick_slide_bgOpacity/100 . ';';
66
+      if ($this->eSM_slick_bgOpacity) {
67
+        $backgroundStyle .= 'opacity:' . $this->eSM_slick_bgOpacity/100 . ';';
68 68
       }
69 69
 
70
-      if ($this->eSM_slick_slide_minHeight) {
70
+      if ($this->eSM_slick_minHeight) {
71 71
         $this->Template->minHeight = round($this->Template->height/$this->Template->width*100).'%';
72 72
       }
73 73
 
... ...
@@ -42,5 +42,41 @@ class ContentSlickSliderStart extends \ContentElement
42 42
 
43 43
 		// Slider configuration
44 44
 		$this->Template->config = $this->eSM_slick_autoPlaySpeed . ',' . $this->eSM_slick_speed . ',' . $this->eSM_slick_initialSlide . ',' . $this->eSM_slick_lazyLoad . ',' . $this->eSM_slick_infinite . ',' . $this->eSM_slick_arrows . ',' . $this->eSM_slick_pagination . ',' . $this->eSM_slick_pause . ',' . $this->eSM_slick_fade . ',' . $this->eSM_slick_slidesToShow . ',' . $this->eSM_slick_slidesToScroll . ',' . $this->eSM_slick_adaptiveHeight;
45
+
46
+		// Background image
47
+    if ($this->singleSRC)
48
+    {
49
+
50
+      $objFile = \FilesModel::findByUuid($this->singleSRC);
51
+
52
+      if ($objFile !== null && is_file(TL_ROOT . '/' . $objFile->path))
53
+      {
54
+        $this->singleSRC = $objFile->path;
55
+
56
+        $this->addImageToTemplate($this->Template, array('singleSRC'=>$this->singleSRC, 'size'=>$this->size));
57
+      }
58
+
59
+      $backgroundStyle = 'background-image: url(\''.$this->Template->src.'\');';
60
+
61
+      if ($this->eSM_slick_bgSize) {
62
+        $backgroundStyle .= 'background-size: ' . $this->eSM_slick_bgSize . ';';
63
+      } else {
64
+        $backgroundStyle .= 'background-size: cover;';
65
+      }
66
+      if ($this->eSM_slick_bgPosition) {
67
+        $backgroundStyle .= 'background-position: ' . $this->eSM_slick_bgPosition . ';';
68
+      } else {
69
+        $backgroundStyle .= 'background-position: 0 0;';
70
+      }
71
+      if ($this->eSM_slick_bgOpacity) {
72
+        $backgroundStyle .= 'opacity:' . $this->eSM_slick_bgOpacity/100 . ';';
73
+      }
74
+
75
+      if ($this->eSM_slick_minHeight) {
76
+        $this->Template->minHeight = round($this->Template->height/$this->Template->width*100).'%';
77
+      }
78
+
79
+      $this->Template->backgroundStyle = $backgroundStyle;
80
+    }
45 81
 	}
46 82
 }
... ...
@@ -38,14 +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
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_bgPosition'][0]           = "Bildposition";
42
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_bgPosition'][1]           = "Legt die Positionierung des Bildes fest.";
43
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_bgSize'][0]           = "Hintergrundbildgröße";
44
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_bgSize'][1]           = "Steuert die Hintergrundbildgröße bezogen auf den Container.";
45
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_minHeight'][0]           = "Mindesthöhe erzwingen";
46
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_minHeight'][1]           = "Die Mindesthöhe des Slide wird am Bild ausgerichtet.";
47
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_bgOpacity'][0]           = "Hintergrundbildtransparenz";
48
+$GLOBALS['TL_LANG']['tl_content']['eSM_slick_bgOpacity'][1]           = "Die Transparenz des Hintergrundbildes.";
49 49
 /**
50 50
  * Legends
51 51
  */
... ...
@@ -1,9 +1,17 @@
1 1
 <?php $this->block('content'); ?>
2 2
 
3
-  <div class="<?= $this->class ?> block"<?= $this->cssID ?><?php if ($this->style): ?> style="<?= $this->style ?>"<?php endif; ?>>
3
+<div class="<?= $this->class ?> block"<?= $this->cssID ?><?php if ($this->style): ?> style="<?= $this->style ?>"<?php endif; ?>>
4 4
 
5
-    <?php if ($this->headline): ?>
6
-    <<?= $this->hl ?>><?= $this->headline ?></<?= $this->hl ?>>
5
+  <?php if ($this->headline): ?>
6
+  <<?= $this->hl ?>><?= $this->headline ?></<?= $this->hl ?>>
7
+  <?php endif; ?>
8
+
9
+  <div class="slick-slider-container slide-container_<?= $this->id ?>">
10
+    <?php if ($this->eSM_addImage && $this->src): ?>
11
+    <div class="slick-slider-background" style="<?= $this->backgroundStyle ?>"></div>
12
+      <?php if ($this->minHeight): ?>
13
+      <style>.slide-container_<?= $this->id ?>:before { content: ""; display: block; padding-top: <?= $this->minHeight ?>; float: left; }</style>
14
+      <?php endif; ?>
7 15
     <?php endif; ?>
8 16
 
9 17
     <div class="slick-slider-wrapper" data-config="<?= $this->config ?>">
... ...
@@ -4,4 +4,6 @@
4 4
 
5 5
   </div>
6 6
 
7
+</div>
8
+
7 9
 <?php $this->endblock(); ?>
8 10
\ No newline at end of file