Grundlegend umgebaut: eine Seite pro Tier-Familie mit mehreren Charakteren statt einer Seite pro Charakter
Bisher war jeder Charakter (HasiDog, Frieda, Sam, ...) eine eigene Unterkategorie mit eigener Seite. Das passte nicht mehr, sobald eine Familie mehrere Charaktere bekommt (HasiDog, HasiGott, Mama Hase) — die sollten alle auf EINER Seite erscheinen, nicht auf drei getrennten. Neues Modell: - Unterkategorie = die ganze Tier-Familie (z.B. "hase", "kuh", "wal"), nicht mehr ein einzelner Charakter. - Jede Familie hat jetzt ein "characters"-Array (categories.ts, config.yml) — beliebig viele Charaktere, jeder mit eigenem Namen, Vorstellungstext und optionalem "Mehr über mich"-Link. - Produkte bekommen ein neues optionales Feld "charakter", das sie einem bestimmten Charakter innerhalb der Unterkategorie zuordnet (Product. charakter in products.ts + Adminbereich-Feld). - Die Unterkategorie-Seite zeigt jetzt JEDEN Charakter als eigene Box untereinander, mit automatisch abwechselnder Foto-/Text-Seite (1. links, 2. rechts, 3. wieder links, ...). Ein Charakter ohne zugeordnetes Produkt zeigt trotzdem schon seine Box (nur ohne Foto) — die Seite "wächst" mit, sobald neue Charaktere/Produkte dazukommen, für jede Tier-Familie (Hase, Kuh, Wal, Oktopus, Schildkröte, Pinguin). - "Hase" hat jetzt drei Charaktere (HasiDog mit echtem Produkt, HasiGott und Mama Hase als Platzhalter-Boxen). - Unterkategorien-Chips zeigen jetzt sauber die Familiennamen (Kuh, Hase, Wal, ...) statt "Kuh „Frieda"" etc. - Alte, verwaiste /hasidog/-Seite entfernt (war durch die Umstellung kaputt und nirgends mehr verlinkt). Verifiziert per Puppeteer gegen den echten Build: /shop/diy-plushies/hase/ zeigt alle drei Charaktere korrekt alternierend, Ein-Charakter-Familien (Kuh etc.) funktionieren unverändert, Adminbereich lädt ohne Konfigurationsfehler, alte Hase-URLs geben korrekt 404.
This commit is contained in:
+33
-2
@@ -97,7 +97,12 @@ collections:
|
||||
name: unterkategorie
|
||||
widget: string
|
||||
required: false
|
||||
hint: "Interner Code der Unterkategorie eintragen, z.B. kuh-frieda (siehe Bereich Kategorien)"
|
||||
hint: "Interner Code der Unterkategorie eintragen, z.B. hase (siehe Bereich Kategorien)"
|
||||
- label: "Charakter innerhalb der Unterkategorie (optional)"
|
||||
name: charakter
|
||||
widget: string
|
||||
required: false
|
||||
hint: "Nur nötig, wenn die Unterkategorie mehrere Charaktere hat (z.B. 'hase' hat HasiDog, HasiGott, Mama Hase) — dann hier den Charakter-Code eintragen, z.B. hasidog (siehe Bereich Kategorien)."
|
||||
- label: Auszeichnungen
|
||||
name: badges
|
||||
widget: select
|
||||
@@ -174,7 +179,7 @@ collections:
|
||||
required: false
|
||||
summary: "{{fields.name.de}}"
|
||||
fields:
|
||||
- { label: "Interner Code (URL)", name: slug, widget: string }
|
||||
- { label: "Interner Code (URL)", name: slug, widget: string, hint: "z.B. hase — steht für die ganze Tier-Serie, nicht nur einen einzelnen Charakter." }
|
||||
- label: Name
|
||||
name: name
|
||||
widget: object
|
||||
@@ -183,6 +188,32 @@ collections:
|
||||
- { label: Englisch, name: en, widget: string }
|
||||
- { label: "Schweizerdeutsch", name: ch, widget: string }
|
||||
- { label: Französisch, name: fr, widget: string }
|
||||
- label: "Charaktere dieser Serie (z.B. mehrere Hasen-Varianten)"
|
||||
name: characters
|
||||
widget: list
|
||||
required: false
|
||||
summary: "{{fields.name.de}}"
|
||||
hint: "Jeder Charakter bekommt auf der Unterkategorie-Seite seine eigene Box — die Foto-Seite wechselt automatisch ab (1. links, 2. rechts, 3. wieder links, usw.). Trage beim passenden Produkt weiter oben unter 'Charakter innerhalb der Unterkategorie' genau denselben Code ein, damit Foto und Text zusammenfinden."
|
||||
fields:
|
||||
- { label: "Interner Code", name: slug, widget: string, hint: "z.B. hasidog — muss beim Produkt unter 'Charakter' genau so eingetragen werden." }
|
||||
- label: Name
|
||||
name: name
|
||||
widget: object
|
||||
fields:
|
||||
- { label: Deutsch, name: de, widget: string }
|
||||
- { label: Englisch, name: en, widget: string }
|
||||
- { label: "Schweizerdeutsch", name: ch, widget: string }
|
||||
- { label: Französisch, name: fr, widget: string }
|
||||
- label: "Persönliche Vorstellung (1. Zeile 'Hallo, ich bin ...', 2. Zeile Persönlichkeit)"
|
||||
name: vorstellung
|
||||
widget: object
|
||||
required: false
|
||||
fields:
|
||||
- { label: Deutsch, name: de, widget: text }
|
||||
- { label: Englisch, name: en, widget: text }
|
||||
- { label: "Schweizerdeutsch", name: ch, widget: text }
|
||||
- { label: Französisch, name: fr, widget: text }
|
||||
- { label: "Link zu einer externen 'Mehr über mich'-Seite (optional)", name: mehrLink, widget: string, required: false }
|
||||
- label: "Reihenfolge (0 = zuerst)"
|
||||
name: order
|
||||
widget: number
|
||||
|
||||
Reference in New Issue
Block a user