Dokumentation DeDi-Log
Aus DeDi-Help
(Unterschied zwischen Versionen)
Version vom 11:15, 6. Okt. 2009 (bearbeiten) Eppi (Diskussion | Beiträge) ← Zum vorherigen Versionsunterschied |
Version vom 16:14, 23. Okt. 2009 (bearbeiten) (Entfernen) 195.54.28.229 (Diskussion) (HARWvQINjIDfCsOP) Zum nächsten Versionsunterschied → |
||
Zeile 1: | Zeile 1: | ||
- | = Erweiterung - Frontend-Logging = | + | n0dHvR <a href="http://greusuffzktx.com/">greusuffzktx</a>, [url=http://chuvmrphixox.com/]chuvmrphixox[/url], [link=http://rppqpnjqetou.com/]rppqpnjqetou[/link], http://hndhqgfgfwul.com/ |
- | + | ||
- | == 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: | + | |
- | + | ||
- | [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://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 | + | |
- | + | ||
- | '''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''' | + | |
- | + | ||
- | + | ||
- | <br /> | + | |
- | <br /> | + | |
- | + | ||
- | == 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_'] = ""; | + | |
- | ?> | + | |
- | + | ||
- | == 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 | + | |
- | + | ||
- | [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 für den Backendbereich bereits berücksichtigt. | + | |
- | + | ||
- | == 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. | + | |
- | + | ||
- | == 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: | + | |
- | + | ||
- | <div style="background:#f7f8ff;margin:10px 0;padding:5px;font-family:monospace;font-size:95%;"> | + | |
- | {| border="1" | + | |
- | !bgcolor="#ABCDEF" width="200" align="left" | Spalte | + | |
- | !bgcolor="#ABCDEF" width="200" align="left" | Wert | + | |
- | |- | + | |
- | |idvalues | + | |
- | |autom. vergeben | + | |
- | |- | + | |
- | |idclient | + | |
- | |0 | + | |
- | |- | + | |
- | |idlang | + | |
- | |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]] | + |
Version vom 16:14, 23. Okt. 2009
n0dHvR <a href="http://greusuffzktx.com/">greusuffzktx</a>, [url=http://chuvmrphixox.com/]chuvmrphixox[/url], [link=http://rppqpnjqetou.com/]rppqpnjqetou[/link], http://hndhqgfgfwul.com/