Aqua Planer Entwicklung

Versionsübersicht & Änderungsverlauf

Hier findest du alle dokumentierten Erweiterungen, Verbesserungen und Fehlerbehebungen des Aqua Planers.

Aktuelle Version v2026.07.14 Veröffentlicht am 26.07.2026

Version 2026.07.14

Aktuell

Aufgeräumte Modul- und Dateistruktur

  • Wasserwechsel-Funktionen wurden vollständig unter `waterchange/` zusammengeführt.
  • Wasserwerte-Funktionen wurden unter `water-values/` zusammengeführt.
  • Der bisher großgeschriebene Ordner `Filter/` wurde auf die einheitliche Schreibweise `filter/` umgestellt.
  • Die Design-Umschaltung liegt nun als interne Aktion unter `actions/`.
  • Öffentliche Informationsseiten wurden unter `public/seo/` einsortiert, behalten aber ihre bisherigen, bereits indexierten URLs.
  • Veraltete Root-Weiterleitungen für Dashboard und SMTP-Test wurden durch zentrale Kompatibilitätsregeln ersetzt.
  • Technische Anleitungen und ältere Update-Dateilisten wurden unter `docs/` geordnet.

Sichere Kompatibilität

  • Alte Wasserwechsel-, Wasserwerte-, Filter-, Dashboard-, Testmail- und Design-URLs bleiben über `.htaccess` funktionsfähig.
  • Bestehende POST-Formulare verlieren bei einer alten Adresse keine Formulardaten, weil die Kompatibilität serverintern erfolgt.
  • Sämtliche internen Links und Rücksprünge verwenden die neue Modulstruktur.
  • Die bereits bei Google bekannten SEO-Adressen bleiben unverändert.

Aufräumen im Adminbereich

  • Neue Seite „Admin → Dateistruktur“ zeigt alle noch vorhandenen alten Dateien und die zugehörigen neuen Ziele.
  • Alte Dateien werden erst entfernt, nachdem die jeweilige neue Zieldatei vorhanden ist.
  • Die Bereinigung ist ausschließlich als Administrator, per POST und mit CSRF-Schutz möglich.
  • Aquarium-Bilder, lokale Konfigurationen, Datenbankinhalte und unbekannte Dateien werden nicht gelöscht.
  • Ein rotes Admin-Ausrufezeichen bleibt sichtbar, solange die einmalige Dateibereinigung aussteht.

Update-Paket

  • Für dieses Update ist keine Datenbankmigration erforderlich.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben vom Update ausgeschlossen.
  • ZIP-Datei und oberster Ordner tragen denselben Namen.

Version 2026.07.13

Korrektur der ersten Admin-Datenbankübernahme

  • Die Bestandsprüfung verwendet nicht mehr `information_schema`, weil vorhandene Tabellen auf einzelnen Hosting-Konfigurationen dadurch fälschlich als fehlend erkannt wurden.
  • Die Grundtabellen werden nun direkt über die aktive Aqua-Planer-Datenbank geprüft.
  • Fehlende Tabellen für den Designmodus und die Forum-Benachrichtigungen werden beim erneuten Ausführen automatisch und sicher ergänzt.
  • Bereits vorhandene Benutzer erhalten dabei weiterhin die empfohlenen Forum-Benachrichtigungseinstellungen.
  • Eine zuvor fehlgeschlagene Übernahme aus Version 2026.07.12 kann direkt im Adminbereich erneut ausgeführt werden; phpMyAdmin ist dafür nicht erforderlich.
  • Erfolgreich ausgeführte Installationen der ersten Prüffassung werden über eine freigegebene alte Prüfsumme weiterhin korrekt als installiert erkannt.

Darstellung im Adminbereich

  • Der Hinweis „Datenbank-Update verfügbar“ besitzt jetzt eine deutlich gestaltete Schaltfläche statt eines einfachen unterstrichenen Textlinks.
  • Die Schaltfläche ist auch im grauen Design und auf kleinen Bildschirmen gut sichtbar.

Update-Paket

  • Für dieses Korrekturupdate ist kein manueller SQL-Import erforderlich.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben vom Update ausgeschlossen.
  • ZIP-Datei und oberster Ordner tragen denselben Namen.

Version 2026.07.12

Datenbank-Updates direkt im Adminbereich

  • Ausstehende Datenbankänderungen werden Administratoren künftig direkt in der Hauptnavigation mit einem roten Ausrufezeichen angezeigt.
  • Auf der Admin-Startseite erscheint bei Bedarf ein deutlicher Hinweis „Datenbank-Update verfügbar“.
  • Neue Seite „Admin → Datenbank-Updates“ mit Beschreibung, Status, Ausführungsdauer und Fehlermeldungen jeder Migration.
  • Ausstehende Migrationen können einzeln oder gesammelt direkt über den Adminbereich ausgeführt werden; phpMyAdmin ist für zukünftige Aqua-Planer-Migrationen nicht mehr erforderlich.
  • Die Ausführung ist ausschließlich für angemeldete Administratoren, per POST-Anfrage und mit CSRF-Schutz möglich.

