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/

