Englisch: IDB Wiki |
PmWikiDe /
E-Mail Nachricht bei geänderten Seiten (neu)
Autoren (Fortgeschritten) und Administratoren
Das notify.php-Skript ermöglicht es einem Site-Administrator, PmWiki so zu konfigurieren, dass Emails verschickt werden wenn Seiten des Wikis verändert werden. Diese Benachrichtigungen können so eingestellt werden, dass mehrere Seitenveränderungen, die in einem kurzen Zeitintervall stattfinden, in einer einzigen Email zusammengefasst werden (um überlaufende Emailfächer zu verhindern). Dieses Feature ist besonders für Sites nützlich, die unregelmäßige Updates haben, da dann die "Recent Changes"-Seite nicht ständig nach neuen Veränderungen durchforstet werden muss. Damit die Benachrichtigungen funktionieren, muss das notify.php-Script durch lokale Anpassungen aktiviert werden. Das funktioniert normalerweise sehr einfach, indem man folgende Zeile in die local/config.php schreibt: $EnableNotify = 1;
Benachrichtigung konfigurierenWenn das Script erstmal aktiviert ist, erhält das Benachrichtigungssystem seine Einstellungen von der SiteAdmin.NotifyList-Seite? (die man beim ersten Mal neu anlegen muss). Die SiteAdmin.NotifyList-Seite bekommt Einträge der Form: notify=alice@beispiel.de
Das bedeutet, dass alle Informationen über Veränderungen in den Wiki-Seiten in regelmäßigen Abständen an alice@beispiel.de geschickt werden sollen. Die SiteAdmin.NotifyList-Seite kann mehrere "notify=" Zeilen enthalten, um Nachrichten an mehrere Adressen zu senden, die Benachrichtigungen werden dann an eben diese Adressen geschickt. Die "notify=" Zeilen können vor Lesern verborgen werden, indem man sie innerhalb einer Anmerkung
Setze keine Leerzeichen um die Gleicheitszeichen herum! Die Benachrichtigung wird still und leise versagen, wenn Sie
notify = fred@beispiel.de
anstatt
notify=fred@beispiel.de
schreiben.
BenachrichtigungsoptionenDie grundlegenden Syntax ist Es gibt eine ganze Reihe von Optionen, um die Zahl der Seiten, die eine Benachrichtigung veranlassen zu verringern. Die # Schicke Benachrichtigung über die Main-Gruppe an alice@beispiel.de notify=alice@beispiel.de group=Main # benachrichtige charles@beispiel.de über Veränderungen auf allen Seiten außer denen der Gruppe Main ->notify=charles@beispiel.de group=-Main # benachrichtige bob@beispiel.de über alle Änderungen auf der HomePage ->notify=bob@beispiel.de name=Main.HomePage Anmerkung
Die Optionen sind der PageList Syntax ähnlich.
Um eine willkürliche Liste von Seiten zu verwalten, z. B. "Beobachtungslisten" ("watchlists"), ist es generell einfacher, einen trail der zu beobachtenden Seiten zusammenzustellen. Der folgende Eintrag in der SiteAdmin.NotifyList-Seite sendet an alice@beispiel.de eine E-Mail, die Änderungen an allen Seiten meldet, die im 'trail' in Profiles.Alice aufgelistet sind: # benachrichtige Alice über alle Änderungen an Seiten, die in Profiles.Alice aufgelistet sind notify=alice@beispiel.de '''trail'''=Profiles.Alice Anmerkung Grenzen dieses Features:
Das ist möglicherweise eine gute Stelle, um herauszustellen, dass der Bearbeiten-Zugriff auf die SiteAdmin.NotifyList-Seite kontrolliert werden sollte, sonst könnten Böswillige die Benachrichtigungsfähigkeiten ausnutzen, um die Mailbox Anderer zu überfluten. Standardmäßig ist die SiteAdmin.NotifyList-Seite geschützt gegen Lesen oder Bearbeiten außer durch den Administrator (was für die meisten Seiten in der SiteAdmin-Gruppe gilt). Hinzufügen von Benachrichtigungen durch lokale AnpassungBenachrichtigunseinträge können auch über das $EnableNotify = 1; $NotifyList[] = 'notify=alice@beispiel.de group=Main'; $NotifyList[] = 'notify=bob@beispiel.de name=Main.HomePage'; Kontrolle über die BenachrichtigungshäufigkeitUm des Empfängers Mailbox vor Überflutung zu schützen, benutzt das Benachrichtigungsskript einen "Rauschunterdrückungs-(squelch)"-Wert als minimale Zeitspanne, die zwischen zwei Benachrichtigungen an eine gegebene E-Mail-Adresse vergehen muss. Die Standardeinstellung für Squelch ist 10800 Sekunden (drei Stunden), d. h. dass, nachdem an eine Empfängeradresse eine Benachrichtigung versandt wurde, dieser für die nächsten drei Stunden keine weitere Benachrichtigung erhalten wird. Alle Änderungen, die während dieser Zeitspanne auflaufen, werden in eine Warteschlange für die nächste Benachrichtigung eingereiht. Der Site-Administrator kann den Standardwert für squelch über den # Benachrichtigungen einschalten $EnableNotify = 1; $NotifySquelch = 86400; # warte wenigstens eine Tag (in Sekunden) zwischen zwei Benachrichtigungen Zusätzlich können individuelle Adressen einen angepassten Wert für den Squelch-Parameter in der SiteAdmin.NotifyList-Seite angeben: # Alice empfängt höchstens eine E-Mail pro Tag notify=alice@beispiel.de '''squelch'''=86400 # Bob kann stündliche Benachrichtigungen erhalten notify=bob@beispiel.de trail=Profiles.Bob '''squelch'''=3600 # Charles benutzt die Standardeinstellung der Site für die Zeitspanne notify=charles@beispiel.de Kontrolle über BenachrichtigungsverzögerungenWeil eine Seite oft mehrere Änderungen in kurzer Zeit erfährt (nach einem langen Eintrag folgen mehrere kleine Korrekturen), kann ein Site-Administrator auch eine Verzögerung für Benachrichtigungen einrichten. Ein # Benachrichtigungen einschalten $EnableNotify = 1; $NotifySquelch = 86400; # warte wenigstens eine Tag (in Sekunden) zwischen zwei Benachrichtigungen $NotifyDelay = 300; # warte fünf Minuten nach dem ersten Eintrag Anmerkung Für inaktive Sites kann das viel länger als die eingestellte Zeitspanne sein. Das ist aber nicht wirklich ein Problem, bei wenig aktiven Sites ist eine zeitige Benachrichtigung weniger wichtig. Jedenfalls werden Änderungen innerhalb der 'squelch'-Zeit nach der letzten Benachrichtigung unbemerkt bleiben, wenn das Wiki für eine lange Zeitspanne danach nicht wenigsten einmal besucht wird. Wenn das etwas ausmacht, mag es nötig sein, den Server zu veranlassen, pmwiki.php von Zeit zu Zeit über einen cron job aufzurufen. Angepasste # der @@delay=@@-Parameter wird ignoriert notify=edgar@beispiel.de trail=Profiles.Edgar '''delay'''=600 Bemerkung zu WindowsinstallationenBei Sites, wo PHP unter Windows läuft, könnte PHPs Mail-Funktion nicht korrekt konfiguriert sein. Solche Sites müssten eventuell eine Zeile wie diese ini_set('SMTP','smtp.server.com');
in config.php einfügen, wobei smtp.server.com der Name des von Ihrem Host bevorzugten Mail-Ausgangs-Servers ist. Sie könnten auch einen sendmail_from-Wert setzen, wenn das nicht konfiguriert ist: ini_set('sendmail_from','noreply@foo.com');
und bei PHP im safe-mode: http://www.pmwiki.org/wiki/PITS/00976. Benachrichtigungsvariablen
Benachrichtigung nur bei größeren ÄnderungenEs ist möglich, Benachrichtigungen nur bei größeren Änderungen zu versenden (Häkchen bei Dies ist eine geringfügige Änderung nicht gesetzt). Ersetzen Sie " if ( @$_POST['diffclass'] != 'minor' ) $EnableNotify=1;
Auf diese Weise werden nur für größere Änderungen Benachrichtigungen versandt (wenn der Autor das Häkchen für geringfügige Änderungen nicht setzt). Wenn Sie über geringfügige Änderungen, aber nicht über größere Änderungen benachrichtigt werden wollen, dann schreiben Sie if ( @$_POST['diffclass'] == 'minor' ) $EnableNotify=1;
stattdessen. Abschalten der Benachrichtigung für DownloadsWenn Sie "$EnableDirectDownloads=0;" benutzen (z. B. für Datenschutz/Vertraulichkeit in einem passwortgeschützten Wiki), erzeugen angehängte Bilder doppelte Benachrichtigungen. Um das zu verhindern, schalten Sie die Benachrichtigungen für Downloads ab: if ( $action != 'download' ) $EnableNotify=1;
Auf diese Weise werden nur 'page views' (und keine Bilder innerhalb der Seite) Benachrichtigungen auslösen. Siehe PITS:01159 wegen weiterer Informationen.
Übersetzung von PmWiki.Notify
Originalseite auf PmWikiDe.Notify - Rückverweise |