Sichere und nachvollziehbare Ausführung

  • Die neue Tabelle `app_migrations` speichert Kennung, Version, Prüfsumme, Status, ausführenden Administrator, Laufzeit und eventuelle Fehlermeldungen.
  • Erfolgreiche Migrationen werden nicht erneut ausgeführt, auch wenn die zugehörige Datei auf dem Server erhalten bleibt.
  • Eine Datenbanksperre verhindert, dass zwei Administratoren gleichzeitig dieselbe Migration starten.
  • Nachträglich veränderte, bereits ausgeführte Migrationsdateien werden erkannt und aus Sicherheitsgründen blockiert.
  • Direkter Webzugriff auf `app/migrations` ist gesperrt.
  • Das erste verfügbare Update prüft und übernimmt den bereits installierten Datenbankstand bis Version 2026.07.11.

Update-Paket

  • Für dieses Update ist kein manueller SQL-Import erforderlich.
  • Beim ersten Aufruf durch einen Administrator wird ausschließlich die technische Protokolltabelle `app_migrations` automatisch angelegt.
  • Anschließend wird die einmalige Übernahme des bisherigen Datenbankstands über „Admin → Datenbank-Updates“ bestätigt.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben vom Update ausgeschlossen.
  • ZIP-Datei und oberster Ordner tragen denselben Namen.

Version 2026.07.11

Forum-Abonnements und E-Mail-Benachrichtigungen

  • Benutzer können öffentliche Forumthemen direkt auf der Themenseite abonnieren und das Abonnement dort wieder beenden.
  • Beim Erstellen eines neuen Themas und beim Schreiben einer Antwort erscheint eine individuell änderbare Benachrichtigungs-Checkbox.
  • Die Vorauswahl richtet sich nach der persönlichen Einstellung im Benutzerkonto und ist standardmäßig aktiviert.
  • Eigene Beiträge lösen keine E-Mail an den Verfasser aus.
  • Pro Abonnent wird nur eine E-Mail versendet, bis das betreffende Thema erneut besucht wurde; weitere Antworten erzeugen in dieser Zeit keine zusätzlichen Nachrichten.
  • Die Benachrichtigung enthält Thema, antwortenden Benutzer, einen kurzen Textausschnitt, einen direkten Link zum neuen Beitrag und einen sicheren Link zum Beenden des Abonnements.
  • Ein fehlgeschlagener E-Mail-Versand blockiert niemals die Veröffentlichung der Antwort und wird im Server-Fehlerprotokoll sowie in einem technischen Benachrichtigungsprotokoll vermerkt.

Einstellungen im Benutzerkonto

  • Unter „Konto → Forum-Benachrichtigungen“ können Forum-E-Mails grundsätzlich ein- oder ausgeschaltet werden.
  • Die automatische Vorauswahl für eigene Themen und beantwortete Themen kann getrennt gesteuert werden.
  • Alle abonnierten Themen werden mit letzter Aktivität aufgelistet und können einzeln oder vollständig abbestellt werden.

Datenbank und Sicherheit

  • Neue Tabellen `forum_user_preferences`, `forum_subscriptions` und `forum_notification_log` speichern Voreinstellungen, Themenabonnements und Versandstatus.
  • Bestehende Benutzer erhalten beim Import die empfohlenen Standardwerte „E-Mail aktiv“ und „automatisch abonnieren“.
  • Abonnements verwenden eindeutige, zufällige Abmeldetokens; der E-Mail-Link zeigt zunächst eine Bestätigungsseite und verändert bei einem normalen Seitenaufruf noch keine Daten.
  • Alle Änderungen innerhalb der Website erfolgen per POST mit CSRF-Schutz.
  • Die Abmeldeseite ist für Suchmaschinen auf `noindex, nofollow` gesetzt.

Update-Paket

  • Für dieses Update ist die SQL-Migration `sql/2026.07.11-forum-benachrichtigungen.sql` erforderlich.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben vom Update ausgeschlossen.
  • ZIP-Datei und oberster Ordner tragen denselben Namen.

Version 2026.07.10

Dunklerer grauer Designmodus

  • Der grau-dunkle Designmodus wurde eine gut sichtbare Stufe dunkler abgestimmt, ohne zu einem schwarzen Nachtmodus zu werden.
  • Seitenhintergrund, Karten, Formulare, Listen und innere Flächen verwenden nun kräftigere Grauwerte mit weiterhin gut lesbarem Kontrast.
  • Farbige Schaltflächen, Statusmeldungen, Warnungen und Forum-Kategorieüberschriften behalten ihre Farben.
  • Die Vorschau im Benutzerkonto wurde an den neuen Grauton angepasst.

Schlankere Hauptnavigation

  • Der Menüpunkt „Aquarium anlegen“ wurde aus der Hauptnavigation entfernt.
  • Neue Aquarien können weiterhin direkt über das Dashboard angelegt werden.
  • Auch im Wartungsmodus wird kein unnötiger Platzhalter für diesen Menüpunkt mehr angezeigt.

