From 7a017d4dd05dc8ab9c024b95329edf1384e0c8a3 Mon Sep 17 00:00:00 2001
From: Jan Wennrich <jan@pcsg.de>
Date: Fri, 27 Jul 2018 14:30:16 +0200
Subject: [PATCH] PromoSliderWallpaper only uses desktop's slides by default
 (#88)

---
 bricks.xml                                    |  6 +++
 .../Controls/Slider/PromosliderWallpaper.php  | 42 ++++++++++++-------
 2 files changed, 33 insertions(+), 15 deletions(-)

diff --git a/bricks.xml b/bricks.xml
index 8aec116..3ea4205 100644
--- a/bricks.xml
+++ b/bricks.xml
@@ -337,6 +337,12 @@
                     <locale group="quiqqer/bricks" var="brick.control.promoslider.settings.desktopslides"/>
                 </setting>
 
+                <setting name="isMobileSlidesEnabled" type="hidden"
+                         data-qui="package/quiqqer/bricks/bin/Controls/Slider/ToggleMobileSlidesSetting"
+                >
+                    <locale group="quiqqer/bricks" var="brick.control.promoslider.settings.isMobileSlidesEnabled"/>
+                </setting>
+
                 <setting name="mobileslides" type="hidden"
                          data-qui="package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings"
                 >
diff --git a/src/QUI/Bricks/Controls/Slider/PromosliderWallpaper.php b/src/QUI/Bricks/Controls/Slider/PromosliderWallpaper.php
index 0c0b964..a10dd01 100644
--- a/src/QUI/Bricks/Controls/Slider/PromosliderWallpaper.php
+++ b/src/QUI/Bricks/Controls/Slider/PromosliderWallpaper.php
@@ -25,17 +25,18 @@ public function __construct($attributes = array())
     {
         // default options
         $this->setAttributes(array(
-            'title'          => '',
-            'text'           => '',
-            'class'          => 'quiqqer-bricks-promoslider-wallpaper',
-            'nodeName'       => 'section',
-            'data-qui'       => 'package/quiqqer/bricks/bin/Controls/Slider/PromosliderWallpaper',
-            'role'           => 'listbox',
-            'shownavigation' => true,
-            'showarrows'     => 'showHoverScale',
-            'autostart'      => false,
-            'delay'          => 5000,
-            'template'       => dirname(__FILE__) . '/PromosliderWallpaper.html'
+            'title'                 => '',
+            'text'                  => '',
+            'class'                 => 'quiqqer-bricks-promoslider-wallpaper',
+            'nodeName'              => 'section',
+            'data-qui'              => 'package/quiqqer/bricks/bin/Controls/Slider/PromosliderWallpaper',
+            'role'                  => 'listbox',
+            'shownavigation'        => true,
+            'showarrows'            => 'showHoverScale',
+            'autostart'             => false,
+            'delay'                 => 5000,
+            'template'              => dirname(__FILE__) . '/PromosliderWallpaper.html',
+            'isMobileSlidesEnabled' => false
         ));
 
         $this->addCSSFile(
@@ -112,6 +113,7 @@ public function getBody()
         $this->setAttribute('data-qui-options-delay', 5000);
         $this->setAttribute('data-qui-options-shownavigation', false);
         $this->setAttribute('data-qui-options-showarrows', false);
+        $this->setAttribute('data-qui-options-isMobileSlidesEnabled', false);
 
         if ($this->getAttribute('pagefit') === false) {
             $this->setAttribute('pagefitcut', false);
@@ -218,14 +220,24 @@ public function getBody()
 
 
         $this->parseSlides($this->getAttribute('desktopslides'), 'desktop');
-        $this->parseSlides($this->getAttribute('mobileslides'), 'mobile');
 
-        $Engine->assign(array(
+        $options = array(
             'this'          => $this,
             'desktopSlides' => $this->desktopSlides,
-            'mobileSlides'  => $this->mobileSlides,
             'Utils'         => new Utils()
-        ));
+        );
+
+        if ($this->getAttribute('isMobileSlidesEnabled') === "true") {
+            $this->parseSlides($this->getAttribute('mobileslides'), 'mobile');
+
+            $options['mobileSlides'] = $this->mobileSlides;
+        } else {
+            $this->parseSlides($this->getAttribute('desktopslides'), 'mobile');
+
+            $options['mobileSlides'] = $this->desktopSlides;
+        }
+
+        $Engine->assign($options);
 
         return $Engine->fetch($this->getAttribute('template'));
     }
-- 
GitLab