From dd56aaf5394b4bc239b6c0c9fb5194e8983ff5b0 Mon Sep 17 00:00:00 2001
From: "michael.daniel" <michael@pcsg.de>
Date: Tue, 23 Jul 2019 14:15:40 +0200
Subject: [PATCH] feat: New attribute for promoslider: image size, to control
 speed up of page load.

---
 .../Bricks/Controls/Slider/Promoslider.html   |  4 ++--
 .../Bricks/Controls/Slider/Promoslider.php    | 19 ++++++++++---------
 2 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/src/QUI/Bricks/Controls/Slider/Promoslider.html b/src/QUI/Bricks/Controls/Slider/Promoslider.html
index d29887d..3512f62 100644
--- a/src/QUI/Bricks/Controls/Slider/Promoslider.html
+++ b/src/QUI/Bricks/Controls/Slider/Promoslider.html
@@ -29,7 +29,7 @@
         >&nbsp;</div>
         {elseif $slide.image}
         <div class="quiqqer-bricks-promoslider-slide-image">
-            {image image=$slide.image}
+            {image image=$slide.image width=$imageSize}
         </div>
         {/if}
 
@@ -78,7 +78,7 @@
         >&nbsp;</div>
         {elseif $slide.image}
         <div class="quiqqer-bricks-promoslider-slide-mobile-image">
-            {image image=$slide.image}
+            {image image=$slide.image width=$imageSize}
         </div>
         {/if}
 
diff --git a/src/QUI/Bricks/Controls/Slider/Promoslider.php b/src/QUI/Bricks/Controls/Slider/Promoslider.php
index 6cbd18f..5b9b00d 100644
--- a/src/QUI/Bricks/Controls/Slider/Promoslider.php
+++ b/src/QUI/Bricks/Controls/Slider/Promoslider.php
@@ -21,10 +21,10 @@ class Promoslider extends AbstractPromoslider
      *
      * @param array $attributes
      */
-    public function __construct($attributes = array())
+    public function __construct($attributes = [])
     {
         // default options
-        $this->setAttributes(array(
+        $this->setAttributes([
             'title'                      => '',
             'text'                       => '',
             'class'                      => 'quiqqer-bricks-promoslider',
@@ -36,8 +36,9 @@ public function __construct($attributes = array())
             'image-wallpaper-attachment' => false,
             'autostart'                  => false,
             'delay'                      => 5000,
-            'isMobileSlidesEnabled'      => false
-        ));
+            'isMobileSlidesEnabled'      => false,
+            'imageSize'                  => false // false = use original size, do not create srcset
+        ]);
 
         $this->addCSSFile(
             dirname(__FILE__) . '/Promoslider.css'
@@ -46,7 +47,6 @@ public function __construct($attributes = array())
         $this->addCSSClass('grid-100');
         $this->addCSSClass('mobile-grid-100');
 
-
         parent::__construct($attributes);
     }
 
@@ -169,12 +169,13 @@ public function getBody()
 
         $this->parseSlides($this->getAttribute('desktopslides'), 'desktop');
 
-        $options = array(
+        $options = [
             'this'          => $this,
             'desktopSlides' => $this->desktopSlides,
-            'Utils'         => new Utils()
-        );
-        
+            'Utils'         => new Utils(),
+            'imageSize'     => $this->getAttribute('imageSize')
+        ];
+
         if ($this->getAttribute('isMobileSlidesEnabled') === "true") {
             $this->parseSlides($this->getAttribute('mobileslides'), 'mobile');
 
-- 
GitLab