Kompaktere Forumübersicht

  • Kategorieüberschriften wurden in Höhe, Schriftgröße und Innenabstand verkleinert.
  • Unterforumzeilen verwenden kleinere Symbole, geringere Abstände und kompaktere Statistik- und Aktivitätsbereiche.
  • Die Darstellung bleibt auf Tablets und Smartphones responsiv und gut bedienbar.

Update-Paket

  • Für dieses Update ist keine Datenbankmigration erforderlich.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben vom Update ausgeschlossen.
  • ZIP-Datei und oberster Ordner tragen denselben Namen.

Version 2026.07.9

Korrektur des Designumschalters

  • Der Designumschalter wird für jeden angemeldeten Benutzer immer sichtbar in der Hauptnavigation ausgegeben und nicht mehr durch eine vorgeschaltete Tabellenprüfung ausgeblendet.
  • Im Benutzerkonto wurde zusätzlich ein deutlich sichtbarer Bereich „Darstellung“ mit direkter Auswahl zwischen hellem und grauem Design ergänzt.
  • Die Tabellenabfragen verwenden nun ausdrücklich den konfigurierten Datenbanknamen.
  • Session und Cookie dienen als robuster Fallback, während die vorhandene Tabelle weiterhin für die geräteübergreifende Speicherung verwendet wird.
  • Der Umschalter kann jetzt auch einen konkreten Zielmodus setzen, statt ausschließlich zwischen beiden Zuständen umzuschalten.

Kompakte Ticketfilter

  • Die bisher weiterhin groß wirkende Filterkarte wurde durch eine flache Filterleiste ersetzt.
  • Überschrift, Suche, Status, Kategorie und Aktionen stehen auf großen Bildschirmen in einer einzigen kompakten Zeile.
  • Eingabefelder und Schaltflächen wurden niedriger und platzsparender gestaltet.
  • Auf kleinen Bildschirmen bleibt die Bedienung durch kontrolliertes Umbrechen erhalten.

Update-Paket

  • Für dieses Korrekturupdate ist keine weitere SQL-Migration erforderlich.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben vom Update ausgeschlossen.
  • ZIP-Datei und oberster Ordner tragen denselben Namen.

Version 2026.07.8

Persönlicher Designmodus

  • Für angemeldete Benutzer wurde ein Umschalter zwischen dem bisherigen hellen Design und einem grau-dunklen, bewusst nicht schwarzen Design ergänzt.
  • Der Umschalter befindet sich direkt in der Hauptnavigation und zeigt abhängig vom aktuellen Zustand „Graues Design“ beziehungsweise „Helles Design“ an.
  • Die gewählte Darstellung wird benutzerspezifisch in der Datenbank gespeichert und gilt dadurch nach erneutem Login sowie auf anderen Geräten weiter.
  • Farbige Schaltflächen, Statusmeldungen, Forum-Kategorieüberschriften und Warnhinweise behalten ihre bisherigen Farben.
  • Karten, Formulare, Listen, Forumbeiträge, Dashboard-Module, Galerieelemente und weitere helle Flächen wurden für den grauen Modus abgestimmt.
  • Vor dem Import der SQL-Datei bleibt die Website ohne Fehler im hellen Design; der Umschalter wird erst bei vorhandener Einstellungstabelle angezeigt.
  • Der Wechsel erfolgt ausschließlich per POST, mit CSRF-Schutz und einer geprüften internen Rücksprungadresse.

Kompaktere Support-Ticketfilter

  • Der bisher großflächige Filterbereich wurde zu einer flachen, platzsparenden Filterleiste umgebaut.
  • Suche, Status, Kategorie und Aktionen stehen auf großen Bildschirmen in einer gemeinsamen Zeile.
  • Auf Tablets und Smartphones ordnen sich die Felder automatisch in zwei beziehungsweise eine Spalte ein.
  • Auswahltexte wurden lesbarer formuliert, beispielsweise „In Bearbeitung“ statt „in_bearbeitung“.
  • Bei aktiven Filtern ist zusätzlich ein kompakter Schnelllink zum vollständigen Löschen der Filter sichtbar.

Datenbank und Systemprüfung

  • Neue Tabelle `user_theme_preferences` speichert ausschließlich die Designwahl eines Benutzers.
  • Die Tabelle verwendet `utf8mb4_unicode_ci` und wird über einen Fremdschlüssel mit `users.id` verbunden.
  • Die Admin-Datenbankprüfung kontrolliert jetzt zusätzlich diese neue Beziehung.

Update-Paket

  • Die SQL-Datei `sql/2026.07.8-designmodus.sql` muss einmal importiert werden.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben vom Update ausgeschlossen.
  • ZIP-Datei und oberster Ordner tragen denselben Namen.

Version 2026.07.7

Support-Ticket-Übersicht

  • Die vier großflächigen Statistik-Karten wurden durch kompakte Statusfelder ersetzt.
  • Gesamtzahl, offene, in Bearbeitung befindliche und erledigte Tickets werden nun platzsparend in der Form „Status: Anzahl“ dargestellt.
  • Die Anzahl wird zur schnelleren Erfassung als kleines farblich passendes Kennzeichen angezeigt.
  • Auf kleinen Bildschirmen brechen die Statusfelder automatisch in zwei beziehungsweise eine Spalte um.

