Forum beobachten [phpBB3]

Seit kurzem habe ich für meinen Chor ein phpBB-Forum für die interne Kommunikation installiert. Dabei gab es die Anforderung, dass alle Mitglieder automatisch eine E-Mail-Benachrichtigung erhalten sollen, wenn in Forum X ein neuer Beitrag gepostet wird.

Seit phpBB3 gibt es für alle User des Boards die Möglichkeit, freiwillig ganze Foren zu beobachten/abonnieren und automatisch eine E-Mail-Benachrichtigung zu erhalten, wenn ein neuer Beitrag gepostet wird. Dazu müssen die User aber aktiv auf einen Link klicken, was für weniger versierte Internetnutzer eine Herausforderung ist und zumal noch nicht sicherstellt, dass jeder User das dann tatsächlich auch tut. Bisher gibt es keine Möglichkeit für den Admin über das ACP (Admin Control Panel), User gezielt für das Abonnement eines bestimmten Forums einzuschreiben. Man kann dies aber direkt über eine Eingabe in die SQL-Datenbank tun.

Für welche Foren welche User ein Abonnement haben, steht in der Tabelle „forums_watch“; darin gibt es die Spalten „forum_id“, „user_id“ und „notify_status“. Bevor man irgendetwas an seiner sql-Datenbank ändert, sollte man ein Backup machen. Das geht m.E. auch über das ACP.

Mit PHPMyAdmin geht die Änderung sehr fix. Man ruft die Tabelle „forums_watch“ auf, klickt auf „Einfügen“, gibt die ID des Forums ein, das beobachtet werden soll, gibt die ID des Users ein, der beobachten soll, läßt den Wert 0 bei „notify_status“ stehen und klickt auf „OK“. Steht der Wert bei „notify_status“ auf 1, beobachtet der User zwar das Forum, aber es gibt keine Benachrichtigungs-Mail bei neuen Einträgen. Als sql-Befehl in der Comandline sieht das dann ungefähr so aus.

INSERT INTO `foobar`.`suffix_forums_watch` (`forum_id`, `user_id`, `notify_status`) VALUES ('23', '42', '0');

Wenn man viele User hat, ist das natürlich total lästig, das für jeden User einzeln per Hand zu machen. Da will man das lieber über eine .csv-Tabelle importieren. Dazu macht man sich eine .csv-Datei, in die man zuerst die User-IDs einträgt, die man subscriben möchte (1 ID pro Zeile). Hinter jede User-ID macht man ein Semikolon als Spaltentrenner und hinter jedes Semikolon schreibt man die ID des Forums, für das die User subscribed werden sollen.

Über PHPMyAdmin ruft man wieder die Tabelle „forums_watch“ auf, klickt auf „Importieren“, sucht die csv-Datei auf der Festplatte heraus, gibt bei Dateiformat CSV an und klickt auf „OK“. Wie das Ganze als sql-Befehl in der Comandline aussehen müßte, weiß ich nicht genau. Vielleicht weiß es ja einer meiner Leser und kann es in den Kommentaren ergänzen.

Meine Anleitung ist übrigens eine Antwort auf E-Mail Benachrichtigung über sämtliche Neueinträge am Board im phpbb.de Community-Board, wo seit 3 Jahren niemand eine anständige Lösung für dieses Problem präsentieren konnte.

Kommentar abgeben: