Skip to content

FriendsOfREDAXO/activity_log

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

207 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Activity Log für REDAXO 5

Protokolliert Aktivitäten im REDAXO-Backend und stellt sie übersichtlich dar. Eigene Addons können beliebige Log-Einträge schreiben. Darüber hinaus lassen sich bekannte REDAXO-Ereignisse (Artikel, Medien, User usw.) automatisch über Extension Points erfassen.

activity_log


Installation

Über den REDAXO-Installer oder manuell in redaxo/src/addons/activity_log entpacken und im Backend installieren.

Voraussetzungen:

  • REDAXO ≥ 5.20.0
  • PHP ≥ 8.2

Verwendung

Einfacher Log-Eintrag

use FriendsOfRedaxo\ActivityLog\Activity;

Activity::message('Hallo Welt!')->log();

Mit Typ und verursachendem Benutzer

Activity::message('Datensatz wurde verändert')
    ->type(Activity::TYPE_WARNING)
    ->causer(rex::getUser())
    ->log();

Mit Quellen-Angabe

Activity::message('Import abgeschlossen')
    ->type(Activity::TYPE_ADD)
    ->source('mein-addon')
    ->log();

Fluent-API – alle Methoden

Methode Beschreibung
Activity::message(string $msg) Pflichtfeld – Text des Log-Eintrags
->type(string $type) Typ des Eintrags (siehe Konstanten unten)
->causer(?rex_user $user) Benutzer, der die Aktion ausgelöst hat
->source(string $source) Herkunft des Eintrags (z. B. Addon-Name)
->log() Schreibt den Eintrag in die Datenbank

Typen / Konstanten

Activity::TYPE_INFO      // Allgemeine Information
Activity::TYPE_NOTICE    // Hinweis
Activity::TYPE_WARNING   // Warnung
Activity::TYPE_ERROR     // Fehler
Activity::TYPE_CRITICAL  // Kritisch
Activity::TYPE_DEBUG     // Debug-Ausgabe
Activity::TYPE_ADD       // Hinzugefügt
Activity::TYPE_UPDATE    // Aktualisiert
Activity::TYPE_EDIT      // Bearbeitet
Activity::TYPE_DELETE    // Gelöscht

Tabellenzeilen werden je nach Typ farblich hervorgehoben (rot = Error/Delete, gelb = Warning, lila = Critical, grün = Add). Light- und Dark-Mode werden unterstützt.


Extension Points

In den Einstellungen des Addons kann die automatische Protokollierung für folgende REDAXO-Ereignisse aktiviert werden:

Bereich Ereignisse
Artikel Hinzugefügt, Aktualisiert, Status geändert, Gelöscht
Kategorie Hinzugefügt, Aktualisiert, Status geändert, Gelöscht
Slice Hinzugefügt, Aktualisiert, Gelöscht, Verschoben
Medien Hinzugefügt, Aktualisiert, Gelöscht
Meta Info Aktualisiert
Benutzer Hinzugefügt, Aktualisiert, Gelöscht
Sprache (Clang) Hinzugefügt, Aktualisiert, Gelöscht
Template Hinzugefügt, Aktualisiert, Gelöscht
Modul Hinzugefügt, Aktualisiert, Gelöscht
YForm Manager-Ereignisse (nur wenn YForm installiert)

Die internen Handler setzen die source-Spalte automatisch (z. B. article, media, yform).


Quelle (source)

Jeder Log-Eintrag kann eine Quelle tragen. Sie erscheint als eigene Spalte in der Übersicht und kann als Filter genutzt werden. Eigene Addons sollten den Addon-Namen als Quelle setzen:

Activity::message('Datensatz importiert')
    ->type(Activity::TYPE_ADD)
    ->source('mein-addon')
    ->log();

Filter & Suche

Die Übersicht bietet ein vollständiges Filterformular:

  • Freitextsuche in der Nachricht
  • Typ-Filter (Dropdown)
  • Quellen-Filter (Dropdown)
  • Benutzer-Filter (Dropdown)

Filter bleiben beim Blättern (Pager), beim Löschen einzelner Einträge und beim Massenlöschen erhalten.


Admins von der Protokollierung ausschließen

In den Einstellungen kann die Option „Protokollierung für Administratoren deaktivieren" aktiviert werden. Ist sie gesetzt, werden Aktionen von REDAXO-Admins nicht im Activity Log erfasst.


Einträge löschen

Manuell im Backend

Einzelne Einträge oder alle Einträge lassen sich direkt in der Übersicht löschen.

Cronjob

Über das Cronjob-Addon können Einträge automatisiert nach einem wählbaren Zeitraum gelöscht werden.

Console

php redaxo/bin/console activity:clear

Berechtigungen

Das Addon definiert die Berechtigung activity_log[]. Nur Benutzer mit dieser Berechtigung (bzw. Admins) können das Activity Log einsehen. Die Einstellungsseite ist ausschließlich Administratoren vorbehalten.


Abwärtskompatibilität

Die alten Klassennamen sind als BC-Stubs erhalten und können weiterhin verwendet werden – ein Update bestehenden Codes ist nicht erforderlich:

Alt Neu (empfohlen)
rex_activity FriendsOfRedaxo\ActivityLog\Activity
rex_activity_log_cronjob FriendsOfRedaxo\ActivityLog\ActivityLogCronjob
activity_clear (Console) FriendsOfRedaxo\ActivityLog\ActivityClear

Autor

Friends Of REDAXO


Credits

Project Lead

Thorben (eaCe)

Weitere Mitwirkende

Andreas Eberhard, Oliver Kreischer, Norbert Micheel, Thomas Skerbis


Lizenz

MIT – siehe LICENSE