Update-Paket

  • Für dieses Update ist keine Datenbankmigration erforderlich.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben vom Update ausgeschlossen.
  • ZIP-Datei und oberster Ordner tragen denselben Namen.

Version 2026.07.6

Support-Tickets

  • In der Admin-Ticketliste einen direkten Button „Ticket löschen“ neben „Ticket ansehen“ ergänzt.
  • Der Löschbutton ist zusätzlich in der Detailansicht eines Tickets verfügbar.
  • Vor dem dauerhaften Löschen erscheint eine deutliche Sicherheitsabfrage.
  • Tickets können ausschließlich von Administratoren, per POST-Anfrage und mit gültigem CSRF-Token gelöscht werden.
  • Nach dem Löschen bleibt ein zuvor gesetzter Such-, Status- oder Kategoriefilter erhalten.
  • Bereits gelöschte oder ungültige Ticket-IDs werden kontrolliert behandelt und führen nicht zu einem Datenbankfehler.

Update-Paket

  • Für dieses Update ist keine Datenbankmigration erforderlich.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben vom Update ausgeschlossen.
  • ZIP-Datei und oberster Ordner tragen denselben Namen.

Version 2026.07.5

Suchmaschinen und Sitemap

  • Dynamische Forum-Sitemap unter `/forum/sitemap.xml` ergänzt.
  • Öffentliche Unterforen und Themen werden automatisch aus der Datenbank in die Sitemap aufgenommen.
  • `lastmod` wird aus der letzten Änderung beziehungsweise der letzten Antwort ermittelt.
  • Die `robots.txt` verweist jetzt sowohl auf die allgemeine Sitemap als auch auf die Forum-Sitemap.
  • Forum-Adressen wurden aus der statischen Sitemap entfernt, damit es keine doppelte Pflege gibt.
  • Im Forum-Adminbereich kann die aktuelle Forum-Sitemap direkt geöffnet und kontrolliert werden.

Strukturierte Daten

  • Öffentliche Themen erhalten `DiscussionForumPosting`-Markup mit Autor, Veröffentlichungszeit, vollständigem Beitragstext, Antworten, Antwortzahl und Aufrufzahl.
  • Mehrseitige Themen kennzeichnen die erste Themenseite als Hauptadresse und enthalten auf Folgeseiten nur die dort sichtbaren Antworten vollständig.
  • Forum-Startseite, Unterforen, Themen und Regeln erhalten `BreadcrumbList`-Markup.
  • Öffentliche Forumübersichten erhalten ergänzende `CollectionPage`-Daten.
  • Allgemeine Open-Graph-Metadaten für Seitentitel, Beschreibung und kanonische URL ergänzt.

Sprechende Forum-Adressen

  • Unterforen verwenden künftig Adressen wie `/forum/unterforum/wasserwerte/`.
  • Themen verwenden künftig Adressen wie `/forum/thema/15/weisse-punkte-bei-neonsalmlern/`.
  • Forum-Regeln sind künftig unter `/forum/regeln/` erreichbar.
  • Das Formular für neue Themen verwendet `/forum/neues-thema/unterforum-slug/`.
  • Alte PHP-Adressen bleiben erreichbar und werden dauerhaft auf die neue kanonische Adresse umgeleitet.
  • Ungültige Seitenzahlen und `page=1` werden auf eine eindeutige kanonische Adresse normalisiert.

Indexierungssteuerung

  • Login- und Registrierungsseiten werden mit `noindex, follow` gekennzeichnet.
  • Schreib-, Verwaltungs- und nicht öffentliche Forumseiten bleiben von der Indexierung ausgeschlossen.
  • Themenbeschreibungen werden automatisch aus dem ersten sichtbaren Beitrag erstellt und auf eine sinnvolle Länge gekürzt.

Update-Paket

  • Für dieses Update ist keine Datenbankmigration erforderlich.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben vom Update ausgeschlossen.
  • ZIP-Datei und oberster Ordner tragen denselben Namen.

Version 2026.07.4

Verwaltung der Forum-Regeln

  • Gespeicherte Regelversionen können im Adminbereich direkt bearbeitet werden.
  • Inaktive Regelversionen können nach einer Sicherheitsabfrage dauerhaft gelöscht werden.
  • Die aktive Regelversion ist gegen versehentliches Löschen geschützt; vor dem Löschen muss zuerst eine andere Fassung aktiviert werden.
  • Beim Löschen einer inaktiven Version werden ausschließlich die zu genau dieser Fassung gehörenden alten Zustimmungen entfernt.
  • Wird ein Regeltext bearbeitet, werden bisherige Zustimmungen zu dieser Fassung zurückgesetzt, damit niemand einer nachträglich veränderten Version irrtümlich als bereits zugestimmt gilt.
  • Bei Bearbeitung der aktiven Fassung müssen alle Benutzer die geänderten Regeln vor ihrem nächsten Beitrag erneut akzeptieren.
  • Die vorgeschlagene Standardbezeichnung im Formular lautet nun „Verhaltensregeln für das Aqua-Planer Forum“.

