summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordaniel <noreply@maennchen1.de>2026-09-18 08:48:54 +0200
committerdaniel <noreply@maennchen1.de>2026-09-18 08:48:54 +0200
commitacae386f25f9d27a6b7576a019197e7e0b320dc7 (patch)
tree4bd7ea10aa5788b0b4b9374770da0cbeb4b5ffa0
parentdcfb01e514b41f8b09d0a994b3ee9297b0474ecd (diff)
- Feature: GARAN Label im Produkt/Produkttemplate eingeführt
-rw-r--r--views/admin/form/input.phtml1
-rw-r--r--views/css/frontend.css37
-rw-r--r--views/gfx/garan/garan_checkmark.svg11
-rw-r--r--views/gfx/garan/garan_eu.svg22
-rw-r--r--views/gfx/garan/garan_qr.svg50
-rw-r--r--views/gfx/garan/garan_year.svg19
-rw-r--r--views/produkt/addedit_general.phtml24
-rw-r--r--views/produkttemplates/standard.phtml102
8 files changed, 265 insertions, 1 deletions
diff --git a/views/admin/form/input.phtml b/views/admin/form/input.phtml
index e1b17bf..cad903c 100644
--- a/views/admin/form/input.phtml
+++ b/views/admin/form/input.phtml
@@ -29,6 +29,7 @@
?>"
value="<?php echo wpsg_hspc($this->view['field_value']); ?>"
+ <?php echo ((isset($this->view['field_config']['min']))?' min="'.$this->view['field_config']['min'].'" ':''); ?>
id="<?php echo $this->view['field_id']; ?>"
placeholder="<?php echo wpsg_getStr($this->view['field_config']['placeholder']); ?>"
<?php if (wpsg_isTrue($this->view['field_config']['readonly'])) { ?>
diff --git a/views/css/frontend.css b/views/css/frontend.css
index e5f9f3b..49ae1d0 100644
--- a/views/css/frontend.css
+++ b/views/css/frontend.css
@@ -30,6 +30,43 @@ input.wpsg_error { border-color:red !important; border:1px solid red; }
textarea#wpsg_checkout_comment { padding:0.75em 1em; font-family:inherit; }
}
+/* GARAN Label */
+.wpsg_product_garan_wrap { padding:5px 0; margin-bottom:1rem; font-family:'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
+ .wpsg_product_garan { border:1px solid black; display:inline-block; padding:5px 50px 5px 5px; position:relative; height:30px; white-space:nowrap; cursor:pointer; text-decoration:none;
+ & > .years { font-size:30px; height:30px; line-height:30px; font-weight:bold; padding-right:35px; position:relative; border-right:1px solid black;
+ &:after { position:absolute; right:10px; bottom:8px; content:' '; width:16px; height:16px; background-image:url('/wp-content/plugins/wpshopgermany-free/views/gfx/garan/garan_year.svg'); background-size:contain; background-repeat:no-repeat; }
+ }
+ & > .title { padding-left:5px; font-size:22px; font-weight:bold; padding-right:20px; position:relative;
+ &:after { position:absolute; right:0; bottom:2px; content:' '; width:16px; height:16px; background-image:url('/wp-content/plugins/wpshopgermany-free/views/gfx/garan/garan_checkmark.svg'); background-size:contain; background-repeat:no-repeat; }
+ }
+ &:after { position:absolute; right:5px; top:0; content:' '; width:28px; height:40px; background-image:url('/wp-content/plugins/wpshopgermany-free/views/gfx/garan/garan_eu.svg'); background-size:contain; background-repeat:no-repeat; }
+ & > .tooltip { position:absolute; opacity:0; pointer-events:none; top:40px; left:-1px; padding:5px 5px 5px 0; transition:all 0.5s;
+ & > .inner { width:300px; min-height:300px; display:flex; flex-direction:column; gap:5px; background-color:white; padding:5px; border:1px solid black;
+ & > .border { border:1px solid black; display:flex; flex-direction:column; padding:5px;
+ .top { width:100%; border-bottom:2px solid black; padding-bottom:5px; position:relative;
+ & > .title { font-size:50px; font-weight:bold; padding-right:40px; position:relative; display:inline-block; line-height:50px; letter-spacing:1px;
+ &:after { position:absolute; right:0; bottom:5px; content:' '; width:32px; height:32px; background-image:url('/wp-content/plugins/wpshopgermany-free/views/gfx/garan/garan_checkmark.svg'); background-size:contain; background-position:right bottom; background-repeat:no-repeat; }
+ }
+ &:after { position:absolute; right:0; top:-11px; content:' '; width:36px; height:51px; background-image:url('/wp-content/plugins/wpshopgermany-free/views/gfx/garan/garan_eu.svg'); background-size:contain; background-repeat:no-repeat; }
+ }
+ & > .flexline { display:flex; justify-content:space-between; gap:5px; align-items:flex-start; padding:5px 0; font-size:16px; }
+ & > .line { display:flex; justify-content:space-between; gap:5px; align-items:flex-end; padding:5px 0;
+ & > .years { font-size:85px; height:85px; line-height:85px; font-weight:bold; padding-right:60px; position:relative;
+ &:after { position:absolute; right:10px; bottom:8px; content:' '; width:35px; height:35px; background-image:url('/wp-content/plugins/wpshopgermany-free/views/gfx/garan/garan_year.svg'); background-size:contain; background-repeat:no-repeat; }
+ }
+ & > img { transform:translateY(-8px); }
+ }
+ & > .trans_wrap { display:block; white-space:normal; text-align:justify; hyphens:auto; font-size:8px; line-height:1.4;
+ & > span + span:before { content:'|'; padding-right:1px; }
+ strong { font-weight:bold; }
+ }
+ }
+ }
+ }
+ &:hover > .tooltip { opacity:1; pointer-events:all; z-index:1; }
+ }
+}
+
/* Basket Widget */
.wpsg_basket_widget .wpshopgermany_linktokasse { float:right; margin-top:1rem; }
diff --git a/views/gfx/garan/garan_checkmark.svg b/views/gfx/garan/garan_checkmark.svg
new file mode 100644
index 0000000..32e26e6
--- /dev/null
+++ b/views/gfx/garan/garan_checkmark.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg width="6.5299mm" height="4.8577mm" version="1.1" viewBox="0 0 6.5299 4.8577" xmlns="http://www.w3.org/2000/svg">
+ <g transform="translate(82.504 -.17385)">
+ <g transform="matrix(.26458 0 0 .26458 -155.88 -7.3377)">
+ <circle cx="286.5" cy="37.57" r="9.18"/>
+ <path class="cls-3" d="m291.18 43.11s-1.05 1.2-1.41 1.58c-0.25 0.26-0.57 0.73-0.96 0.93-1.02 0.52-1.22 0.5-2.24 0.24-0.43-0.11-0.83-0.43-1.16-0.73l-6.81-6.08c-0.82-0.74-0.27-2.1 0.83-2.06l4.27 0.16c0.52 0.02 1.02 0.23 1.4 0.58l6.09 5.36z" fill="#fff" stroke="#231f20" stroke-miterlimit="10" stroke-width=".5px"/>
+ <path class="cls-3" d="m283.68 43.59 2.04 1.82c1.19 0.84 2.62 0.87 3.66-0.28l12.06-13.48c0.69-0.78 0.19-2.02-0.88-2.14l-2.02-0.24c-0.92-0.11-1.83 0.22-2.44 0.88l-12.42 13.45z" fill="#fff" stroke="#231f20" stroke-miterlimit="10" stroke-width=".5px"/>
+ </g>
+ </g>
+</svg>
diff --git a/views/gfx/garan/garan_eu.svg b/views/gfx/garan/garan_eu.svg
new file mode 100644
index 0000000..d008fec
--- /dev/null
+++ b/views/gfx/garan/garan_eu.svg
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg width="10.226mm" height="14.585mm" version="1.1" viewBox="0 0 10.226 14.585" xmlns="http://www.w3.org/2000/svg">
+ <g transform="translate(-105.07 -27.989)">
+ <path class="cls-6" d="m105.07 27.989v11.808c0 0.52123 0.27517 0.9816 0.67733 1.1351l4.1249 1.5822c0.20108 0.07673 0.41804 0.07937 0.62177 0.0053l4.1143-1.5161c0.40746-0.15081 0.68792-0.61383 0.68792-1.1377v-11.877z" fill="#034ea2" stroke-width=".26458"/>
+ <g transform="matrix(.26458 0 0 .26458 20.037 28.388)" fill="#fff200">
+ <polygon class="cls-7" points="338.29 13.26 339.79 14.34 339.23 16.09 340.71 15.01 342.19 16.09 341.62 14.34 343.13 13.26 341.27 13.26 340.71 11.49 340.14 13.26"/>
+ <polygon class="cls-7" points="330.62 15.32 332.12 16.4 331.56 18.15 333.04 17.07 334.52 18.15 333.96 16.4 335.46 15.32 333.61 15.32 333.04 13.55 332.47 15.32"/>
+ <polygon class="cls-7" points="329.86 20.94 328 20.94 327.43 19.17 326.87 20.94 325.01 20.94 326.52 22.02 325.95 23.77 327.43 22.69 328.92 23.77 328.35 22.02"/>
+ <polygon class="cls-7" points="324.46 29.67 323.9 31.42 325.38 30.34 326.86 31.42 326.3 29.67 327.8 28.59 325.95 28.59 325.38 26.82 324.81 28.6 322.96 28.59"/>
+ <polygon class="cls-7" points="328.35 37.35 329.86 36.27 328 36.27 327.43 34.5 326.87 36.27 325.01 36.27 326.52 37.35 325.95 39.1 327.43 38.02 328.92 39.1"/>
+ <polygon class="cls-7" points="333.97 42.97 335.47 41.89 333.62 41.89 333.05 40.12 332.49 41.89 330.63 41.89 332.14 42.97 331.57 44.72 333.05 43.64 334.53 44.72"/>
+ <polygon class="cls-7" points="341.62 45 343.13 43.92 341.27 43.92 340.71 42.15 340.14 43.93 338.29 43.92 339.79 45 339.23 46.75 340.71 45.67 342.19 46.75"/>
+ <polygon class="cls-7" points="349.28 42.97 350.78 41.89 348.93 41.89 348.36 40.12 347.79 41.89 345.94 41.89 347.44 42.97 346.88 44.72 348.36 43.64 349.84 44.72"/>
+ <polygon class="cls-7" points="354.9 37.35 356.4 36.27 354.55 36.27 353.98 34.5 353.41 36.27 351.56 36.27 353.06 37.35 352.5 39.1 353.98 38.02 355.46 39.1"/>
+ <polygon class="cls-7" points="357.5 31.4 356.93 29.65 358.44 28.57 356.58 28.57 356.01 26.8 355.45 28.57 353.59 28.57 355.1 29.65 354.54 31.4 356.01 30.32"/>
+ <polygon class="cls-7" points="351.56 20.92 353.06 22 352.5 23.74 353.98 22.66 355.46 23.74 354.9 22 356.4 20.92 354.55 20.92 353.98 19.15 353.41 20.92"/>
+ <polygon class="cls-7" points="350.81 15.32 348.95 15.32 348.38 13.55 347.82 15.32 345.96 15.32 347.46 16.4 346.9 18.15 348.39 17.07 349.86 18.15 349.3 16.4"/>
+ </g>
+ <path class="cls-4" d="m109.12 38.107c-0.68792-0.48419-1.1271-1.2462-1.2039-2.0849l-0.11906-1.2912 1.1271-0.51858c0.34131-0.1561 0.70643-0.26194 1.0821-0.2831 0.4789-0.02646 0.94456 0.06085 1.3758 0.25929l1.1774 0.5424-0.0476 0.52917-0.30163-0.02646 0.0291-0.30427-0.9472-0.44715c-0.0291-0.01323-0.0476-0.02117-0.0714-0.03175-0.37836-0.16669-0.78052-0.24077-1.1959-0.21696-0.33602 0.01852-0.66146 0.11377-0.96837 0.254l-0.93663 0.43127 0.0979 1.0795c0.0688 0.75142 0.46037 1.4288 1.0768 1.8653l0.89429 0.63235 0.87577-0.63235c0.52388-0.37042 0.889-0.9181 1.0266-1.5452l0.037-0.1561h-1.9473v-0.30162h2.2781l-0.0159 0.16404c-0.0767 0.83608-0.51593 1.5981-1.2038 2.0849l-1.0583 0.74877-1.0583-0.74877z" fill="#fff" stroke-width=".26458"/>
+ </g>
+</svg>
diff --git a/views/gfx/garan/garan_qr.svg b/views/gfx/garan/garan_qr.svg
new file mode 100644
index 0000000..ce4540a
--- /dev/null
+++ b/views/gfx/garan/garan_qr.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg width="17.563mm" height="17.563mm" version="1.1" viewBox="0 0 17.563 17.563" xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <clipPath id="clippath-2">
+ <path class="cls-11" d="m246.75 84.49v1.79h1.79v-1.79zm-1.79 0v1.79h1.79v-1.79zm-1.79 0v1.79h1.79v-1.79zm-1.8 0v1.79h1.79v-1.79zm-3.59 0v5.38h1.79v-5.38zm-1.79 0v5.38h1.79v-5.38zm-1.8 0v5.38h1.79v-5.38zm-5.38 0v3.59h1.79v-3.59zm-5.38 0v1.79h1.79v-1.79zm-7.18 0v1.79h1.79v-1.79zm-1.79 0v8.97h1.79v-8.97zm25.12 1.79v5.38h1.79v-5.38zm-7.18 0v1.79h1.79v-1.79zm-14.35 0v3.59h1.79v-3.59zm-7.18 0v1.79h1.79v-1.79zm34.09 1.8v5.38h1.79v-5.38zm-3.59 0v1.79h1.79v-1.79zm-14.35 0v1.79h1.79v-1.79zm-1.8 0v1.79h1.79v-1.79zm-1.79 0v7.18h1.79v-7.18zm-1.79 0v3.59h1.79v-3.59zm-1.8 0v1.79h1.79v-1.79zm-7.17 0v1.79h1.79v-1.79zm30.5 1.79v1.79h1.79v-1.79zm-5.39 1.79v3.59h1.79v-3.59zm-3.59 0v3.59h1.79v-3.59zm-1.79 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm-8.97 0v1.79h1.79v-1.79zm-7.17 0v3.59h1.79v-3.59zm34.08 1.8v5.38h1.79v-5.38zm-7.17 0v5.38h1.79v-5.38zm-17.94 0v5.38h1.79v-5.38zm-5.39 0v1.79h1.79v-1.79zm26.92 1.79v1.79h1.79v-1.79zm-7.18 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm-7.17 0v1.79h1.79v-1.79zm-3.59 0v5.38h1.79v-5.38zm-3.59 0v10.76h1.79v-10.76zm26.91 1.8v5.38h1.79v-5.38zm-17.94 0v3.59h1.79v-3.59zm-3.59 0v1.79h1.79v-1.79zm-3.58 0v1.79h1.79v-1.79zm46.64 1.79v3.59h1.79v-3.59zm-8.97 0v5.38h1.79v-5.38zm-1.79 0v3.59h1.79v-3.59zm-7.18 0v1.79h1.79v-1.79zm-7.18 0v1.79h1.79v-1.79zm-5.38 0v5.38h1.79v-5.38zm-1.79 0v3.59h1.79v-3.59zm-1.8 0v10.76h1.79v-10.76zm-17.94 0v1.79h1.79v-1.79zm-8.97 0v3.59h1.79v-3.59zm-1.79 0v1.79h1.79v-1.79zm64.59 1.8v5.38h1.79v-5.38zm-3.59 0v1.79h1.79v-1.79zm-5.38 0v3.59h1.79v-3.59zm-12.56 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm-12.56 0v1.79h1.79v-1.79zm-1.79 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm-16.15 0v1.79h1.79v-1.79zm44.85 1.79v1.79h1.79v-1.79zm-3.58 0v7.18h1.79v-7.18zm-1.8 0v1.79h1.79v-1.79zm-8.97 0v1.79h1.79v-1.79zm-1.79 0v1.79h1.79v-1.79zm-10.77 0v5.38h1.79v-5.38zm-12.56 0v1.79h1.79v-1.79zm-1.79 0v7.18h1.79v-7.18zm-1.79 0v1.79h1.79v-1.79zm-7.18 0v5.38h1.79v-5.38zm61 1.79v3.59h1.79v-3.59zm-3.59 0v8.97h1.79v-8.97zm-5.38 0v1.79h1.79v-1.79zm-3.59 0v8.97h1.79v-8.97zm-10.77 0v7.18h1.79v-7.18zm-7.17 0v3.59h1.79v-3.59zm-5.38 0v3.59h1.79v-3.59zm-3.59 0v7.18h1.79v-7.18zm-5.38 0v1.79h1.79v-1.79zm-3.59 0v3.59h1.79v-3.59zm-10.77 0v5.38h1.79v-5.38zm52.03 1.8v1.79h1.79v-1.79zm-8.97 0v1.79h1.79v-1.79zm-1.79 0v1.79h1.79v-1.79zm-3.59 0v3.59h1.79v-3.59zm-3.59 0v1.79h1.79v-1.79zm-8.97 0v1.79h1.79v-1.79zm-7.18 0v1.79h1.79v-1.79zm-8.97 0v1.79h1.79v-1.79zm-7.17 0v1.79h1.79v-1.79zm59.2 1.79v1.79h1.79v-1.79zm-12.56 0v1.79h1.79v-1.79zm-16.14 0v1.79h1.79v-1.79zm-1.8 0v5.38h1.79v-5.38zm-14.35 0v1.79h1.79v-1.79zm-1.79 0v1.79h1.79v-1.79zm-1.8 0v7.18h1.79v-7.18zm-7.17 0v1.79h1.79v-1.79zm-1.8 0v1.79h1.79v-1.79zm59.21 1.8v3.59h1.79v-3.59zm-5.39 0v1.79h1.79v-1.79zm-5.38 0v7.18h1.79v-7.18zm-10.76 0v1.79h1.79v-1.79zm-23.33 0v1.79h1.79v-1.79zm-7.17 0v1.79h1.79v-1.79zm-1.8 0v1.79h1.79v-1.79zm-7.17 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm62.79 1.79v5.38h1.79v-5.38zm-1.79 0v1.79h1.79v-1.79zm-5.38 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm-7.18 0v8.97h1.79v-8.97zm-5.38 0v5.38h1.79v-5.38zm-3.59 0v10.76h1.79v-10.76zm-1.79 0v5.38h1.79v-5.38zm-5.39 0v3.59h1.79v-3.59zm-1.79 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm-7.17 0v1.79h1.79v-1.79zm43.05 1.79v1.79h1.79v-1.79zm-8.97 0v1.79h1.79v-1.79zm-8.97 0v3.59h1.79v-3.59zm-3.59 0v1.79h1.79v-1.79zm-7.17 0v8.97h1.79v-8.97zm-5.38 0v5.38h1.79v-5.38zm-7.18 0v7.18h1.79v-7.18zm-7.18 0v1.79h1.79v-1.79zm-1.79 0v3.59h1.79v-3.59zm-3.59 0v10.76h1.79v-10.76zm-3.59 0v1.79h1.79v-1.79zm-1.79 0v3.59h1.79v-3.59zm52.03 1.8v1.79h1.79v-1.79zm-5.38 0v1.79h1.79v-1.79zm-19.74 0v3.59h1.79v-3.59zm-3.59 0v1.79h1.79v-1.79zm-1.79 0v5.38h1.79v-5.38zm-1.8 0v1.79h1.79v-1.79zm-7.17 0v1.79h1.79v-1.79zm-8.97 0v3.59h1.79v-3.59zm61 1.79v1.79h1.79v-1.79zm-7.18 0v3.59h1.79v-3.59zm-8.97 0v1.79h1.79v-1.79zm-5.38 0v5.38h1.79v-5.38zm-5.39 0v1.79h1.79v-1.79zm-23.32 0v5.38h1.79v-5.38zm-3.59 0v1.79h1.79v-1.79zm44.86 1.8v3.59h1.79v-3.59zm-1.8 0v5.38h1.79v-5.38zm-1.79 0v3.59h1.79v-3.59zm-1.8 0v3.59h1.79v-3.59zm-10.76 0v7.18h1.79v-7.18zm-5.38 0v1.79h1.79v-1.79zm-5.39 0v1.79h1.79v-1.79zm-8.97 0v1.79h1.79v-1.79zm-3.58 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm-5.38 0v1.79h1.79v-1.79zm-5.39 0v1.79h1.79v-1.79zm-1.79 0v3.59h1.79v-3.59zm64.59 1.79v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm-1.8 0v1.79h1.79v-1.79zm-10.76 0v1.79h1.79v-1.79zm-7.18 0v1.79h1.79v-1.79zm-14.35 0v1.79h1.79v-1.79zm-1.79 0v3.59h1.79v-3.59zm-14.36 0v1.79h1.79v-1.79zm-1.79 0v1.79h1.79v-1.79zm37.68 1.79v1.79h1.79v-1.79zm-14.36 0v5.38h1.79v-5.38zm-8.97 0v1.79h1.79v-1.79zm-5.38 0v3.59h1.79v-3.59zm-10.76 0v5.38h1.79v-5.38zm-3.59 0v3.59h1.79v-3.59zm-1.8 0v3.59h1.79v-3.59zm55.62 1.8v1.79h1.79v-1.79zm-5.38 0v3.59h1.79v-3.59zm-1.8 0v1.79h1.79v-1.79zm-7.17 0v1.79h1.79v-1.79zm-1.8 0v1.79h1.79v-1.79zm-3.59 0v3.59h1.79v-3.59zm-1.79 0v10.76h1.79v-10.76zm-5.38 0v3.59h1.79v-3.59zm-1.8 0v1.79h1.79v-1.79zm-8.97 0v3.59h1.79v-3.59zm-3.58 0v3.59h1.79v-3.59zm-1.8 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm-10.76 0v1.79h1.79v-1.79zm64.59 1.79v3.59h1.79v-3.59zm-1.8 0v3.59h1.79v-3.59zm-3.59 0v1.79h1.79v-1.79zm-5.38 0v1.79h1.79v-1.79zm-5.38 0v3.59h1.79v-3.59zm-3.59 0v1.79h1.79v-1.79zm-17.94 0v3.59h1.79v-3.59zm-3.59 0v1.79h1.79v-1.79zm-10.76 0v1.79h1.79v-1.79zm-7.18 0v1.79h1.79v-1.79zm55.62 1.8v1.79h1.79v-1.79zm-3.59 0v16.15h1.79v-16.15zm-10.76 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm-8.97 0v1.79h1.79v-1.79zm-5.39 0v16.15h1.79v-16.15zm-3.58 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm-10.77 0v1.79h1.79v-1.79zm-8.97 0v1.79h1.79v-1.79zm57.41 1.79v1.79h1.79v-1.79zm-5.38 0v1.79h1.79v-1.79zm-3.59 0v19.73h1.79v-19.73zm-17.94 0v5.38h1.79v-5.38zm-14.35 0v7.18h1.79v-7.18zm-1.79 0v5.38h1.79v-5.38zm-1.8 0v3.59h1.79v-3.59zm-5.38 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm59.21 1.79v1.79h1.79v-1.79zm-3.59 0v3.59h1.79v-3.59zm-5.38 0v5.38h1.79v-5.38zm-3.59 0v1.79h1.79v-1.79zm-5.38 0v3.59h1.79v-3.59zm-5.39 0v3.59h1.79v-3.59zm-3.59 0v7.18h1.79v-7.18zm-3.58 0v1.79h1.79v-1.79zm-3.59 0v5.38h1.79v-5.38zm-5.38 0v5.38h1.79v-5.38zm-5.39 0v1.79h1.79v-1.79zm-8.97 0v1.79h1.79v-1.79zm-7.17 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm62.79 1.8v5.38h1.79v-5.38zm-17.94 0v3.59h1.79v-3.59zm-5.38 0v1.79h1.79v-1.79zm-12.56 0v8.97h1.79v-8.97zm-3.59 0v5.38h1.79v-5.38zm-1.79 0v3.59h1.79v-3.59zm-8.97 0v3.59h1.79v-3.59zm52.03 1.79v1.79h1.79v-1.79zm-10.77 0v1.79h1.79v-1.79zm-1.79 0v1.79h1.79v-1.79zm-17.94 0v10.76h1.79v-10.76zm-14.36 0v1.79h1.79v-1.79zm-5.38 0v3.59h1.79v-3.59zm-3.59 0v1.79h1.79v-1.79zm-1.79 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm55.62 1.8v1.79h1.79v-1.79zm-12.56 0v1.79h1.79v-1.79zm-7.18 0v5.38h1.79v-5.38zm-1.79 0v1.79h1.79v-1.79zm-3.59 0v7.18h1.79v-7.18zm23.32 1.79v1.79h1.79v-1.79zm-5.38 0v1.79h1.79v-1.79zm-7.17 0v3.59h1.79v-3.59zm-3.59 0v3.59h1.79v-3.59zm-10.77 0v1.79h1.79v-1.79zm-10.76 0v3.59h1.79v-3.59zm-1.8 0v3.59h1.79v-3.59zm-1.79 0v3.59h1.79v-3.59zm44.85 1.79v1.79h1.79v-1.79zm-1.79 0v1.79h1.79v-1.79zm-12.56 0v8.97h1.79v-8.97zm-3.59 0v1.79h1.79v-1.79zm-7.18 0v5.38h1.79v-5.38zm-7.17 0v1.79h1.79v-1.79zm-5.38 0v1.79h1.79v-1.79zm-1.8 0v1.79h1.79v-1.79zm32.3 1.8v3.59h1.79v-3.59zm-1.8 0v8.97h1.79v-8.97zm-1.79 0v3.59h1.79v-3.59zm-35.88 0v3.59h1.79v-3.59zm48.44 1.79v1.79h1.79v-1.79zm-5.39 0v5.38h1.79v-5.38zm-12.55 0v1.79h1.79v-1.79zm-1.8 0v1.79h1.79v-1.79zm-1.79 0v1.79h1.79v-1.79zm-1.8 0v1.79h1.79v-1.79zm-10.76 0v1.79h1.79v-1.79zm-3.59 0v3.59h1.79v-3.59zm-1.79 0v1.79h1.79v-1.79zm-5.39 0v1.79h1.79v-1.79zm-1.79 0v7.18h1.79v-7.18zm39.47 1.8v1.79h1.79v-1.79zm-17.94 0v5.38h1.79v-5.38zm-3.59 0v3.59h1.79v-3.59zm-3.59 0v1.79h1.79v-1.79zm-3.59 0v3.59h1.79v-3.59zm-5.38 0v1.79h1.79v-1.79zm32.3 1.79v3.59h1.79v-3.59zm-8.97 0v3.59h1.79v-3.59zm-3.59 0v3.59h1.79v-3.59zm-1.8 0v3.59h1.79v-3.59zm-16.14 0v3.59h1.79v-3.59zm-3.59 0v3.59h1.79v-3.59zm-1.8 0v1.79h1.79v-1.79zm-5.38 0v3.59h1.79v-3.59zm50.24 1.8v1.79h1.79v-1.79zm-1.8 0v1.79h1.79v-1.79zm-1.79 0v1.79h1.79v-1.79zm-3.59 0v1.79h1.79v-1.79zm-23.32 0v1.79h1.79v-1.79zm-1.8 0v1.79h1.79v-1.79z"/>
+ </clipPath>
+ <clipPath id="clippath-3">
+ <path class="cls-11" d="m196.52 84.49v12.56h12.56v-12.56zm1.79 1.79h8.97v8.97h-8.97z"/>
+ </clipPath>
+ <clipPath id="clippath-4">
+ <rect class="cls-11" x="200.11" y="88.08" width="5.38" height="5.38"/>
+ </clipPath>
+ <clipPath id="clippath-5">
+ <path class="cls-11" d="m262.9 84.49h-12.56v12.56h12.56zm-1.79 1.79v8.97h-8.97v-8.97z"/>
+ </clipPath>
+ <clipPath id="clippath-6">
+ <rect class="cls-11" x="253.93" y="88.08" width="5.38" height="5.38"/>
+ </clipPath>
+ <clipPath id="clippath-7">
+ <path class="cls-11" d="m196.52 150.87h12.56v-12.56h-12.56zm1.79-1.79v-8.97h8.97v8.97z"/>
+ </clipPath>
+ <clipPath id="clippath-8">
+ <rect class="cls-11" x="200.11" y="141.9" width="5.38" height="5.38"/>
+ </clipPath>
+ </defs>
+ <g transform="translate(-94.055 -97.525)">
+ <g class="cls-20" transform="matrix(.26458 0 0 .26458 42.059 75.171)" clip-path="url(#clippath-2)">
+ <rect class="cls-18" x="192.33" y="80.3" width="74.75" height="74.75" fill="#010101"/>
+ </g>
+ <g class="cls-16" transform="matrix(.26458 0 0 .26458 42.059 75.171)" clip-path="url(#clippath-3)">
+ <rect class="cls-18" x="196.52" y="84.49" width="12.56" height="12.56" fill="#010101"/>
+ </g>
+ <g class="cls-6" transform="matrix(.26458 0 0 .26458 42.059 75.171)" clip-path="url(#clippath-4)">
+ <rect class="cls-18" x="200.11" y="88.08" width="5.38" height="5.38" fill="#010101"/>
+ </g>
+ <g class="cls-14" transform="matrix(.26458 0 0 .26458 42.059 75.171)" clip-path="url(#clippath-5)">
+ <rect class="cls-18" x="250.34" y="84.49" width="12.56" height="12.56" fill="#010101"/>
+ </g>
+ <g class="cls-1" transform="matrix(.26458 0 0 .26458 42.059 75.171)" clip-path="url(#clippath-6)">
+ <rect class="cls-18" x="253.93" y="88.08" width="5.38" height="5.38" fill="#010101"/>
+ </g>
+ <g class="cls-2" transform="matrix(.26458 0 0 .26458 42.059 75.171)" clip-path="url(#clippath-7)">
+ <rect class="cls-18" x="196.52" y="138.31" width="12.56" height="12.56" fill="#010101"/>
+ </g>
+ <g class="cls-15" transform="matrix(.26458 0 0 .26458 42.059 75.171)" clip-path="url(#clippath-8)">
+ <rect class="cls-18" x="200.11" y="141.9" width="5.38" height="5.38" fill="#010101"/>
+ </g>
+ </g>
+</svg>
diff --git a/views/gfx/garan/garan_year.svg b/views/gfx/garan/garan_year.svg
new file mode 100644
index 0000000..b8a6b64
--- /dev/null
+++ b/views/gfx/garan/garan_year.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg width="3.7571mm" height="3.6698mm" version="1.1" viewBox="0 0 3.7571 3.6698" xmlns="http://www.w3.org/2000/svg">
+ <g transform="translate(-37.452 -48.774)">
+ <g transform="matrix(.26458 0 0 .26458 18.767 40.05)">
+ <g stroke="#231f20" stroke-miterlimit="10" stroke-width=".5px">
+ <rect class="cls-5" x="70.87" y="34.81" width="13.7" height="11.78" rx="1.66" ry="1.66" fill="none"/>
+ <rect class="cls-3" x="74.42" y="33.22" width="1.62" height="3.22" rx=".54" ry=".54" fill="#fff"/>
+ <rect class="cls-3" x="79.38" y="33.22" width="1.62" height="3.22" rx=".54" ry=".54" fill="#fff"/>
+ <line class="cls-5" x1="70.87" x2="84.56" y1="38.02" y2="38.02" fill="none"/>
+ </g>
+ <g fill="#231f20">
+ <path class="cls-2" d="m73.71 44.59c-0.33 0-0.62-0.06-0.88-0.17-0.25-0.11-0.45-0.27-0.6-0.47s-0.22-0.43-0.22-0.69h1.05c0 0.09 0.03 0.18 0.09 0.25s0.13 0.13 0.23 0.17 0.21 0.06 0.33 0.06 0.23-0.02 0.33-0.07 0.17-0.11 0.22-0.18c0.05-0.08 0.08-0.17 0.08-0.27s-0.03-0.19-0.09-0.27-0.14-0.14-0.25-0.18-0.24-0.07-0.38-0.07h-0.42v-0.74h0.42c0.13 0 0.24-0.02 0.34-0.06s0.17-0.1 0.23-0.18 0.08-0.17 0.08-0.27-0.02-0.18-0.07-0.26-0.11-0.13-0.2-0.17c-0.08-0.04-0.18-0.06-0.29-0.06-0.12 0-0.22 0.02-0.31 0.06s-0.17 0.1-0.22 0.17c-0.06 0.07-0.08 0.16-0.09 0.26h-1c0-0.26 0.07-0.49 0.22-0.68 0.14-0.2 0.33-0.35 0.58-0.46 0.24-0.11 0.52-0.17 0.83-0.17s0.58 0.05 0.82 0.16 0.42 0.26 0.55 0.44c0.13 0.19 0.2 0.4 0.2 0.63 0 0.24-0.08 0.45-0.24 0.6-0.16 0.16-0.37 0.26-0.62 0.29v0.03c0.34 0.04 0.59 0.15 0.76 0.33s0.26 0.4 0.25 0.67c0 0.25-0.07 0.47-0.22 0.67-0.15 0.19-0.35 0.35-0.61 0.46s-0.56 0.17-0.9 0.17z"/>
+ <path class="cls-2" d="m77.77 44.59c-0.24 0-0.46-0.04-0.68-0.12s-0.41-0.2-0.58-0.37-0.3-0.39-0.4-0.66-0.15-0.61-0.14-1c0-0.36 0.04-0.68 0.13-0.96s0.21-0.53 0.37-0.72c0.16-0.2 0.35-0.35 0.58-0.46 0.22-0.1 0.47-0.16 0.75-0.16 0.3 0 0.57 0.06 0.8 0.18s0.42 0.28 0.56 0.47c0.14 0.2 0.22 0.42 0.25 0.66h-1.03c-0.03-0.14-0.1-0.24-0.2-0.31s-0.23-0.11-0.37-0.11c-0.27 0-0.46 0.11-0.59 0.34s-0.2 0.54-0.2 0.92h0.03c0.06-0.13 0.14-0.24 0.26-0.33s0.24-0.16 0.38-0.21 0.3-0.08 0.46-0.08c0.26 0 0.49 0.06 0.69 0.18s0.35 0.28 0.47 0.49 0.17 0.45 0.17 0.71c0 0.3-0.07 0.57-0.21 0.8s-0.34 0.41-0.59 0.54-0.54 0.19-0.87 0.19zm-0.01-0.81c0.13 0 0.24-0.03 0.34-0.09s0.18-0.14 0.24-0.25c0.06-0.1 0.09-0.22 0.08-0.35 0-0.13-0.03-0.25-0.08-0.35s-0.14-0.18-0.24-0.25-0.22-0.09-0.35-0.09c-0.09 0-0.18 0.02-0.26 0.05s-0.15 0.08-0.21 0.15-0.11 0.14-0.14 0.22-0.05 0.17-0.05 0.27c0 0.13 0.03 0.24 0.09 0.35 0.06 0.1 0.14 0.19 0.24 0.25s0.21 0.09 0.34 0.09z"/>
+ <path class="cls-2" d="m81.7 44.59c-0.32 0-0.6-0.06-0.84-0.17-0.25-0.11-0.44-0.27-0.58-0.47s-0.22-0.43-0.22-0.69h1.02c0 0.16 0.07 0.29 0.19 0.38s0.27 0.14 0.43 0.14c0.13 0 0.25-0.03 0.35-0.09s0.18-0.14 0.24-0.24 0.09-0.23 0.08-0.36c0-0.14-0.03-0.26-0.09-0.37-0.06-0.1-0.14-0.19-0.24-0.24-0.1-0.06-0.22-0.09-0.35-0.09s-0.24 0.03-0.36 0.08c-0.11 0.06-0.2 0.13-0.25 0.23l-0.92-0.17 0.19-2.34h2.78v0.84h-1.92l-0.1 1.02h0.03c0.07-0.12 0.19-0.22 0.35-0.3s0.34-0.12 0.55-0.12c0.26 0 0.49 0.06 0.69 0.18s0.36 0.29 0.48 0.5 0.18 0.46 0.18 0.73c0 0.3-0.07 0.56-0.21 0.79s-0.34 0.41-0.59 0.54-0.55 0.2-0.88 0.2z"/>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/views/produkt/addedit_general.phtml b/views/produkt/addedit_general.phtml
index 0a5bcc2..dabfb6d 100644
--- a/views/produkt/addedit_general.phtml
+++ b/views/produkt/addedit_general.phtml
@@ -84,8 +84,30 @@
<?php if (defined('STO_PATH')) $arSelect['-1'] = __('Aus Kommentarbewertung', 'wpsg'); ?>
<?php echo wpsg_drawForm_Select('rating', __('Bewertungspunkte', 'wpsg'), $arSelect, wpsg_getInt($this->view['data']['rating'])); ?>
<?php } ?>
-
+
<?php $this->callMods('produkt_edit_allgemein', array(&$this->view['data'])); ?>
+
+ <?php echo wpsg_drawForm_Checkbox('garan', __('GARAN-Gewährleistungslabel', 'wpsg'), intval($this->view['data']['garan']??0) === 1, ['id' => 'wpsg_garan_checkbox']); ?>
+ <div id="wpsg_garan_layer" style="display:none;">
+ <?php echo wpsg_drawForm_Input('garan_years', __('GARAN-Gewährleistungsjahre', 'wpsg'), $this->view['data']['garan_years']??'', ['type' => 'number', 'min' => 2]); ?>
+ <?php echo wpsg_drawForm_Input('garan_brand', __('GARAN-Marke/Markenzeichen', 'wpsg'), $this->view['data']['garan_brand']??'', []); ?>
+ <?php echo wpsg_drawForm_Input('garan_model', __('GARAN-Modellnummer', 'wpsg'), $this->view['data']['garan_model']??'', []); ?>
+ </div>
+ <script>
+
+ const el_checkbox = document.getElementById('wpsg_garan_checkbox');
+ const el_layer = document.getElementById('wpsg_garan_layer');
+
+ el_checkbox.addEventListener('change', () => {
+
+ if (el_checkbox.checked) el_layer.style.display = 'block';
+ else el_layer.style.display = 'none';
+
+ });
+
+ el_checkbox.dispatchEvent(new Event('change'));
+
+ </script>
<?php echo wpsg_drawForm_AdminboxEnd(); ?>
</div>
diff --git a/views/produkttemplates/standard.phtml b/views/produkttemplates/standard.phtml
index bf8a4d3..4bffb91 100644
--- a/views/produkttemplates/standard.phtml
+++ b/views/produkttemplates/standard.phtml
@@ -312,6 +312,108 @@
<?php /* Varianten ENDE */ ?>
<?php $this->callMods('product_bottom', array(&$this->view['data']['product_key'], $this->getTemplateIndex())); ?>
+
+ <?php if ($oProduct->isGARAN()) { ?>
+
+ <div class="wpsg_product_garan_wrap">
+ <a href="#" class="wpsg_product_garan">
+ <span class="years"><?php echo $oProduct->getGARANYears(); ?></span>
+ <span class="title">GARAN</span>
+ <span class="tooltip">
+ <span class="inner">
+ <span class="border">
+ <span class="top">
+ <span class="title">GARAN</span>
+ </span>
+ <span class="flexline">
+ <span><?php echo \esc_html($oProduct->getGARANBrand()); ?></span>
+ <span><?php echo \esc_html($oProduct->getGARANModel()); ?></span>
+ </span>
+ <span class="line">
+ <span class="years"><?php echo $oProduct->getGARANYears(); ?></span>
+ <img src="<?php echo wpsg_ShopController::getShop()->getRessourceURL('gfx/garan/garan_qr.svg'); ?>" alt="GARAN QR Code" />
+ </span>
+ </span>
+ <span class="border">
+ <span class="trans_wrap">
+ <?php foreach ([
+ ['BG', 'Гаранция от производителя в години'],
+ ['CS', 'Záruka výrobce v letech'],
+ ['DA', 'Producentgarantiens varighed i år'],
+ ['DE', 'Herstellergarantie in Jahren'],
+ ['EL', 'Εγγύηση παραγωγού σε έτη'],
+ ['EN', 'Producer guarantee in years'],
+ ['ES', 'Garantía del productor en años'],
+ ['ET', 'Tootja garantii aastates'],
+ ['FI', 'Tuottajan takuu vuosina'],
+ ['FR', 'Garantie du producteur en années'],
+ ['GA', 'Ráthaíocht an táirgeora de réir blianta'],
+ ['HR', 'Jamstvo proizvođača u godinama'],
+ ['HU', 'Gyártói jótállás években'],
+ ['IT', 'Garanzia del produttore in anni'],
+ ['LT', 'Gamintojo garantija metais'],
+ ['LV', 'Ražotāja garantija gados'],
+ ['MT', 'Garanzija tal-produttur fi snin'],
+ ['NL', 'Producentengarantie in jaren'],
+ ['PL', 'Gwarancja producenta w latach'],
+ ['PT', 'Garantia do produtor em anos'],
+ ['RO', 'Garanția producătorului în ani'],
+ ['SK', 'Záruka výrobcu v rokoch'],
+ ['SL', 'Garancija proizvajalca v letih'],
+ ['SV', 'Tillverkarens garanti i antal år'],
+ ] as $t) { ?>
+ <span>
+ <strong><?php echo $t[0]; ?></strong>
+ <span><?php echo $t[1]; ?></span>
+ </span>
+ <?php } ?>
+ </span>
+ </span>
+ </span>
+ </span>
+ </a>
+ </div>
+ <style lang="css">
+
+ .wpsg_product_garan_wrap { padding:5px 0; margin-bottom:1rem; font-family:'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
+ .wpsg_product_garan { border:1px solid black; display:inline-block; padding:5px 50px 5px 5px; position:relative; height:30px; white-space:nowrap; cursor:pointer; text-decoration:none;
+ & > .years { font-size:30px; height:30px; line-height:30px; font-weight:bold; padding-right:35px; position:relative; border-right:1px solid black;
+ &:after { position:absolute; right:10px; bottom:8px; content:' '; width:16px; height:16px; background-image:url('/wp-content/plugins/wpshopgermany-free/views/gfx/garan/garan_year.svg'); background-size:contain; background-repeat:no-repeat; }
+ }
+ & > .title { padding-left:5px; font-size:22px; font-weight:bold; padding-right:20px; position:relative;
+ &:after { position:absolute; right:0; bottom:2px; content:' '; width:16px; height:16px; background-image:url('/wp-content/plugins/wpshopgermany-free/views/gfx/garan/garan_checkmark.svg'); background-size:contain; background-repeat:no-repeat; }
+ }
+ &:after { position:absolute; right:5px; top:0; content:' '; width:28px; height:40px; background-image:url('/wp-content/plugins/wpshopgermany-free/views/gfx/garan/garan_eu.svg'); background-size:contain; background-repeat:no-repeat; }
+ & > .tooltip { position:absolute; opacity:0; pointer-events:none; top:40px; left:-1px; padding:5px 5px 5px 0; transition:all 0.5s;
+ & > .inner { width:300px; min-height:300px; display:flex; flex-direction:column; gap:5px; background-color:white; padding:5px; border:1px solid black;
+ & > .border { border:1px solid black; display:flex; flex-direction:column; padding:5px;
+ .top { width:100%; border-bottom:2px solid black; padding-bottom:5px; position:relative;
+ & > .title { font-size:50px; font-weight:bold; padding-right:40px; position:relative; display:inline-block; line-height:50px; letter-spacing:1px;
+ &:after { position:absolute; right:0; bottom:5px; content:' '; width:32px; height:32px; background-image:url('/wp-content/plugins/wpshopgermany-free/views/gfx/garan/garan_checkmark.svg'); background-size:contain; background-position:right bottom; background-repeat:no-repeat; }
+ }
+ &:after { position:absolute; right:0; top:-11px; content:' '; width:36px; height:51px; background-image:url('/wp-content/plugins/wpshopgermany-free/views/gfx/garan/garan_eu.svg'); background-size:contain; background-repeat:no-repeat; }
+ }
+ & > .flexline { display:flex; justify-content:space-between; gap:5px; align-items:flex-start; padding:5px 0; font-size:16px; }
+ & > .line { display:flex; justify-content:space-between; gap:5px; align-items:flex-end; padding:5px 0;
+ & > .years { font-size:85px; height:85px; line-height:85px; font-weight:bold; padding-right:60px; position:relative;
+ &:after { position:absolute; right:10px; bottom:8px; content:' '; width:35px; height:35px; background-image:url('/wp-content/plugins/wpshopgermany-free/views/gfx/garan/garan_year.svg'); background-size:contain; background-repeat:no-repeat; }
+ }
+ & > img { transform:translateY(-8px); }
+ }
+ & > .trans_wrap { display:block; white-space:normal; text-align:justify; hyphens:auto; font-size:8px; line-height:1.4;
+ & > span + span:before { content:'|'; padding-right:1px; }
+ strong { font-weight:bold; }
+ }
+ }
+ }
+ }
+ &:hover > .tooltip { opacity:1; pointer-events:all; z-index:1; }
+ }
+ }
+
+ </style>
+
+ <?php } ?>
<div class="wpsg_product_buttonarea">
<div class="wpsg_product_buttons_add_basket">