From 3881f82d87dfb933ec1e59161ff3cbc7ba9584ec Mon Sep 17 00:00:00 2001 From: Michael Danielczok <michael@pcsg.de> Date: Thu, 19 Sep 2024 15:55:16 +0200 Subject: [PATCH] fix: standardized and simplified options for cart button click action --- bin/css/mini-basket.css | 1 + bin/css/style.css | 5 +++-- bin/css/variables.css | 1 + bin/javascript/init.js | 2 +- composer.json | 2 +- index.html | 20 +++++++++---------- locale.xml | 32 +++++++++++++++++-------------- settings.xml | 32 +++++++++++++++++++------------ src/QUI/TemplateCologne/Utils.php | 11 ++++------- 9 files changed, 59 insertions(+), 47 deletions(-) diff --git a/bin/css/mini-basket.css b/bin/css/mini-basket.css index 62be613..783dff8 100644 --- a/bin/css/mini-basket.css +++ b/bin/css/mini-basket.css @@ -11,6 +11,7 @@ max-height: calc(100vh - 130px); /* header height + top bar height */ padding: 0 !important; width: 350px; + top: calc(var(--_qui-cologne-header-height, 100px) - 1px) !important; /* -1 because of border width */ } .quiqqer-order-basket-small-container > .qui-control { diff --git a/bin/css/style.css b/bin/css/style.css index a184fee..5eaf9e5 100644 --- a/bin/css/style.css +++ b/bin/css/style.css @@ -747,7 +747,7 @@ a.toTop:before { border-bottom: 1px solid #ddd; box-shadow: 0 0 20px 0 rgba(57, 57, 57, 0); display: flex; - height: 100px; + height: var(--_qui-cologne-header-height, 100px); justify-content: space-between; left: 0; position: relative; @@ -758,8 +758,9 @@ a.toTop:before { } .cologne-header-fixed { + --_qui-cologne-header-height: 60px; + box-shadow: 0 0 20px 0 rgba(57, 57, 57, 0.2); - height: 60px; position: fixed; z-index: 100; /* Because of the search dropdown */ } diff --git a/bin/css/variables.css b/bin/css/variables.css index 47ad80e..434620f 100644 --- a/bin/css/variables.css +++ b/bin/css/variables.css @@ -17,6 +17,7 @@ --bg-primary: #ddd; --bg-secondary: #f5f5f5; + --_qui-cologne-header-height: 100px; /* ecoyn / ecommerce */ --_qui-order-basket-articles-image-width: var(--qui-order-basket-articles-image-width, 100px); diff --git a/bin/javascript/init.js b/bin/javascript/init.js index 80d9273..aa506c1 100644 --- a/bin/javascript/init.js +++ b/bin/javascript/init.js @@ -343,7 +343,7 @@ window.addEvent('domready', function () { 'package/quiqqer/order/bin/frontend/controls/basket/Button' ], function (Basket) { new Basket({ - open : BASKET_OPEN.toInt(), + action : BASKET_ACTION, events: { onCreate: function (Basket) { var BasketNode = Basket.getElm(), diff --git a/composer.json b/composer.json index 5689cd4..dd16d0b 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "quiqqer/core": "^2", "quiqqer/erp": "^3", "quiqqer/products": "^2", - "quiqqer/order": "^2", + "quiqqer/order": "^2.7.7", "quiqqer/product-bricks": "^2", "quiqqer/frontend-users": "^2", "quiqqer/menu": "^3", diff --git a/index.html b/index.html index 055e04b..145eb88 100644 --- a/index.html +++ b/index.html @@ -10,16 +10,16 @@ {$Template->getHeader()} <script> - var BASKET_STYLE = "{$basketStyle}"; - var BASKET_OPEN = "{$basketOpen}"; - var INITAL_BASKET_PRICE = "{$initialBasketPrice}"; - var COUNT_LANGUAGES = "{$countLanguages}"; - var SHOW_CATEGORY_MENU = "{$showCategoryMenu}"; - var REGISTER_URL = "{$registerSiteUrl}"; - var SHOW_MENU_AFTER_SCROLL_POS = "{$showNavAfterScroll}"; // The number of pixels from top which the menu will be displayed. - var SHOW_MENU_SMOOTH = "{$showMenuSmooth}"; // if true menu slides from top (animation) - var SET_MENU_POS_BACK_ON_INIT = !!"{$setMenuPosBackOnInit}"; // if true menu slides from top (animation) - var SCROLL_OFFSET = 80; + const BASKET_STYLE = "{$basketStyle}"; + const BASKET_ACTION = "{$basketAction}"; + const INITAL_BASKET_PRICE = "{$initialBasketPrice}"; + const COUNT_LANGUAGES = "{$countLanguages}"; + const SHOW_CATEGORY_MENU = "{$showCategoryMenu}"; + const REGISTER_URL = "{$registerSiteUrl}"; + const SHOW_MENU_AFTER_SCROLL_POS = "{$showNavAfterScroll}"; // The number of pixels from top which the menu will be displayed. + const SHOW_MENU_SMOOTH = "{$showMenuSmooth}"; // if true menu slides from top (animation) + const SET_MENU_POS_BACK_ON_INIT = !!"{$setMenuPosBackOnInit}"; // if true menu slides from top (animation) + const SCROLL_OFFSET = 80; </script> {fetch template="template/head/styles.html" Template=$Template} diff --git a/locale.xml b/locale.xml index 45a994e..7b129ba 100644 --- a/locale.xml +++ b/locale.xml @@ -509,22 +509,26 @@ <en><![CDATA[If the option ist enabled, the product images are displayed in the shopping basket and order.]]></en> </locale> - <!-- basket open --> - <locale name="settings.shop.basketOpen"> - <de><![CDATA[Aktion bei Klick auf Warenkorb]]></de> - <en><![CDATA[What should happen when the user clicks on the shopping cart?]]></en> - </locale> - <locale name="settings.shop.basketOpen.nothing"> - <de><![CDATA[Bestellprozes nicht öffnen]]></de> - <en><![CDATA[Do not open order process]]></en> + <!-- basket action --> + <locale name="settings.shop.basketAction"> + <de><![CDATA[Aktion bei Klick auf Warenkorb-Icon]]></de> + <en><![CDATA[Shopping card action on click]]></en> + </locale> + <locale name="settings.shop.basketAction.desc"> + <de><![CDATA[Diese Option gilt nur für Desktop Ansicht. Auf mobilen Geräten wird immer zu der Bestellseite geleitet.]]></de> + <en><![CDATA[This option only applies to desktop view. On mobile devices it will always be redirected to the order process page.]]></en> + </locale> + <locale name="settings.shop.basketAction.openSmallBasket"> + <de><![CDATA[Kleinen Warenkorb öffnen]]></de> + <en><![CDATA[Open small basket]]></en> </locale> - <locale name="settings.shop.basketOpen.window"> - <de><![CDATA[Bestellprozes in einem Fenster öffnen]]></de> - <en><![CDATA[Open order process in a popup]]></en> + <locale name="settings.shop.basketAction.openOrderProcessUrl"> + <de><![CDATA[Bestellseite öffnen]]></de> + <en><![CDATA[Open order process page]]></en> </locale> - <locale name="settings.shop.basketOpen.page"> - <de><![CDATA[Zu Bestellprozess-Seite leiten]]></de> - <en><![CDATA[Go to order page]]></en> + <locale name="settings.shop.basketAction.openOrderProcess"> + <de><![CDATA[Bestellung in einem Popup Fenster öffnen]]></de> + <en><![CDATA[Open order process in a popup]]></en> </locale> <!-- hide empty fields --> <locale name="settings.shop.hideEmptyFields"> diff --git a/settings.xml b/settings.xml index 3f0a34b..36dacb1 100644 --- a/settings.xml +++ b/settings.xml @@ -40,9 +40,9 @@ <type><![CDATA[bool]]></type> <defaultvalue>1</defaultvalue> </conf> - <conf name="basketOpen"> - <type><![CDATA[integer]]></type> - <defaultvalue>2</defaultvalue> + <conf name="basketAction"> + <type><![CDATA[string]]></type> + <defaultvalue>openSmallBasket</defaultvalue> </conf> <conf name="hideEmptyFields"> <type><![CDATA[bool]]></type> @@ -454,27 +454,35 @@ </description> </input> - <!-- basket open (nothing order window, order page)--> - <select conf="templateCologne.settings.basketOpen"> + + + + <!-- basket action (openSmallBasket, openOrderProcessUrl, openOrderProcess (qui popup))--> + <select conf="templateCologne.settings.basketAction"> <text> <locale group="quiqqer/template-cologne" - var="settings.shop.basketOpen" + var="settings.shop.basketAction" /> </text> + <description> + <locale group="quiqqer/template-cologne" + var="settings.shop.basketAction.desc" + /> + </description> - <option value="0"> + <option value="openSmallBasket"> <locale group="quiqqer/template-cologne" - var="settings.shop.basketOpen.nothing" + var="settings.shop.basketAction.openSmallBasket" /> </option> - <option value="1"> + <option value="openOrderProcessUrl"> <locale group="quiqqer/template-cologne" - var="settings.shop.basketOpen.window" + var="settings.shop.basketAction.openOrderProcessUrl" /> </option> - <option value="2"> + <option value="openOrderProcess"> <locale group="quiqqer/template-cologne" - var="settings.shop.basketOpen.page" + var="settings.shop.basketAction.openOrderProcess" /> </option> </select> diff --git a/src/QUI/TemplateCologne/Utils.php b/src/QUI/TemplateCologne/Utils.php index bfa1bfa..098a86c 100644 --- a/src/QUI/TemplateCologne/Utils.php +++ b/src/QUI/TemplateCologne/Utils.php @@ -237,13 +237,10 @@ public static function getConfig(array $params): object|array|bool|string } // basket open - $basketOpen = 2; + $basketAction = $Project->getConfig('templateCologne.settings.basketAction'); - switch ($Project->getConfig('templateCologne.settings.basketOpen')) { - case '0': - case '1': - case '2': - $basketOpen = $Project->getConfig('templateCologne.settings.basketOpen'); + if (!in_array($basketAction, ['openSmallBasket', 'openOrderProcessUrl', 'openOrderProcess'])) { + $basketAction = 'openSmallBasket'; } $settingsCSS = include 'settings.css.php'; @@ -355,7 +352,7 @@ public static function getConfig(array $params): object|array|bool|string $config['siteType'] = $siteType; $config['pageCustomClass'] = $pageCustomClass; $config['basketStyle'] = $basketStyle; - $config['basketOpen'] = $basketOpen; + $config['basketAction'] = $basketAction; $config['showCategoryMenu'] = $showCategoryMenu; $config['homeLink'] = $homeLink; $config['homeLinkText'] = $homeLinkText; -- GitLab