Sicherheit und Update-Paket

  • Bearbeiten, Aktivieren und Löschen bleiben auf Administratoren beschränkt und sind mit CSRF-Schutz sowie Datenbanktransaktionen abgesichert.
  • Für dieses Update ist keine Datenbankmigration erforderlich.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben vom Update ausgeschlossen.
  • ZIP-Datei und oberster Ordner tragen denselben Namen.

Version 2026.07.3

Forum-Schreibfunktionen

  • Angemeldete und per E-Mail bestätigte Benutzer können nach Annahme der aktuellen Forum-Regeln neue Themen erstellen.
  • Antworten können direkt unter einem offenen Thema verfasst und veröffentlicht werden.
  • Der erste Beitrag eines neuen Themas und das Thema selbst werden gemeinsam in einer Datenbanktransaktion gespeichert.
  • Neue Antworten aktualisieren automatisch die letzte Aktivität des Themas und leiten zum veröffentlichten Beitrag weiter.
  • Unterforumseiten zeigen abhängig vom Kontostatus direkt „Neues Thema erstellen“, Login oder Regelannahme an.
  • Die Forum-Startseite zeigt angemeldeten Benutzern, ob ihr Konto für das Schreiben freigeschaltet ist.
  • Themenaufrufe werden pro Sitzung höchstens einmal innerhalb von 30 Minuten gezählt.

Forum-Regeln

  • Aktive Forum-Regeln können direkt auf der öffentlichen Regelseite verbindlich akzeptiert werden.
  • Zustimmungen werden mit Benutzer, Regelversion und Zeitpunkt in `forum_rule_acceptances` gespeichert.
  • Wird im Adminbereich eine neue Regelversion aktiviert, ist vor dem nächsten Beitrag eine erneute Zustimmung genau zu dieser Version erforderlich.
  • Bereits akzeptierte Regelstände bleiben zur späteren Nachvollziehbarkeit erhalten.

Sicherheit und Missbrauchsschutz

  • Vor jeder Schreibaktion werden Anmeldung, Kontostatus, E-Mail-Bestätigung, aktuelle Regelannahme sowie Sperrstatus von Unterforum und Thema erneut serverseitig geprüft.
  • Themen- und Antwortformulare sind mit CSRF-Schutz, Längenbegrenzungen, Honeypot und Mindest-Ausfüllzeit abgesichert.
  • Ein Benutzer kann höchstens alle 60 Sekunden ein neues Thema und höchstens alle 20 Sekunden einen neuen Beitrag veröffentlichen.
  • Direkter HTML-Code wird weiterhin vollständig maskiert und nicht ausgeführt.
  • Gleichzeitige Schließungen eines Themas werden durch eine erneute Prüfung innerhalb der Datenbanktransaktion berücksichtigt.

Anmeldung und Bedienung

  • Forum-Loginlinks übergeben ein geprüftes internes Rücksprungziel.
  • Nach erfolgreicher Anmeldung kehrt der Benutzer zur ursprünglich aufgerufenen Forumseite zurück.
  • Gäste können öffentliche Inhalte weiterhin ohne Anmeldung lesen, aber keine Themen oder Antworten erstellen.

Update-Paket

  • Für dieses Update ist keine Datenbankmigration erforderlich; die bereits vorhandenen Forum-Tabellen werden verwendet.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben vom Update ausgeschlossen.
  • ZIP-Datei und oberster Ordner tragen denselben Namen.

Version 2026.07.2

Forum-Bedienung

  • Sichtbares Leerzeichen zwischen „Angemeldet als“ und dem Benutzernamen dauerhaft sichergestellt.
  • Für angemeldete Administratoren einen direkten Button „Forum verwalten“ unterhalb des Benutzerhinweises ergänzt.
  • Der Schnellzugriff führt direkt in die Forumverwaltung; von dort bleibt der vorhandene Rückweg zum öffentlichen Forum verfügbar.
  • Darstellung des neuen Admin-Schnellzugriffs für Desktop und Mobilgeräte ergänzt.

Update-Paket

  • Oberster Ordner im ZIP-Paket trägt ab dieser Version denselben Namen wie die ZIP-Datei.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben weiterhin vom Update ausgeschlossen.
  • Für dieses Update ist keine Datenbankänderung erforderlich.

Version 2026.07.1

Versionierung

  • Versionsschema von semantischen Sprüngen auf das übersichtliche Kalenderformat `JJJJ.MM.RELEASE` umgestellt.
  • Frühere Versionen der Reihe `2.x` bleiben unverändert im Änderungsverlauf erhalten.
  • Dokumentation der Versionspflege und Update-Dateinamen an das neue Schema angepasst.

