From 07e0200a730c11ff0f76d8fe2771030502ed402e Mon Sep 17 00:00:00 2001
From: Campii <dominik.chrzanowski183@gmail.com>
Date: Mon, 8 Nov 2021 18:38:19 +0100
Subject: [PATCH] feat: Added new options dots position [Basicslider]
 quiqqer/package-bricks#131

---
 bricks.xml                                      | 14 ++++++++++++++
 locale.xml                                      | 12 ++++++++++++
 src/QUI/Bricks/Controls/Slider/BasicSlider.css  |  5 +++++
 src/QUI/Bricks/Controls/Slider/BasicSlider.html | 12 +++++++++++-
 src/QUI/Bricks/Controls/Slider/BasicSlider.php  |  5 ++++-
 5 files changed, 46 insertions(+), 2 deletions(-)

diff --git a/bricks.xml b/bricks.xml
index 5b18bfd..fecdb9b 100644
--- a/bricks.xml
+++ b/bricks.xml
@@ -182,6 +182,20 @@
                     <locale group="quiqqer/bricks" var="brick.control.basicSlider.navigationDotsShow"/>
                 </setting>
 
+                <setting name="navigationDotPosition" type="select">
+                    <locale group="quiqqer/bricks"
+                            var="brick.basicSlider.navigationDotPosition"/>
+
+                    <option value="underSlide">
+                        <locale group="quiqqer/bricks"
+                                var="brick.basicSlider.navigationDotPosition.underSlide"/>
+                    </option>
+                    <option value="underText">
+                        <locale group="quiqqer/bricks"
+                                var="brick.basicSlider.navigationDotPosition.underText"/>
+                    </option>
+                </setting>
+
                 <setting name="maxImageWidth" type="number">
                     <locale group="quiqqer/bricks"
                             var="brick.control.basicSlider.maxImageWidth"/>
diff --git a/locale.xml b/locale.xml
index 94ad8de..0e69cf1 100644
--- a/locale.xml
+++ b/locale.xml
@@ -432,6 +432,18 @@
             <de><![CDATA[Punktnavigation anzeigen]]></de>
             <en><![CDATA[Show dots navigation]]></en>
         </locale>
+        <locale name="brick.basicSlider.navigationDotPosition">
+            <de><![CDATA[Punktnavigation anzeigen]]></de>
+            <en><![CDATA[Navigation position]]></en>
+        </locale>
+        <locale name="brick.basicSlider.navigationDotPosition.underSlide">
+            <de><![CDATA[Unter Folie]]></de>
+            <en><![CDATA[Under slide]]></en>
+        </locale>
+        <locale name="brick.basicSlider.navigationDotPosition.underText">
+            <de><![CDATA[Unter Text]]></de>
+            <en><![CDATA[Under text]]></en>
+        </locale>
         <locale name="brick.control.basicSlider.maxImageWidth">
             <de><![CDATA[Maximale Briete des Bildes]]></de>
             <en><![CDATA[Maximum image width]]></en>
diff --git a/src/QUI/Bricks/Controls/Slider/BasicSlider.css b/src/QUI/Bricks/Controls/Slider/BasicSlider.css
index e271132..e1ff313 100644
--- a/src/QUI/Bricks/Controls/Slider/BasicSlider.css
+++ b/src/QUI/Bricks/Controls/Slider/BasicSlider.css
@@ -39,6 +39,11 @@
     flex-direction: row-reverse;
 }
 
+.basic-slider-dots {
+    text-align: center;
+    padding: 0;
+}
+
 .basic-slider-dots li {
     display: inline-block;
     width: 15px;
diff --git a/src/QUI/Bricks/Controls/Slider/BasicSlider.html b/src/QUI/Bricks/Controls/Slider/BasicSlider.html
index 2b18f45..cad298d 100644
--- a/src/QUI/Bricks/Controls/Slider/BasicSlider.html
+++ b/src/QUI/Bricks/Controls/Slider/BasicSlider.html
@@ -14,6 +14,16 @@
     <div class="basic-slider-content" style="align-items: {$textPosition};">
         <div class="basic-slider-content-container">
             {$sliderContent}
+
+            {if $dotsNav && $dotsPosition === 'underText'}
+            <ul class="basic-slider-dots">
+                {foreach from=$images item=Image key=key}
+
+                <li class="basic-slider-dot"></li>
+
+                {/foreach}
+            </ul>
+            {/if}
         </div>
     </div>
 
@@ -30,7 +40,7 @@
             {/foreach}
         </ul>
 
-        {if $dotsNav}
+        {if $dotsNav && $dotsPosition === 'underSlide'}
         <ul class="basic-slider-dots">
             {foreach from=$images item=Image key=key}
 
diff --git a/src/QUI/Bricks/Controls/Slider/BasicSlider.php b/src/QUI/Bricks/Controls/Slider/BasicSlider.php
index d8bca6a..21fccc3 100644
--- a/src/QUI/Bricks/Controls/Slider/BasicSlider.php
+++ b/src/QUI/Bricks/Controls/Slider/BasicSlider.php
@@ -52,6 +52,7 @@ public function getBody()
         $sliderContent = $this->getAttribute('sliderContent');
         $imgLeft       = false;
         $dotsNav       = false;
+        $dotsPosition  = 'underSlide';
 
         if (!$mediaFolder) {
             return '';
@@ -94,7 +95,8 @@ public function getBody()
             $maxImageWidth = intval($this->getAttribute('maxImageWidth'));
         }
 
-        $dotsNav = $this->getAttribute('navigationDotsShow');
+        $dotsNav      = $this->getAttribute('navigationDotsShow');
+        $dotsPosition = $this->getAttribute('navigationDotPosition');
 
         // text position
         switch ($this->getAttribute('textPosition')) {
@@ -119,6 +121,7 @@ public function getBody()
             'maxImageWidth' => $maxImageWidth,
             'textPosition'  => $textPosition,
             'dotsNav'       => $dotsNav,
+            'dotsPosition'  => $dotsPosition,
         ];
 
         $Engine->assign($options);
-- 
GitLab