From 5febeeaa2f8fd0049464dea3addaf35f54eec4f3 Mon Sep 17 00:00:00 2001 From: qcigano Date: Sun, 2 Aug 2026 23:00:43 +0200 Subject: [PATCH] =?UTF-8?q?Charakter-Geschichtsboxen=20nur=20noch=20f?= =?UTF-8?q?=C3=BCr=20Charaktere=20mit=20echtem=20Produkt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bisher bekam jeder Charakter einer Tier-Familie (z.B. Hase) automatisch seine eigene Story-Box, auch wenn für ihn noch gar kein Produkt existiert. Das wirkte unfertig (z.B. HasiGott und Mama Hase zeigten volle Persönlichkeitstexte, obwohl beide noch keine Produkte haben). Jetzt erscheint die Story-Box nur noch für Charaktere mit mindestens einem zugeordneten Produkt (aktuell also nur HasiDog). Die kompakten Karten darunter (mit Platzhalter-Foto und "Produkte folgen bald") bleiben für alle Charaktere sichtbar, damit die Familie als Ganzes trotzdem gezeigt wird. Co-Authored-By: Claude Sonnet 5 --- .../shop/[kategorie]/[unterkategorie].astro | 30 ++++++++++--------- .../shop/[kategorie]/[unterkategorie].astro | 30 ++++++++++--------- .../shop/[kategorie]/[unterkategorie].astro | 30 ++++++++++--------- .../shop/[kategorie]/[unterkategorie].astro | 30 ++++++++++--------- 4 files changed, 64 insertions(+), 56 deletions(-) diff --git a/src/pages/ch/shop/[kategorie]/[unterkategorie].astro b/src/pages/ch/shop/[kategorie]/[unterkategorie].astro index c3fbd3c..b4155cf 100644 --- a/src/pages/ch/shop/[kategorie]/[unterkategorie].astro +++ b/src/pages/ch/shop/[kategorie]/[unterkategorie].astro @@ -53,20 +53,22 @@ const weitere = alleProdukte.filter((p) => !zugeordneteSlugs.has(p.slug)); <> {/* Die persönlichen Charaktergeschichten stehen als eigene, volle Breite Boxen ÜBER der Kartenreihe — getrennt von den "Shop"-Karten darunter, die nur Foto/Preis/Infos zeigen. */} -
-
- {characterEntries.map(({ char }) => ( -
- {char.vorstellung && {char.vorstellung[lang].split("\n")[0]}} -

{char.name[lang]}

-

{char.vorstellung ? char.vorstellung[lang].split("\n")[1] : ""}

- {char.mehrLink && ( - da → - )} -
- ))} -
-
+ {characterEntries.some(({ product }) => product) && ( +
+
+ {characterEntries.filter(({ product }) => product).map(({ char }) => ( +
+ {char.vorstellung && {char.vorstellung[lang].split("\n")[0]}} +

{char.name[lang]}

+

{char.vorstellung ? char.vorstellung[lang].split("\n")[1] : ""}

+ {char.mehrLink && ( + da → + )} +
+ ))} +
+
+ )} {/* Kartenreihe wie im Shop-Grid — nur Foto, Preis und Kaufinfos, keine Geschichten. */}
diff --git a/src/pages/en/shop/[kategorie]/[unterkategorie].astro b/src/pages/en/shop/[kategorie]/[unterkategorie].astro index fd19c6e..f113dca 100644 --- a/src/pages/en/shop/[kategorie]/[unterkategorie].astro +++ b/src/pages/en/shop/[kategorie]/[unterkategorie].astro @@ -53,20 +53,22 @@ const weitere = alleProdukte.filter((p) => !zugeordneteSlugs.has(p.slug)); <> {/* Die persönlichen Charaktergeschichten stehen als eigene, volle Breite Boxen ÜBER der Kartenreihe — getrennt von den "Shop"-Karten darunter, die nur Foto/Preis/Infos zeigen. */} -
-
- {characterEntries.map(({ char }) => ( -
- {char.vorstellung && {char.vorstellung[lang].split("\n")[0]}} -

{char.name[lang]}

-

{char.vorstellung ? char.vorstellung[lang].split("\n")[1] : ""}

- {char.mehrLink && ( - here → - )} -
- ))} -
-
+ {characterEntries.some(({ product }) => product) && ( +
+
+ {characterEntries.filter(({ product }) => product).map(({ char }) => ( +
+ {char.vorstellung && {char.vorstellung[lang].split("\n")[0]}} +

{char.name[lang]}

+

{char.vorstellung ? char.vorstellung[lang].split("\n")[1] : ""}

+ {char.mehrLink && ( + here → + )} +
+ ))} +
+
+ )} {/* Kartenreihe wie im Shop-Grid — nur Foto, Preis und Kaufinfos, keine Geschichten. */}
diff --git a/src/pages/fr/shop/[kategorie]/[unterkategorie].astro b/src/pages/fr/shop/[kategorie]/[unterkategorie].astro index 6e1ad34..e122caa 100644 --- a/src/pages/fr/shop/[kategorie]/[unterkategorie].astro +++ b/src/pages/fr/shop/[kategorie]/[unterkategorie].astro @@ -53,20 +53,22 @@ const weitere = alleProdukte.filter((p) => !zugeordneteSlugs.has(p.slug)); <> {/* Die persönlichen Charaktergeschichten stehen als eigene, volle Breite Boxen ÜBER der Kartenreihe — getrennt von den "Shop"-Karten darunter, die nur Foto/Preis/Infos zeigen. */} -
-
- {characterEntries.map(({ char }) => ( -
- {char.vorstellung && {char.vorstellung[lang].split("\n")[0]}} -

{char.name[lang]}

-

{char.vorstellung ? char.vorstellung[lang].split("\n")[1] : ""}

- {char.mehrLink && ( - ici → - )} -
- ))} -
-
+ {characterEntries.some(({ product }) => product) && ( +
+
+ {characterEntries.filter(({ product }) => product).map(({ char }) => ( +
+ {char.vorstellung && {char.vorstellung[lang].split("\n")[0]}} +

{char.name[lang]}

+

{char.vorstellung ? char.vorstellung[lang].split("\n")[1] : ""}

+ {char.mehrLink && ( + ici → + )} +
+ ))} +
+
+ )} {/* Kartenreihe wie im Shop-Grid — nur Foto, Preis und Kaufinfos, keine Geschichten. */}
diff --git a/src/pages/shop/[kategorie]/[unterkategorie].astro b/src/pages/shop/[kategorie]/[unterkategorie].astro index 9554610..0984782 100644 --- a/src/pages/shop/[kategorie]/[unterkategorie].astro +++ b/src/pages/shop/[kategorie]/[unterkategorie].astro @@ -53,20 +53,22 @@ const weitere = alleProdukte.filter((p) => !zugeordneteSlugs.has(p.slug)); <> {/* Die persönlichen Charaktergeschichten stehen als eigene, volle Breite Boxen ÜBER der Kartenreihe — getrennt von den "Shop"-Karten darunter, die nur Foto/Preis/Infos zeigen. */} -
-
- {characterEntries.map(({ char }) => ( -
- {char.vorstellung && {char.vorstellung[lang].split("\n")[0]}} -

{char.name[lang]}

-

{char.vorstellung ? char.vorstellung[lang].split("\n")[1] : ""}

- {char.mehrLink && ( - hier → - )} -
- ))} -
-
+ {characterEntries.some(({ product }) => product) && ( +
+
+ {characterEntries.filter(({ product }) => product).map(({ char }) => ( +
+ {char.vorstellung && {char.vorstellung[lang].split("\n")[0]}} +

{char.name[lang]}

+

{char.vorstellung ? char.vorstellung[lang].split("\n")[1] : ""}

+ {char.mehrLink && ( + hier → + )} +
+ ))} +
+
+ )} {/* Kartenreihe wie im Shop-Grid — nur Foto, Preis und Kaufinfos, keine Geschichten. */}