Ankündigung: Chat für Woltlab Suite 6.2 (kostenlos)

  • Hallo zusammen,

    ich möchte euch heute ein Projekt vorstellen, an dem ich gerade arbeite: ein komplett neues Chatsystem für WoltLab Suite 6.2.

    Warum ein neuer Chat?

    Viele von euch kennen Tims Chat. Leider wird er nicht mehr weiterentwickelt und läuft ab WoltLab 6.1 nicht mehr. Statt ihn notdürftig zu flicken, baue ich den Chat von Grund auf neu: modern, stabil und passend zur aktuellen WoltLab-Version.

    Was geplant ist:

    • Ein einziges Paket: hochladen, installieren, fertig. Keine Zusatzpakete, kein extra Server, kein Node.js. Läuft auf ganz normalem Webspace.
    • Mehrere Chaträume, im ACP einfach anzulegen und zu sortieren
    • Ein durchdachtes Rechtesystem: pro Benutzergruppe und zusätzlich pro Raum einstellbar (wer darf lesen, schreiben, moderieren …)
    • Moderation: Benutzer stummschalten, aus Räumen entfernen oder sperren (auf Zeit oder dauerhaft) und Nachrichten löschen
    • Flüstern (private Nachrichten im Chat), /me-Aktionen und Abwesenheitsstatus
    • Smileys, Erwähnungen mit @Name und automatische Links
    • Benutzerliste mit Avatar und Status
    • Wer ist im Chat?-Box für Sidebar oder Startseite
    • Barrierearm: per Tastatur bedienbar, mit Screenreader nutzbar, gute Kontraste
    • Optimiert für Smartphone und Tablet
    • Sprachen: Deutsch und Englisch

    Kosten
    Der Chat wird komplett kostenlos sein. Nach der Testphase möchte ich ihn auch im WoltLab Plugin-Store veröffentlichen.

    Eure Ideen sind gefragt!

    Was ist euch bei einem Forenchat besonders wichtig? Welche Funktion habt ihr bei anderen Chats vermisst? Schreibt es gern hier ins Thema. Ich nehme eure Wünsche in die Planung auf.

    Ich halte euch hier über den Fortschritt auf dem Laufenden.

    Viele Grüße

    Alex

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!

  • Hey Alex,

    ich finde wichtig:

    Dateianhänge, User im Chat zitieren können, jemanden ignorieren können, Abwesenheitszeit automatisch nach zum Beispiel 30 min und ein Autologout nach einstellbarer Zeit. Ein Archiv, Logsystem von Nachrichten sozusagen.

    Ich nutze die komplette Überarbeitung von Tims Chat, ddbmaster hat ihn weiterentwickelt und tolle neue Funktionen eingebaut. Kann man auch bei Tim lesen.

    Aber ist cool, wenns mehrere zur Auswahl gibt und wenn deiner dann auch in den offiziellen Pluginstore geht. Ich denke, ich bleibe bei Tims Chat bei der 6.2 :) Aber würde mir deinen dann auch auf jeden Fall anschauen und ihn testen wenn du magst. <3

  • Ich finde deine Idee toll, aber die Funktion total sinnlos. Hat vor 10 Jahren schon kaum Einer genutzt. Zu Beginn "Wir wollen einen Chat" nach zwei Wochen "TOT", nach drei Wochen "Das ganze Forum ist tot, weil niemand im Chat ist." Es war immer das Gleiche.

  • Problem bei Tims Chat ist, das Ding fällt auseinander vom Code her. Ich habe mir das vor nem Monat angeschaut. Hab auch erst überlegt, das weiterzuentwickeln. Nee, das läuft unter einer Business Source License 1.1

    Meine Lizenz läuft unter MIT, deshalb war die Neuentwicklung auch rechtlich der richtige Weg. Übrigens ist bei meiner Lizenz so ziemlich alles erlaubt. Nicht nur unbedenkliche Weiterentwicklung.

    Dann ist die Entwicklung aktiv. Ich habe auch nichts dagegen, wenn der Code reviewed wird. Im Gegenteil. Selbst ich prüfe immer gegen, den ein oder anderen Fehler und Methode. Auch Sicherheitsrelevantes wurde schon gefixt.

    Noch ein kleiner netter Hinweis: Es ist komplett neu geschrieben. Keine Teile von Tims Chat sind dort wiederverwendet. Besonders auch aus sicherheitsrelevanten Gründen.

    Lizenzrechtlich ohnehin.

    Daher wird es den Chat auch kostenlos und unter der sehr offenen MIT‑Lizenz geben.

    Dann, kurzes Update zum Chat: Die erste Beta ist schon länger fertig und läuft in meiner Testumgebung (WoltLab Suite 6.2.8 mit PHP 8.2 und 8.4) stabil. Danke auch für eure Rückmeldungen, auf die gehe ich weiter unten ein.

    Was der Chat schon kann

    Für alle Benutzer:

    1. Mehrere Chaträume und eine Raumliste, die zeigt, wer gerade drin ist
    2. Flüstern (private Nachrichten), /me-Aktionen und Abwesenheitsstatus mit Grund
    3. @Erwähnungen werden hervorgehoben, Links werden automatisch erkannt
    4. Emoji-Auswahl mit Suche und „Zuletzt verwendet“, dazu die Smileys aus dem Forum
    5. Benutzerliste mit Avatar und Status (abwesend, stummgeschaltet, Moderator). Ein Klick auf einen Namen bietet Profil, Erwähnen und Anflüstern an
    6. Eigene Einstellungen: Betreten-, Verlassen- und Abwesenheitsmeldungen jeweils einzeln ausblendbar, Uhrzeit an/aus, Ton und Desktop-Benachrichtigung bei Erwähnungen und Flüsternachrichten
    7. Zähler für ungelesene Nachrichten im Browser-Tab, Vollbildmodus, Handy-Ansicht
    8. Bequeme Eingabe: Enter sendet, Umschalt+Enter macht eine neue Zeile, die Pfeiltasten holen frühere Eingaben zurück, Tab vervollständigt Namen und Befehle
    9. Neu laden der Seite erzeugt keine Betreten-/Verlassen-Meldungen

    Für Moderatoren

    1. Per Klick auf einen Namen oder per Befehl: stummschalten, aus dem Raum werfen oder sperren
    2. Stummschaltung und Sperre auf Zeit (z. B. 30 Minuten oder 2 Tage) oder dauerhaft, mit Grund und wahlweise für einen Raum oder für alle Räume
    3. Nachrichten löschen und Rundrufe an alle Räume
    4. Normale Benutzer sehen nicht, welcher Moderator gehandelt hat. Moderatoren und Admins selbst sind vor Moderation geschützt

    Für Admins

    1. Räume im ACP anlegen, sortieren, deaktivieren und löschen, auch mehrsprachig
    2. Pro Raum: Benutzergrenze und langsamer Modus (z. B. nur eine Nachricht alle 30 Sekunden)
    3. Rechte pro Benutzergruppe (lesen, schreiben, flüstern, Protokoll, moderieren …) und zusätzlich pro Raum für einzelne Gruppen oder Benutzer, zum Beispiel für einen abgeschotteten Team-Raum
    4. Übersicht aller Stummschaltungen und Sperren mit Filter und "Aufheben"
    5. Chat-Protokoll mit Tagesfilter, Aufbewahrungsdauer einstellbar
    6. Box "Benutzer im Chat" für Seitenleiste oder Startseite, Zähler am Menüpunkt und "Chat-Raum …" in der Liste "Benutzer online"

    Barrierefreiheit:

    1. Screenreader lesen neue Nachrichten vor, alles ist per Tastatur bedienbar
    2. Die Farben kommen komplett aus eurem Stil, auch im Dark Mode
    3. Deutsche Texte erscheinen automatisch in Du- oder Sie-Form, je nach Foreneinstellung

    Sicherheitsscan (wichtig!)

    Bevor der Chat in die Testphase geht, wurde der komplette Quellcode (PHP, JavaScript und Templates) einem Sicherheitsscan unterzogen, also gezielt auf Schwachstellen geprüft: eingeschleuster Code (XSS), untergeschobene Anfragen (CSRF), SQL-Injection, Umgehen von Rechten und Datenlecks, etwa bei Flüsternachrichten, gelöschten Nachrichten oder Moderatorennamen.

    Dabei kamen auch Punkte ans Licht, die vorher niemandem aufgefallen waren. Die wichtigsten:

    1. Über die Schnittstelle ließen sich gelöschte und ältere Nachrichten abrufen, auch ohne das Recht für das Protokoll
    2. Stummgeschaltete konnten über den Abwesenheitsgrund trotzdem Text in den Chat bringen
    3. Mit vielen gleichzeitigen Anfragen ließ sich der Flutschutz austricksen
    4. Über das Flüstern ließ sich herausfinden, ob jemand in einem Raum ist, den man selbst gar nicht sehen darf

    Alle gefundenen Punkte sind behoben. Die wichtigsten sind zusätzlich durch automatische Tests abgesichert, damit sie nicht zurückkommen. Insgesamt prüfen 29 automatische Tests das Verhalten des Chats. Ein Belastungstest mit mehreren gleichzeitig aktiven Chatfenstern lief ohne einen einzigen Serverfehler.

    Was außerdem für Sicherheit sorgt:

    1. Nachrichten werden nie als HTML interpretiert, eingeschleuster Code bleibt reiner Text
    2. Jede Aktion prüft die Rechte auf dem Server, nicht nur in der Oberfläche
    3. Schreibende Anfragen brauchen das Sicherheits-Token von WoltLab
    4. Datenbankzugriffe laufen nur über vorbereitete Abfragen (Prepared Statements)
    5. Flutschutz, langsamer Modus, Längen- und Zeilenbegrenzung, Filter gegen unsichtbare Steuerzeichen und „Zalgo“-Text, dazu der Wortfilter von WoltLab
    6. Datenschutz: Der Chat speichert keine IP-Adressen, alte Nachrichten werden nach der eingestellten Frist automatisch gelöscht, und der DSGVO-Datenexport von WoltLab enthält auch die Chatdaten
    7. Bei der Deinstallation wird alles restlos entfernt

    Ein Scan ersetzt natürlich nicht den Praxistest. Wer in der Beta eine Sicherheitslücke findet: bitte per PN an mich und nicht öffentlich posten, dann ist sie schnell geschlossen.

    Zu euren Rückmeldungen

    Shalin , danke für deine Liste! Der Reihe nach:

    • Jemanden ignorieren: Ist drin. Der Chat beachtet die Ignorieren-Funktion von WoltLab. Nachrichten ignorierter Personen werden ausgeblendet, und wer jemanden blockiert, bekommt von ihm auch keine Flüsternachrichten. Das Profil erreicht man direkt per Klick auf den Namen in der Benutzerliste.
    • Automatisch abwesend: Ist drin. Standard sind 10 Minuten ohne Aktivität. Im ACP lässt sich das frei einstellen, also auch auf 30 Minuten, oder ganz abschalten.
    • Archiv bzw. Logsystem: Ist drin. Das Chat-Protokoll lässt sich nach Tagen durchblättern. Wer es lesen darf, legt man über die Rechte fest (Standard: Moderatoren und Admins, pro Raum anpassbar). Wie lange Nachrichten aufbewahrt werden, ist einstellbar (Standard 30 Tage, auf Wunsch unbegrenzt).
    • Autologout: Teilweise. Wer das Fenster schließt, verlässt den Chat automatisch. Bricht die Verbindung ab, wird man nach einer einstellbaren Zeit entfernt (Standard 3 Minuten). Ein Abmelden nach längerer Untätigkeit bei offenem Fenster nehme ich in die Planung auf.
    • Zitieren: Noch nicht. Erwähnen geht schon (Klick auf den Namen oder @ und Tab). Die Person sieht die Nachricht dann hervorgehoben und bekommt auf Wunsch einen Ton oder eine Desktop-Benachrichtigung. Echtes Zitieren kommt auf die Liste.
    • Dateianhänge: Noch nicht, und das mit Absicht. Uploads sind sicherheitstechnisch der heikelste Teil eines Chats (Schadsoftware, Speicherplatz, Datenschutz und Urheberrecht bei Bildern). Wenn, dann sollen sie über das bewährte Anhangsystem von WoltLab laufen, mit eigenen Rechten und Größenlimits. Das steht auf der Wunschliste.

    Schön, dass es mit der Überarbeitung von ddbmaster noch eine weitere Möglichkeit gibt, Auswahl schadet nie. Mein Chat ist ein kompletter Neubau: ein einzelnes Paket ohne Zusatzpakete, das später (evtl...) über den offiziellen Plugin-Store kommt. Dein Angebot zum Testen nehme ich sehr gern an, ich melde mich gleich per PN.

    Frank-L , ganz unrecht hast du nicht. Ein Chat allein belebt kein Forum, und ein leerer Chat hilft niemandem. In manchen Communitys wird er aber nach wie vor gern genutzt, wie Shalin ja auch schreibt, zum Beispiel für feste Chatabende, als Support-Sprechstunde oder als interner Team-Raum. Und ja, ich habe eine Community, die braucht einen zuverlässigen und sicheren Chat. Tims Chat wurde da aus Sicherheitsgründen bereits länger entfernt.

    Uuuund... Deshalb ist der Chat so gebaut, dass er nicht stört, wenn ihn gerade niemand braucht:

    1. Er lässt sich im ACP mit einem Klick abschalten.
    2. Nennenswerte Last entsteht nur, solange jemand den Chat geöffnet hat, und bei Ruhe oder im Hintergrund fragt er automatisch seltener nach. Ein Zusatzserver läuft nicht.
    3. Der Zähler am Menüpunkt erscheint nur, wenn wirklich jemand im Chat ist. So sieht man auf einen Blick, wann sich ein Besuch lohnt.
    4. Mit Ton und Desktop-Benachrichtigung kann man den Chat nebenbei offen lassen und verpasst trotzdem nichts, wenn man angesprochen wird.
    5. Wer das Recht für das Protokoll hat, kann auch später nachlesen, was besprochen wurde.

    Wie es weitergeht

    Als Nächstes kommt die Testphase. Wer mittesten möchte, meldet sich gern hier im Thema. Danach geht der Chat wie angekündigt kostenlos in den WoltLab Plugin-Store. Voraussetzung ist nur WoltLab Suite Core 6.2, also auch jedes Burning Board 6.2. Ein eigener Server oder Node.js ist nicht nötig. Dann noch, ob das da überhaupt erwünscht ist.. Weiß nicht, wie man da was uppt.

    Viele Grüße

    Alex

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!

  • Gerne.

    Und da ist auch wichtig. ALLES, was stört, was Mist ist usw. Das bitte mir auch melden. Mich hatte zB an/abmelden im Chat gestört. Da sind nun intelligente Funktionen drin, die eben nicht störend sind, und man kann’s auch ausblenden. Oder was ich z. B. gut finde, bei Erwähnungen oder Flüstern, dass man einstellen kann, auch per Ton benachrichtigt zu werden. Das vermisste ich auch.

    Ist alles nativ drin.

    Version 1.0.0 ist soweit fertig. Inkl Sicherheitsaudit und getestet mit ALLEN Versionen gegen Woltlab Suite 6.2.x , auch PHP 8.4 sollte da Standard sein, es läuft auch auf 8.2 und 8.3 . Allerdings empfehle ich da auf eine moderne Version wie 8.4 zu setzen. Damit läuft Woltlab Suite auch am besten.

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!

  • 6.3.0 Alpha 1 wird übrigens zunächst ausgeschlossen. Sobald ich da in der Beta bin, wird auch spätestens bei der Stable von 6.3.0 der Chat ohne Probleme funktionieren.

    Kommt halt drauf an, wies gepflegt wird.

    Und ja.. es kommt OHNE externe Frameworks aus. Das ist noch wichtig zu erwähnen. Alles läuft in diesem einen Plugin, ohne was nachladen oder anpassen zu müssen.

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!

  • Also, es ist stabil. Ich brauche aber unbedingt Feedback. Bisher habe ich es getestet. Auch wie es sich in Sonderfällen verhält.

    Hier schon mal ein vorgeschmäckle:

    Normal

    Im Darkmode

    Moderation

    Einstellungen Frontend

    Emojis dürfen natürlich nicht fehlen.

    Administration Backend

    Mobilansicht

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!