Dankeschön!
Ich verfolge gerade den Gedanken, dass beim Anzeigen der Logs irgendwas schief läuft. - Deshalb schau ich mir die includes/include.logs.php gerade etwas genauer an.
Gruß
Uli
Solved: Logs unvollständig
-
- Beiträge: 53
- Registriert: Sa 13. Mär 2004, 21:59
- Wohnort: D -> BW -> HN
- Kontaktdaten:
-
- Beiträge: 53
- Registriert: Sa 13. Mär 2004, 21:59
- Wohnort: D -> BW -> HN
- Kontaktdaten:
ICH HAB´S!!!
Folgendes:
Mann muss, um die Logs korrekt angezeigt zu bekommen, den Mandanten ausgewählt haben dessen Logs man sehen will...
Nochmal an einem Beispiel:
Angenommen man hat in einer Contenido Installation 3 Mandanten A (Sprache 1), B(Sprache 2), C(Sprache 3).
Meldet man sich z.B. als sysadmin (volle Rechte - Alle Mandanten) am System an so befindet man sich standardmässig im Mandant A (Sprache 1).
Will man nun die Logs von Mandant B einsehen kann man kann man sich direkt unter Administration>Logs die Logs von Mandant A ansehen. ABER man erhält keine Kategorien bzw. Artikelnamen angezeigt!
Wechselt man in den Mandant B(Sprache 2) so werden Kategorien bzw. Artikelnamen angezeigt problemlos dargestellt.
Warum das ganze:
Um die Logs anuzueigen wird die Datei includes/include.logs.php ausgeführt.
Hier wird ab Zeile 212 folgender Code ausgeführt:
Die Variable $lang enthält die ID der aktuell gewählten Sprache! - Und nicht die SprachID des unter "Mandant" gewählten Mandanten.
Folglich wird den Methoden getStructureName (class.structure.php) und getArtName(class.art.php) ein falscher Parameter übergeben. Im genannten Beispiel also Sprache 1(Mandant A) obwohl wir die Ergebnisse von Sprache 2 (Mandant B) sehen wollen.
Die Folge ist eine leere Rückgabe derselben...
Lange Rede kurzer Bugfix:
Geändert wird die Datei: includes/include.logs.php:
Das SQL- Statement ab Zeile 168
Alt:
Neu:
Zeile 212
Alt:
Neu
Das war´s auch schon!
Ich hoffe das ich an alles gedacht habe.
Viel Spaß damit!
Gruß
Uli
Folgendes:
Mann muss, um die Logs korrekt angezeigt zu bekommen, den Mandanten ausgewählt haben dessen Logs man sehen will...
Nochmal an einem Beispiel:
Angenommen man hat in einer Contenido Installation 3 Mandanten A (Sprache 1), B(Sprache 2), C(Sprache 3).
Meldet man sich z.B. als sysadmin (volle Rechte - Alle Mandanten) am System an so befindet man sich standardmässig im Mandant A (Sprache 1).
Will man nun die Logs von Mandant B einsehen kann man kann man sich direkt unter Administration>Logs die Logs von Mandant A ansehen. ABER man erhält keine Kategorien bzw. Artikelnamen angezeigt!
Wechselt man in den Mandant B(Sprache 2) so werden Kategorien bzw. Artikelnamen angezeigt problemlos dargestellt.
Warum das ganze:
Um die Logs anuzueigen wird die Datei includes/include.logs.php ausgeführt.
Hier wird ab Zeile 212 folgender Code ausgeführt:
Code: Alles auswählen
$structureName = $structureclass->getStructureName($structureclass->getStructureIDForCatArt($db->f("idcatart")),$lang);
$artName = $artclass->getArtName($artclass->getArtIDForCatArt($db->f("idcatart")),$lang);
Folglich wird den Methoden getStructureName (class.structure.php) und getArtName(class.art.php) ein falscher Parameter übergeben. Im genannten Beispiel also Sprache 1(Mandant A) obwohl wir die Ergebnisse von Sprache 2 (Mandant B) sehen wollen.
Die Folge ist eine leere Rückgabe derselben...
Lange Rede kurzer Bugfix:
Geändert wird die Datei: includes/include.logs.php:
Das SQL- Statement ab Zeile 168
Alt:
Code: Alles auswählen
$sql = 'SELECT
idlog,
user_id,
idaction,
idclient,
idcatart,
logtimestamp
FROM
'. $cfg["tab"]["actionlog"] . '
WHERE
user_id '.$userquery.' AND
idaction LIKE "'.$idqaction.'" AND
logtimestamp > "'.$fromdate.'" AND
logtimestamp < "'.$todate.'" AND
idclient LIKE "'.$idqclient.'"
ORDER BY logtimestamp DESC '
. $limitsql;
Code: Alles auswählen
$sql = 'SELECT
idlog,
user_id,
idaction,
idlang,
idclient,
idcatart,
logtimestamp
FROM
'. $cfg["tab"]["actionlog"] . '
WHERE
user_id '.$userquery.' AND
idaction LIKE "'.$idqaction.'" AND
logtimestamp > "'.$fromdate.'" AND
logtimestamp < "'.$todate.'" AND
idclient LIKE "'.$idqclient.'"
ORDER BY logtimestamp DESC '
. $limitsql;
Zeile 212
Alt:
Code: Alles auswählen
$structureName = $structureclass->getStructureName($structureclass->getStructureIDForCatArt($db->f("idcatart")),$lang);
$artName = $artclass->getArtName($artclass->getArtIDForCatArt($db->f("idcatart")),$lang);
Code: Alles auswählen
$structureName = $structureclass->getStructureName($structureclass->getStructureIDForCatArt($db->f("idcatart")),$db->f("idlang"));
$artName = $artclass->getArtName($artclass->getArtIDForCatArt($db->f("idcatart")),$db->f("idlang"));
Ich hoffe das ich an alles gedacht habe.
Viel Spaß damit!
Gruß
Uli