Dokumentation DeDi-Log

Aus DeDi-Help

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
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

DEDI Events

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.
Persönliche Werkzeuge