# 3.3

## 3.3.1


:::info
PHP-Kompatibilität: 8.3 – 8.5

:::

### Erweiterung Core

* **Abschnittsnavigation:** Neuer Custom-Field-Typ *Scroll-Anker*, einheitliche Ausgabe via `__SCROLL_NAVIGATION__` (einzelne Anker ausblendbar, reine HTML-Anker, Barrierefreiheit) – in Inhalten, Auflistungen, Shop-Artikeln und Portlets
* **E-Mail-Einstellungen:** Verwaltung verbessert, inkl. Microsoft-Graph-Konfiguration; SMTP-Versand vereinheitlicht (Ausnahme: localhost)
* **Datenbank utf8mb4 / InnoDB:** Vollständige Umstellung aller Tabellen auf InnoDB und `utf8mb4_general_ci` (Emoji und Sonderzeichen)
* **Berechtigungs-Protokoll:** Änderungen an Berechtigungen werden geloggt
* **Bilder:** Automatische Korrektur der Ausrichtung anhand EXIF-Daten beim Upload
* **Agentisches Browsing:** Bildlinks erhalten zugängliche Namen (`aria-label` / Alt-Text) in Auflistungen, Overview und Suche
* **Benutzer-Custom-Fields:** Zusätzliche Felder für Benutzerkonten (inkl. Zahlfelder und Verwaltungstitel), optional speicherbar in eigenen Spalten (`user_category_id`, `user_external_id`)
* **Portlets:** Custom Fields und Templates für Quicklinks, Shop-Artikel, Events, Inhalt und Auflistungen; Duplizieren weiterer Portlets
* **Shortlinks:** Query-Parameter (z. B. `?param=1`) werden an die Ziel-URL weitergegeben
* **Vorschau:** Beta-Status der Seitenvorschau entfernt
* **Installer:** Installation auf bestehender Datenbank, klarere Systemanforderungen

### Erweiterung Module

* **Veranstaltungen:**
  * **Anmeldungen:** Login, Verwaltungsansichten und Filter im Portlet Events
  * Neuer **Vivenu-Import** (Ticket-Link, Mehrsprachigkeit)
  * Veranstaltungs-Einträge in der XML-Sitemap (sichtbar, sprachabhängig)
  * Optionale CSS-Klassen pro Eintrag (wie bei Auflistungen)
  * Google Maps im Bearbeitungsformular abschaltbar (`use_map`)
  * Filter-Felder mit `<label>` für bessere Zugänglichkeit
  * Einleitung und Beschreibung bei aktivem Filter steuerbar (`option_hide_text_on_filter`)
  * Bildvergrösserung auf der Detailseite abschaltbar
  * Imports in eigene Klassen aufgeteilt (Guidle, CultureValais, Vivenu, extern)
* **Formular:**
  * **Verwaltung stark überarbeitet:** Verlauf mit Status, internem Kommentar, Filter, Detailseite und Statusänderung per AJAX
  * Feld-UI mit Tabs (Inhalt/Konfiguration) und Feldbreite Voll/Halb/Drittel
  * Validierungsregeln mit Sprach-Tabs
  * Neuer Feldtyp **Select2-Mehrfachauswahl**
* **Auflistungen:**
  * Sortierung nach **Suchrelevanz**
  * Custom-Field-Filter: Eintragsanzahl pro Option, Zusammenspiel mit Property-Filter
* **Stellenangebote:**
  * Filter-Optimierungen
* **Projektdownloads:**
  * Upload von Dateien für Benutzer verbessert (Frontend-Ansicht)

### Fehlerbehebung

* **Core:**
  * Login trotz *Under Construction* bzw. deaktiviertem Login war über Mitgliederbereich und `__LOGIN_PANEL__` noch möglich
  * Breadcrumbs: leeres Element am Ende entfernt (Meta-Navigation)
  * Suche: Fehler bei Modulen ohne Sprach-Tabelle (z. B. Weiterleitungs-Tool)
  * Shortlinks: Fix wenn die Sprache nicht existiert
  * Google Maps / Klaro: undefinierte Konstante `_GOOGLE_MAPS_CONSENT` behoben
  * Portlet-Ausgabe (Zonen, Quicklinks, Events, Shop-Artikel) und Scroll-Navigation
* **Auflistungen:**
  * Select-Custom-Fields gaben die falsche Option aus (Versatz um 1)
  * Filter zeigte keine Treffer trotz vorhandener Einträge; Range-Slider startete falsch
  * Casagateway-Import: Bilder inline, virtuelle Tour im Inhalt, Überschriften
* **Veranstaltungen:**
  * Diverse Korrekturen an Import und Verwaltung
* **Formular:**
  * Fehler beim Duplizieren/Kopieren von Formularseiten (fehlende Labels)
  * Fatal Error bei Sprache Niederländisch (fehlende Konstante)
  * Korrekturen an Validierungs- und Empfängerregeln
* **Shop:**
  * 404-Ausgabe bei ungültigen Kategorie- und Property-Filtern
  * Artikel aus Bestellung hinzufügen: Variantenprüfung und klarere Fehlermeldung
* **Schweizer Naturpärke:**
  * Portlet: Angebote nach Sprache
  * Sprachumschalter (inkl. `?offer=`), Cache-Löschen, Tabs
* **Portlets:**
  * Config-Felder und Quicklinks (E-Mail-/Telefon-Links, Ausgabe laut `PORTLET_ZONE_CONFIG`)
  * Portlet-Template konnte nicht gewechselt werden
  * Portlet Inline-Formular: für eingeloggte Benutzer nicht sichtbar; Doppel-Submit verhindert
