Dokumentation DeDi-Log
Aus DeDi-Help
Version vom 12:03, 15. Apr. 2006 (bearbeiten) Mlanghoff (Diskussion | Beiträge) (→Eigene Log-Events erstellen) ← Zum vorherigen Versionsunterschied |
Aktuelle Version (14:45, 8. Feb. 2010) (bearbeiten) (Entfernen) Eppi (Diskussion | Beiträge) |
||
(Der Versionsvergleich bezieht 34 dazwischen liegende Versionen mit ein.) | |||
Zeile 3: | Zeile 3: | ||
== Allgemeines/Voraussetzungen == | == Allgemeines/Voraussetzungen == | ||
- | Diese Beschreibung soll helfen, das dedilog-Plugin fr ein Frontend-Logging verwenden zu knnen. | + | Diese Beschreibung soll helfen, das dedilog-Plugin für ein Frontend-Logging verwenden zu können. |
Um Benutzeraktionen im Frontent zu loggen, muss das dedilog-Plugin installiert werden. | Um Benutzeraktionen im Frontent zu loggen, muss das dedilog-Plugin installiert werden. | ||
- | Informationen zum Plugin und Download erhlt man hier: | + | Informationen zum Plugin und Download erhält man hier: |
[http://www.der-dirigent.de/de/dedi/download/plugins/index.html#log Download dedilog] <br /> | [http://www.der-dirigent.de/de/dedi/download/plugins/index.html#log Download dedilog] <br /> | ||
[http://forum.der-dirigent.de/index.php?act=ST&f=10&t=1874 Informationen zum Plugin] <br /> | [http://forum.der-dirigent.de/index.php?act=ST&f=10&t=1874 Informationen zum Plugin] <br /> | ||
- | [http://help.der-dirigent.de/index.php?title=Events DEDI Events] | + | [http://help.der-dirigent.de/index.php?title=Events DEDI Standard Events] |
Bei der Installation des Plugins wird/kann leider ein falscher Eintrag in der DB erzeugt werden, der die Fehlermeldung | Bei der Installation des Plugins wird/kann leider ein falscher Eintrag in der DB erzeugt werden, der die Fehlermeldung | ||
Zeile 19: | Zeile 19: | ||
- | In der Tabelle PRFIX_backendmenu den Eintrag fr das dedilog Plugin suchen (entry_langstring Wert = nav_dedilog) und den Wert in '''entry_url''' von | + | In der Tabelle PRÄFIX_backendmenu den Eintrag für das dedilog Plugin suchen (entry_langstring Wert = nav_dedilog) und den Wert in '''entry_url''' von |
Zeile 25: | Zeile 25: | ||
- | ndern in | + | ändern in |
Zeile 36: | Zeile 36: | ||
== Plugin-Dateien == | == Plugin-Dateien == | ||
- | Um das Logging fr den Frontend-Bereich zu erweitern, duplizieren wir die Datei lang/langstring_de.php und geben der duplizierten Datei einen eindeutigen (Projektbezogenen Namen). Im Beispiel nennen wir die Datei '''langstring_de_eigen.php'''. | + | Um das Logging für den Frontend-Bereich zu erweitern, duplizieren wir die Datei lang/langstring_de.php und geben der duplizierten Datei einen eindeutigen (Projektbezogenen Namen). Im Beispiel nennen wir die Datei '''langstring_de_eigen.php'''. |
- | Nun ffnen wir die Datei langstring_de.php und fgen am Ende der Datei folgenden PHP Code hinzu, um unsere duplizierte Datei in das dedi Plugin einzubinden in die darin befindlichen Inhalte zu inkludieren. | + | Nun öffnen wir die Datei langstring_de.php und fügen am Ende der Datei folgenden PHP Code hinzu, um unsere duplizierte Datei in das dedi Plugin einzubinden in die darin befindlichen Inhalte zu inkludieren. |
require_once("langstring_de_eigen.php"); | require_once("langstring_de_eigen.php"); | ||
- | Aus der Datei langstring_de_eigen.php lschen wir alles, sodass in der Datei nur noch folgendes steht: | + | Aus der Datei langstring_de_eigen.php löschen wir alles, sodass in der Datei nur noch folgendes steht: |
<?PHP | <?PHP | ||
Zeile 50: | Zeile 50: | ||
== Datenbank == | == Datenbank == | ||
- | Das dedilog Plugin verwendet die Tabelle '''PRFIX_plug_log''' um die Log-Eintrge zu speichern und die Tabelle '''cms_values''' um die fr das Plugin bekannten DEDI Events zu speichern. | + | Das dedilog Plugin verwendet die Tabelle '''{PRÄFIX}_plug_log''' um die Log-Einträge zu speichern und die Tabelle '''{PRÄFIX}_values''' um die für das Plugin bekannten DEDI Events zu speichern. |
- | Weitere Infos ber Standard DEDI Events findet man unter | + | Weitere Infos über Standard DEDI Events findet man unter |
[http://help.der-dirigent.de/index.php?title=Events DEDI Events] | [http://help.der-dirigent.de/index.php?title=Events DEDI Events] | ||
- | Alle Standard DEDI Events, die es zum Zeitpunkt der Erstellung des Plugins gab, werden fr den Backendbereich bereits bercksichtigt. | + | Alle Standard DEDI Events, die es zum Zeitpunkt der Erstellung des Plugins gab, werden für den Backendbereich bereits berücksichtigt. |
- | == Funktionsprinzip zum ausfhren von DEDI Events == | + | == Funktionsprinzip zum ausführen von DEDI Events == |
- | (Funktionsweise wie ich Sie teilweise verstanden habe. Wenn was fehlt, bitte ergnzen oder ndern) | + | (Funktionsweise wie ich Sie teilweise verstanden habe. Wenn etwas fehlt, bitte ergänzen oder ändern) |
- | Um ein Event auszufhren, wird die Standard DEDI Funktion (vorhanden in fnc.general.php) | + | Um ein Event auszuführen, wird die Standard DEDI Funktion (vorhanden in fnc.general.php) |
fire_event('con_side_new', array('schluessel1' => 'wert1', 'schluessel' => 'wert2')); | fire_event('con_side_new', array('schluessel1' => 'wert1', 'schluessel' => 'wert2')); | ||
Zeile 68: | Zeile 68: | ||
verwendet. | verwendet. | ||
- | Diese Funktion bekommt den Event-Namen und ein assoziatives Array mit Werten bergeben. | + | Diese Funktion bekommt den Event-Namen und ein assoziatives Array mit Werten übergeben. |
- | Der bergebene Event-Name wird in der Datenbanktabelle cms_values ermittelt und der dazugehrige PHP Code (in der Spalte values) wird ausgefhrt. | + | Der übergebene Event-Name wird in der Datenbanktabelle {PRÄFIX}_values ermittelt und der dazugehörige PHP Code (in der Spalte values) wird ausgeführt. |
- | Die im Array bergebenen Werte knnen im auszufhrenden, gespeicherten PHP Code verwendet werden. | + | Die im Array übergebenen Werte können im auszuführenden, gespeicherten PHP Code verwendet werden. |
== Eigene Log-Events erstellen == | == Eigene Log-Events erstellen == | ||
- | Um in einem geschtzten Bereich des Frontends das Logging einzubauen, kann man eigene Events erstellen, die in der Log-bersicht in der Administration dann ausgewertet werden. | + | Um in einem geschätzten Bereich des Frontends das Logging einzubauen, kann man eigene Events erstellen, die in der Log-Übersicht in der Administration dann ausgewertet werden. |
So kann mann zum Beispiel speichern "Benutzer Meier hat Benutzerdaten aktualisiert." | So kann mann zum Beispiel speichern "Benutzer Meier hat Benutzerdaten aktualisiert." | ||
- | Um eigene Events zu verwenden, mssen diese in der Datenbanktabelle '''PRFIX_values''' wie folgt angelegt werden: | + | Um eigene Events zu verwenden, müssen diese in der Datenbanktabelle '''{PRÄFIX}_values''' wie folgt angelegt werden: |
- | {| border="1" | + | <div style="background:#f7f8ff;margin:10px 0;padding:5px;font-family:monospace;font-size:95%;"> |
- | !width="200" align="left" | Spalte | + | {| border="1" |
- | !width="200" align="left" | Wert | + | !bgcolor="#ABCDEF" width="200" align="left" | Spalte |
+ | !bgcolor="#ABCDEF" width="200" align="left" | Wert | ||
|- | |- | ||
|idvalues | |idvalues | ||
- | | | + | |autom. vergeben |
+ | |- | ||
+ | |idclient | ||
+ | |0 | ||
|- | |- | ||
|idlang | |idlang | ||
|0 | |0 | ||
+ | |- | ||
+ | |'''group_name''' | ||
+ | |events | ||
+ | |- | ||
+ | |'''key1''' | ||
+ | |<font color="#ff0000">EIGENER_EVENT_NAME</font> | ||
+ | |- | ||
+ | |'''key2''' | ||
+ | |actions | ||
+ | |- | ||
+ | |'''key3''' | ||
+ | |log | ||
+ | |- | ||
+ | |key4 | ||
+ | | | ||
+ | |- | ||
+ | |'''value''' | ||
+ | | | ||
+ | include_once ($cfg_dedi['path'].'plugins/dedilog/class.con_log.php'); | ||
+ | if (!is_object ($log)) | ||
+ | { | ||
+ | $log = &new con_log(); | ||
+ | } | ||
+ | |||
+ | $log->write_log('<font color="#ff0000">EIGENER_EVENT_NAME</font>'); | ||
+ | |||
+ | |- | ||
+ | |conf_sortindex | ||
+ | |0 | ||
+ | |- | ||
+ | |conf_desc_langstring | ||
+ | | | ||
+ | |- | ||
+ | |conf_head_langstring | ||
+ | | | ||
+ | |- | ||
+ | |conf_input_type | ||
+ | | | ||
+ | |- | ||
+ | |conf_input_type_val | ||
+ | | | ||
+ | |- | ||
+ | |conf_input_type_langstring | ||
+ | | | ||
+ | |- | ||
+ | |conf_visible | ||
+ | | | ||
|} | |} | ||
+ | </div> | ||
+ | |||
+ | EIGENER_EVENT_NAME ist die '''eindeutige''' Bezeichnung für das neue Event. Dieser Eventname darf maximal 32 Zeichen lang sein. In unserem Beispiel verwenden wir hierfür den Eventnamen '''frontend_event_aktualisiert'''. | ||
+ | |||
+ | In unserer zuvor erstellten Datei langstring_de_eigen.php fügen wir folgende Variable hinzu: | ||
+ | |||
+ | $dedi_lang['log_<font color="#ff0000">frontend_event_aktualisiert</font>'] = "Benutzer hat Daten aktualisiert"; | ||
+ | |||
+ | Wobei wir als Key useren Eventnamen und als Wert eine Beschreibung unseres Eventnamens verwenden. | ||
+ | '''Zu beachten ist, dass ein Key immer mit "log_" am Anfang beginnt!''' | ||
+ | |||
+ | Zum Schluß wird der Code | ||
+ | |||
+ | fire_event('<font color="#ff0000">frontend_event_aktualisiert</font>', array()); | ||
+ | |||
+ | an der Stelle innerhalb der Seite/des Moduls/PHP Codes eingefügt, an der eine Aktion geloggt werden soll. | ||
+ | In einer Seite wird zum Beispiel das Modul "Sourcecode" am Anfang eingebaut und dort kann der o.g. Funktionsaufruf eingesetzt werden. Somit wird immer, wenn die Seite aufgerufen wird, das Event ausgeführt. | ||
+ | |||
+ | === Hinweise zum Speichern eines Log-Eintrags === | ||
+ | Der Funktion fire_event() kann ein assoziatives Array übergeben werden, um dynamische Werte zu verarbeiten. | ||
+ | |||
+ | fire_event('<font color="#ff0000">EIGENER_EVENT_NAME</font>', array('<font color="#ff0000">WERT1</font>' => '<font color="#ff0000">XXXXXXX</font>', '<font color="#ff0000">WERT2</font>' => '<font color="#ff0000">YYYYYYY</font>'), '<font color="#ff0000">WERT3</font>' => '<font color="#ff0000">ZZZZZZZZ</font>'); | ||
+ | |||
+ | Die Methode write_log() der Klasse dedi_log speichert einen Log-Eintrag in der Datenbanktabelle {PRÄFIX}_plug_log, die in der Administration zur Übersicht der Log-Aktionen ausgelesen/verwendet wird. | ||
+ | |||
+ | Bisher werden nur Log-Meldungen angezeigt, die fest als Werte in der Datei langstring_de_eigen.php eingetragen wurden. Möchte man dynamische Werte in den Log-Einträgen speichern, kann der Methode write_log() bis zu fünfe Werte übergeben werden. Auf die in fire_event() übergebenen Werte wird über | ||
+ | |||
+ | $args['WERT1']; | ||
+ | |||
+ | zugegriffen. | ||
+ | |||
+ | Beispiel: | ||
+ | |||
+ | $log->write_log('<font color="#ff0000">EIGENER_EVENT_NAME</font>', <font color="#ff0000">$args['WERT1']</font>, <font color="#ff0000">$args['WERT2']</font>, <font color="#ff0000">$args['WERT3']</font>, <font color="#ff0000">$args['WERT4']</font>, <font color="#ff0000">$args['WERT5']</font>); | ||
+ | |||
+ | Um diese Werte in der Log-Übersicht im Backend Bereich anzeigen zu lassen, wird die Bezeichnung | ||
+ | |||
+ | value1 | ||
+ | value2 | ||
+ | ... | ||
+ | value5 | ||
+ | |||
+ | dem Wert des jeweiligen Eventnamens in der Datei langstring_de_eigen.php hinzugefügt. | ||
+ | |||
+ | Beispiel: | ||
+ | |||
+ | $dedi_lang['frontend_event_aktualisiert'] = "Daten bearbeitet - Name = <font color="#ff0000">value1</font>, Strasse = <font color="#ff0000">value2</font>, Plz = <font color="#ff0000">value3</font>"; | ||
+ | |||
+ | === Zusammenfassung - Eigene Events === | ||
+ | |||
+ | * Event in der Datenbanktabelle {PRÄFIX}_values hinzufügen | ||
+ | * Variable für den neuen Eventnamen in der Datei langstring_de_eigen.php hinzufügen | ||
+ | * DEDI Funktion fire_event() an die Stelle der Seite platzieren, an der geloggt werden soll. | ||
+ | |||
+ | [[Category:Plugins]] | ||
+ | [[Category:Anleitungen]] |
Aktuelle Version
Inhaltsverzeichnis |
[bearbeiten] Erweiterung - Frontend-Logging
[bearbeiten] Allgemeines/Voraussetzungen
Diese Beschreibung soll helfen, das dedilog-Plugin für ein Frontend-Logging verwenden zu können.
Um Benutzeraktionen im Frontent zu loggen, muss das dedilog-Plugin installiert werden. Informationen zum Plugin und Download erhält man hier:
Download dedilog
Informationen zum Plugin
DEDI Standard Events
Bei der Installation des Plugins wird/kann leider ein falscher Eintrag in der DB erzeugt werden, der die Fehlermeldung
Warning: main(/home/www/XXX/html/backend/plugins/): failed to open stream: Success in /home/www/XXX/html/backend/inc/inc.plugin.php on line 33
verursacht. Dieser Fehler kann wie folgt behoben werden:
In der Tabelle PRÄFIX_backendmenu den Eintrag für das dedilog Plugin suchen (entry_langstring Wert = nav_dedilog) und den Wert in entry_url von
main.php?area=plugin&cms_plugin=dedilog/inc.log.php
ändern in
main.php?area=plugin&dedi_plugin=dedilog/inc.log.php
[bearbeiten] Plugin-Dateien
Um das Logging für den Frontend-Bereich zu erweitern, duplizieren wir die Datei lang/langstring_de.php und geben der duplizierten Datei einen eindeutigen (Projektbezogenen Namen). Im Beispiel nennen wir die Datei langstring_de_eigen.php.
Nun öffnen wir die Datei langstring_de.php und fügen am Ende der Datei folgenden PHP Code hinzu, um unsere duplizierte Datei in das dedi Plugin einzubinden in die darin befindlichen Inhalte zu inkludieren.
require_once("langstring_de_eigen.php");
Aus der Datei langstring_de_eigen.php löschen wir alles, sodass in der Datei nur noch folgendes steht:
<?PHP $dedi_lang['log_'] = ""; ?>
[bearbeiten] Datenbank
Das dedilog Plugin verwendet die Tabelle {PRÄFIX}_plug_log um die Log-Einträge zu speichern und die Tabelle {PRÄFIX}_values um die für das Plugin bekannten DEDI Events zu speichern.
Weitere Infos über Standard DEDI Events findet man unter
Alle Standard DEDI Events, die es zum Zeitpunkt der Erstellung des Plugins gab, werden für den Backendbereich bereits berücksichtigt.
[bearbeiten] Funktionsprinzip zum ausführen von DEDI Events
(Funktionsweise wie ich Sie teilweise verstanden habe. Wenn etwas fehlt, bitte ergänzen oder ändern)
Um ein Event auszuführen, wird die Standard DEDI Funktion (vorhanden in fnc.general.php)
fire_event('con_side_new', array('schluessel1' => 'wert1', 'schluessel' => 'wert2'));
verwendet.
Diese Funktion bekommt den Event-Namen und ein assoziatives Array mit Werten übergeben.
Der übergebene Event-Name wird in der Datenbanktabelle {PRÄFIX}_values ermittelt und der dazugehörige PHP Code (in der Spalte values) wird ausgeführt.
Die im Array übergebenen Werte können im auszuführenden, gespeicherten PHP Code verwendet werden.
[bearbeiten] Eigene Log-Events erstellen
Um in einem geschätzten Bereich des Frontends das Logging einzubauen, kann man eigene Events erstellen, die in der Log-Übersicht in der Administration dann ausgewertet werden.
So kann mann zum Beispiel speichern "Benutzer Meier hat Benutzerdaten aktualisiert."
Um eigene Events zu verwenden, müssen diese in der Datenbanktabelle {PRÄFIX}_values wie folgt angelegt werden:
Spalte | Wert |
---|---|
idvalues | autom. vergeben |
idclient | 0 |
idlang | 0 |
group_name | events |
key1 | EIGENER_EVENT_NAME |
key2 | actions |
key3 | log |
key4 | |
value |
include_once ($cfg_dedi['path'].'plugins/dedilog/class.con_log.php'); if (!is_object ($log)) { $log = &new con_log(); } $log->write_log('EIGENER_EVENT_NAME'); |
conf_sortindex | 0 |
conf_desc_langstring | |
conf_head_langstring | |
conf_input_type | |
conf_input_type_val | |
conf_input_type_langstring | |
conf_visible |
EIGENER_EVENT_NAME ist die eindeutige Bezeichnung für das neue Event. Dieser Eventname darf maximal 32 Zeichen lang sein. In unserem Beispiel verwenden wir hierfür den Eventnamen frontend_event_aktualisiert.
In unserer zuvor erstellten Datei langstring_de_eigen.php fügen wir folgende Variable hinzu:
$dedi_lang['log_frontend_event_aktualisiert'] = "Benutzer hat Daten aktualisiert";
Wobei wir als Key useren Eventnamen und als Wert eine Beschreibung unseres Eventnamens verwenden. Zu beachten ist, dass ein Key immer mit "log_" am Anfang beginnt!
Zum Schluß wird der Code
fire_event('frontend_event_aktualisiert', array());
an der Stelle innerhalb der Seite/des Moduls/PHP Codes eingefügt, an der eine Aktion geloggt werden soll. In einer Seite wird zum Beispiel das Modul "Sourcecode" am Anfang eingebaut und dort kann der o.g. Funktionsaufruf eingesetzt werden. Somit wird immer, wenn die Seite aufgerufen wird, das Event ausgeführt.
[bearbeiten] Hinweise zum Speichern eines Log-Eintrags
Der Funktion fire_event() kann ein assoziatives Array übergeben werden, um dynamische Werte zu verarbeiten.
fire_event('EIGENER_EVENT_NAME', array('WERT1' => 'XXXXXXX', 'WERT2' => 'YYYYYYY'), 'WERT3' => 'ZZZZZZZZ');
Die Methode write_log() der Klasse dedi_log speichert einen Log-Eintrag in der Datenbanktabelle {PRÄFIX}_plug_log, die in der Administration zur Übersicht der Log-Aktionen ausgelesen/verwendet wird.
Bisher werden nur Log-Meldungen angezeigt, die fest als Werte in der Datei langstring_de_eigen.php eingetragen wurden. Möchte man dynamische Werte in den Log-Einträgen speichern, kann der Methode write_log() bis zu fünfe Werte übergeben werden. Auf die in fire_event() übergebenen Werte wird über
$args['WERT1'];
zugegriffen.
Beispiel:
$log->write_log('EIGENER_EVENT_NAME', $args['WERT1'], $args['WERT2'], $args['WERT3'], $args['WERT4'], $args['WERT5']);
Um diese Werte in der Log-Übersicht im Backend Bereich anzeigen zu lassen, wird die Bezeichnung
value1 value2 ... value5
dem Wert des jeweiligen Eventnamens in der Datei langstring_de_eigen.php hinzugefügt.
Beispiel:
$dedi_lang['frontend_event_aktualisiert'] = "Daten bearbeitet - Name = value1, Strasse = value2, Plz = value3";
[bearbeiten] Zusammenfassung - Eigene Events
- Event in der Datenbanktabelle {PRÄFIX}_values hinzufügen
- Variable für den neuen Eventnamen in der Datei langstring_de_eigen.php hinzufügen
- DEDI Funktion fire_event() an die Stelle der Seite platzieren, an der geloggt werden soll.