Forum-Grundlage

  • Öffentliche Forum-Startseite ohne Loginpflicht mit Kategorien, Unterforen, Themenzahlen, Beitragszahlen und letzter Aktivität umgesetzt.
  • Öffentliche Unterforum- und Themenansichten mit Seitennavigation, Breadcrumbs und vorbereiteter Anzeige von Bearbeitungshinweisen ergänzt.
  • Gemeinsame Anmeldung mit dem bestehenden Aqua-Planer-Benutzerkonto vorbereitet; eine zweite Registrierung ist nicht erforderlich.
  • Öffentliche Forum-Regelseite mit versionierten Regelständen ergänzt.
  • Forum-Link für nicht angemeldete Besucher in die Hauptnavigation aufgenommen.

Administration

  • Eigenen Adminbereich unter `admin/forum/` ergänzt.
  • Kategorien können erstellt, bearbeitet, sortiert, aktiviert, deaktiviert und sicher gelöscht werden.
  • Unterforen können Kategorien zugeordnet, erstellt, bearbeitet, sortiert, gesperrt und sicher gelöscht werden.
  • Versionierte Forum-Regeln können erstellt und gezielt als aktuelle Fassung veröffentlicht werden.
  • Forum-Übersicht mit Anzahl der Kategorien, Unterforen, Themen und Beiträge ergänzt.

Datenbank

  • Neue Tabellen für Kategorien, Unterforen, Themen, Beiträge, Regelversionen und Regelzustimmungen vorbereitet.
  • Alle neuen Tabellen verwenden `utf8mb4_unicode_ci` und sind über Fremdschlüssel mit dem vorhandenen Benutzersystem verbunden.
  • Migration `sql/2026.07.1-forum-grundstruktur.sql` und schreibgeschützte Kontrollabfrage ergänzt.

Sicherheit

  • Schreibfunktionen für normale Benutzer bleiben in dieser ersten Forum-Version bewusst deaktiviert.
  • Sämtliche Änderungen in der Forumverwaltung sind auf Administratoren beschränkt und mit CSRF-Schutz abgesichert.
  • Kategorien mit Unterforen und Unterforen mit Themen können nicht versehentlich gelöscht werden.
  • Beiträge werden bei der Ausgabe vollständig maskiert; direktes HTML wird nicht ausgeführt.
  • Forumseiten zeigen vor dem SQL-Import einen kontrollierten Einrichtungsstatus statt eines Datenbankfehlers.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben außerhalb des Update-Pakets.

Suchmaschinen

  • Individuelle Seitentitel, Beschreibungen, Canonical-URLs und Indexierungssteuerung für Forum, Unterforen, Themen und Regeln ergänzt.
  • Forum-Inhalte sind für nicht angemeldete Besucher lesbar und damit grundsätzlich für Suchmaschinen erreichbar.
  • Sprechende Slugs für Kategorien, Unterforen und Themen in der Datenbankstruktur vorbereitet.

Version 2.3.0

Hinzugefügt

  • Vollständige CO2-Historie mit Zusammenfassung, Durchschnittsintervall, Bearbeitung, Löschung und Seitennavigation ergänzt.
  • Sichere zentrale Modulsteuerung über `aquarium/update-module-order.php` ergänzt.
  • Vorbereitende Forum-Startseite unter `forum/index.php` mit direkter Nutzung des vorhandenen Benutzerkontos ergänzt.

Behoben

  • Vier bisher leere PHP-Dateien mit funktionalen Weiterleitungen beziehungsweise einer echten Implementierung ersetzt.
  • Fünf Rücksprung-Links auf die nicht vorhandene Datei `/aquarium.php` korrigiert.
  • Fehlerhaften Forum-Link auf die nicht vorhandene Datei `forum/auto_login.php` korrigiert.
  • Falschen Verweis auf `favicon-32.png` an den tatsächlich vorhandenen Dateinamen angepasst.
  • Seitentitel und Suchmaschinensteuerung für Forum und CO2-Historie ergänzt.

Sicherheit

  • Verschieben sowie Ein- und Ausklappen von Aquarium-Modulen von verändernden GET-Anfragen auf POST mit CSRF-Schutz umgestellt.
  • Aquarium-Zugehörigkeit und erlaubte Modulschlüssel werden vor jeder Moduländerung geprüft.
  • Alte GET-Endpunkte verändern keine Daten mehr und leiten nur noch zur Aquariumansicht zurück.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben außerhalb des Update-Pakets.

Technisch

  • Navigation und statische interne Zielpfade automatisiert auf nicht vorhandene Dateien geprüft.
  • Alle zuvor leeren PHP-Dateien enthalten jetzt ausführbaren, kontrollierten Code.
  • Für dieses Update ist keine Datenbankänderung erforderlich.

Version 2.2.4

Datenbank

  • Sechs verwaiste Fütterungsdatensätze werden vor der Bereinigung vollständig in zwei separaten Sicherungstabellen archiviert.
  • Neun Fremdschlüsselspalten an die vorhandenen `UNSIGNED`-Primärschlüssel von Benutzern und Aquarien angeglichen.
  • 19 fehlende Fremdschlüssel für Bilder, Modulreihenfolge, Düngung, Fütterung, Beleuchtung und Support-Antworten ergänzt.
  • Leere, nicht mehr verwendete Tabelle `aquarium_module_positions` entfernt.
  • Beim Löschen eines Aquariums werden die zugehörigen Bilddateien nach erfolgreicher Datenbanktransaktion ebenfalls vom Server entfernt.