* **Projektdownloads:**
  * Zugriffsprüfungen für Dokument-Aktionen verbessert

### Hinweise zum Update

| Thema | Aktion |
|-------|--------|
| Datenbank | Update stellt alle Tabellen auf **InnoDB** und **utf8mb4** um – je nach Datenbankgrösse kann das länger dauern |
| Veranstaltungen | Karte (`use_map`) und Imports (z. B. Vivenu) in der Modul-`config.php` prüfen |
| Benutzer | Custom Fields über `USER_SPECIAL_FIELDS` in der Projekt-Config definieren |
| Abschnittsnavigation | Scroll-Anker als Custom Field anlegen und `__SCROLL_NAVIGATION__` im Template ausgeben |


## 3.3.0


:::info
PHP-Kompatibilität: 8.3 – 8.5

:::

### Erweiterung Core

* **PHP 8.5-Kompatibilität:** Umfassende Anpassung von Core und Modulen für PHP 8.5, inkl. Code-Quality-Refactoring und Typdefinitionen im gesamten CMS
* **Neue globale Berechtigungen** für das Verwalten von Einträgen: *Eintrag hinzufügen*, *Eintrag bearbeiten*, *Eintrag löschen* – ergänzend zu den bestehenden seitenbezogenen Rechten, nutzbar in Auflistungen, Events, Shop und weiteren Modulen
* **Globale strukturierte Daten (JSON-LD):** Neues Einstellungsfeld für site-weite schema.org-Daten (z. B. Organization), Ausgabe im `<head>` aller Seiten
* **FTP-Dateimanager entfernt** inkl. zugehöriger Berechtigungen und Einstellungen
* **Link-Formular:** Link-Name-Feld ist wieder für alle Link-Typen sichtbar (interne Seite, E-Mail, Telefon) – unabhängig von der SEO-Erweiterung
* **Fancybox 5 & Tooltipster:** Performance- und Stabilitätsoptimierungen in der öffentlichen und Verwaltungs-Oberfläche
* **PhpSpreadsheet auf Version 2** aktualisiert
* Composer-/Vendor-Updates

### Erweiterung Module

* **Auflistungen:**
  * Neuer **Casagateway-Import** für Immobilien (inkl. Bilder, Links, Custom Fields)
  * Neuer **Abacus Jobportal-Import** für Stelleninserate
  * Verbesserte **Custom-Fields-Filter** (Multiselect mit Klassen, präzisere Filterlogik via `JSON_CONTAINS`, Sichtbarkeitssteuerung)
  * Neue Template-Platzhalter `__LISTING_COUNT__` und `__LISTING_COUNT_LABEL__` auf der Übersicht
  * Zurück-Link: Client-seitige Überschreibung via `document.referrer` (cache-sicher)
* **Portlet Auflistungen:**
  * Multiselect-Custom-Fields mit Klassen (PHP-8-Fix)
* **Schweizer Naturpärke:**
  * Umstellung auf **Fancybox 5** (CMS-Standard), Legacy-Integration entfernt
  * Angebots-IDs normalisiert, Ausgabe der Sub-Tabs angepasst
  * Maximale Länge für Angebotseingaben entfernt
* **Shop:**
  * Meta- und Google-Merchant-Export: Titel werden bereinigt (`strip_tags`)
  * Allgemeine UI-Verbesserungen in der Bestellverwaltung
  * Neue Möglichkeit, die Bestell-Bestätigung an den Kunden erneut zu senden
  * Optimierung im Zahlungsprozess mit Saferpay, falls TWINT-Zahlungen nicht zurückkehren zum Webshop

### Fehlerbehebung

* **Core:**
  * Berechtigungen: Korrekturen für Entwurfsseiten, Spezialseiten und Bild-Fokus
  * Installations-Fixes für PHP 8.5
  * Allgemeine Fehlerbehebungen und Verbesserungen
* **Auflistungen:**
  * 404-Ausgabe bei nicht existierendem Entry-Slug
  * Casagateway-Import: diverse Korrekturen
  * Filter- und Konfigurations-Fixes
* **Schweizer Naturpärke:**
  * Fehler beim Laden des System-Templates behoben
* **Portlet Quicklinks:**
  * Fehler beim Löschen von Links behoben

### Hinweise zum Update

| Thema | Aktion |
|-------|--------|
| PHP-Version | Server auf **PHP 8.5** bringen (mindestens 8.3) |
| Berechtigungen | Neue globale Rechte *Eintrag hinzufügen/bearbeiten/löschen* den Benutzergruppen zuweisen |
| Imports | Casagateway/Abacus nur aktiv, wenn in `config.php` des Auflistungsmoduls konfiguriert |

---

**Documents**

- [3.3](https://indual-workspace.getoutline.com/s/4c380863-264d-4460-a2a9-55f14f3fcf20/doc/33-WIIYw81rKO)
- [3.2](https://indual-workspace.getoutline.com/s/4c380863-264d-4460-a2a9-55f14f3fcf20/doc/32-aIQKtNkVQh)
- [3.1](https://indual-workspace.getoutline.com/s/4c380863-264d-4460-a2a9-55f14f3fcf20/doc/31-8BBGedhZF6)
- [3.0](https://indual-workspace.getoutline.com/s/4c380863-264d-4460-a2a9-55f14f3fcf20/doc/30-kxe5UMQn5e)
- [2.9](https://indual-workspace.getoutline.com/s/4c380863-264d-4460-a2a9-55f14f3fcf20/doc/29-SquilUfxaV)
- [2.8](https://indual-workspace.getoutline.com/s/4c380863-264d-4460-a2a9-55f14f3fcf20/doc/28-oaTZH3MIeo)