Hinzugefügt

  • Migrationsskript `sql/2.2.4-fremdschluessel-migration.sql` ergänzt.
  • Schreibgeschützte Anzeige der gesicherten Fütterungsdaten über `sql/2.2.4-sicherungsdaten-anzeigen.sql` ergänzt.
  • Admin-Datenbankprüfung zeigt nach der Migration den vollständigen Abschlussstatus und vorhandene Migrationssicherungen an.

Sicherheit

  • Ungültige Datensätze werden nicht ungesichert gelöscht. Die Originalzeilen bleiben in dauerhaften Sicherungstabellen erhalten.
  • Neue Fremdschlüssel verhindern künftig verwaiste Datensätze und bereinigen abhängige Daten kontrolliert über `CASCADE` beziehungsweise `SET NULL`.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben außerhalb des Update-Pakets.

Technisch

  • Alle SQL-Befehle verwenden vollständig qualifizierte Tabellenbezeichnungen für die Datenbank `db313112x3795045`.
  • Die Migration benötigt keine vorbereiteten Anweisungen und verändert den Datenbankstandard nicht.

Version 2.2.3

Behoben

  • MySQL-Fehler `#1044` beim Tabellenimport behoben, wenn phpMyAdmin den Import im Kontext von `information_schema` ausführt.
  • Abhängigkeit von `USE`, `ALTER DATABASE` und direkten Kontrollabfragen gegen `information_schema` entfernt.
  • Alle 20 Tabellen werden jetzt mit vollständig qualifiziertem Datenbank- und Tabellennamen angesprochen.

Technisch

  • Das neue Skript `sql/2.2.3-utf8mb4-tabellenmigration.sql` ändert ausschließlich die Tabellenkollationen.
  • Der Datenbankstandard wird auf Shared-Hosting-Systemen mit eingeschränkten Rechten bewusst nicht verändert.
  • Bereits erfolgreich umgestellte Tabellen dürfen erneut verarbeitet werden; fachliche Datensätze werden nicht gelöscht.

Sicherheit

  • `app/config/config.php` und `app/config/mail.local.php` bleiben außerhalb des Update-Pakets.

Version 2.2.2

Behoben

  • MySQL-Fehler `#1295` bei der utf8mb4-Migration behoben.
  • Nicht unterstützte dynamische `PREPARE`-Anweisung aus der Migration entfernt.
  • Datenbankstandard wird nun direkt und kompatibel für `db313112x3795045` geändert.
  • Fehlerhafte Migrationsdatei aus Version 2.2.1 durch eine korrigierte Fassung ersetzt.

Hinzugefügt

  • Wiederholbar ausführbares Reparaturskript `sql/2.2.2-utf8mb4-reparatur.sql` ergänzt.
  • Abschlusskontrollen für Tabellenkollationen und Datenbankstandard ergänzt.

Sicherheit

  • Die Migration löscht keine Tabellen oder fachlichen Datensätze.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben außerhalb des Update-Pakets.

Technisch

  • Bereits erfolgreich konvertierte Tabellen können erneut verarbeitet werden, ohne Datensätze zu entfernen.
  • Die Migration ist auf die in der bereitgestellten Sicherung verwendete MySQL-Datenbank `db313112x3795045` abgestimmt.

Version 2.2.1

Geändert

  • Standard-Zeichensatz der Datenbank auf `utf8mb4` umgestellt.
  • Standard-Kollation der Datenbank auf `utf8mb4_unicode_ci` vereinheitlicht.
  • 20 bestehende Tabellen von `utf8mb3_general_ci` auf `utf8mb4_unicode_ci` migriert.
  • Sichere SQL-Migration mit anschließender Kontrollabfrage ergänzt.
  • Dokumentierte Notfall-Rücksetzung für den unmittelbaren Fehlerfall ergänzt.

Sicherheit

  • Direkten Webzugriff auf Dateien im Verzeichnis `sql` gesperrt.
  • Migration verändert keine fachlichen Datensätze und löscht keine Tabellen oder Zeilen.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben außerhalb des Update-Pakets.

Technisch

  • Die Anwendung nutzte für PDO-Verbindungen bereits `utf8mb4`; Datenbankverbindung und Tabellenstruktur sind nun einheitlich.
  • Grundlage für internationale Zeichen, Emojis und das spätere Forum geschaffen.
  • Fremdschlüssel und mögliche Altlasten bleiben bewusst einem separaten Migrationsschritt vorbehalten.

Version 2.2.0

Hinzugefügt

  • Schreibgeschützte Datenbankprüfung im Adminbereich ergänzt.
  • Übersicht über Datenbankserver, Standard-Zeichensatz, Tabellen und Kollationen ergänzt.
  • Live-Prüfung für fehlende Fremdschlüssel und unpassende Spaltentypen ergänzt.
  • Live-Zählung verwaister Datensätze für alle geplanten neuen Beziehungen ergänzt.
  • Prüfung der alten Tabelle `aquarium_module_positions` ergänzt.
  • Zusätzliches SQL-Prüfskript für phpMyAdmin unter `sql/2.2.0-datenbank-pruefung.sql` ergänzt.

Sicherheit

  • Die neue Datenbankprüfung ist ausschließlich für Administratoren erreichbar.
  • Die Prüfung arbeitet nur lesend und verändert weder Struktur noch Datensätze.
  • Die eigentliche Migration wird erst anhand der Ergebnisse erstellt, damit vorhandene Altlasten nicht unbemerkt gelöscht werden.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben außerhalb des Update-Pakets.

Technisch

  • Neue Datenbankbeziehungen für Bilder, Modulreihenfolge, Düngung, Fütterung, Beleuchtung und Support-Antworten als Migrationsziel dokumentiert.
  • Neue Funktionen werden gemäß semantischer Versionierung ab jetzt mit einer Nebenversion gekennzeichnet.

Version 2.1.3

Hinzugefügt

  • Echte SMTP-Testmail-Funktion direkt im Adminbereich ergänzt.
  • Frei wählbare Empfängeradresse und Empfängername für Testmails ergänzt.
  • Sichere Statusanzeige für SMTP-Host, Port, Verschlüsselung und Anmeldung ergänzt.
  • Direkten Zugriff vom Admin-Dashboard auf SMTP-Test und Versionsübersicht ergänzt.

Behoben

  • Bisherige Mail-Testseite verwendete noch PHP `mail()` statt der zentralen SMTP-Konfiguration.
  • Alte Testmail-Adressen leiten nun auf die neue Admin-Testseite weiter.

Sicherheit

  • Testmail-Versand ist ausschließlich für Administratoren und nur per POST mit CSRF-Schutz möglich.
  • SMTP-Benutzername und Passwort werden auf der Testseite nicht ausgegeben.
  • `app/config/config.php` und `app/config/mail.local.php` bleiben außerhalb des Update-Pakets.

Version 2.1.2

Sicherheit

  • Fest eingetragene SMTP-Zugangsdaten aus allen Mail-Klassen entfernt.
  • Vertrauliche SMTP-Werte in die lokale Datei `app/config/mail.local.php` ausgelagert.
  • Direkten Webzugriff auf den Konfigurationsordner über eine eigene `.htaccess` gesperrt.
  • Technische Mailfehler werden nicht mehr im Browser ausgegeben, sondern nur noch protokolliert.

Technisch

  • Gemeinsame SMTP-Konfiguration und PHPMailer-Erzeugung in `app/mail/SmtpMailerFactory.php` zentralisiert.
  • Doppelte SMTP-Einstellungen aus Verifizierungs-, Erinnerungs- und Testmail entfernt.
  • SMTP-Konfiguration wird beim Laden validiert und meldet fehlende oder ungültige Werte kontrolliert.
  • Sichere Beispielkonfiguration und Dokumentation für neue Installationen ergänzt.
  • `app/config/config.php` und ab dem nächsten Update auch `app/config/mail.local.php` bleiben außerhalb der Update-Pakete.

Version 2.1.1

Behoben

  • Fehlerhafte Include-Pfade auf der öffentlichen Aquarium-App-Seite und der Mail-Testseite korrigiert.
  • Falschen Zurück-Link in der Wasserwerte-Ansicht korrigiert.
  • Fehlerhafte, nicht vorhandene Login-Funktion beim Löschen von Wasserwerten ersetzt.

Sicherheit

  • CSRF-Schutz für CO2-Einstellungen, CO2-Flaschenwechsel und deren Bearbeitung ergänzt.
  • CO2-Wechsel und Wasserwert-Messungen können nicht mehr über einfache GET-Links gelöscht werden.
  • Löschvorgänge auf POST-Anfragen mit gültigem CSRF-Token beschränkt.
  • Mail-Testseiten auf angemeldete Administratoren und bestätigte POST-Anfragen beschränkt.

Technisch

  • Doppelte Session-Starts auf öffentlichen Informationsseiten entfernt.
  • Vorhandene PDO-Verbindung wird nun von db() wiederverwendet, statt eine zweite Verbindung zu öffnen.
  • Produktive app/config/config.php bleibt bewusst außerhalb des Update-Pakets.

Version 2.1.0

Hinzugefügt

  • Zentrale Versions- und Changelog-Verwaltung eingeführt.
  • Öffentliche Versionsübersicht unter changelog.php ergänzt.
  • Aktuelle Versionsnummer im Footer der Homepage ergänzt.
  • Automatische Auswertung der neuesten Version direkt aus dieser Changelog-Datei ergänzt.

Technisch

  • Neue Hilfsdatei app/helpers/version.php zum sicheren Einlesen des Änderungsverlaufs angelegt.
  • Die Versionsanzeige benötigt keine zusätzliche Datenbanktabelle.
  • Dokumentation zum zukünftigen Hochzählen der Versionen in VERSIONIERUNG.md ergänzt.