Solved: Logs unvollständig

ulisteinle
Beiträge: 53
Registriert: Sa 13. Mär 2004, 21:59
Wohnort: D -> BW -> HN
Kontaktdaten:

Beitrag von ulisteinle »

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
ulisteinle
Beiträge: 53
Registriert: Sa 13. Mär 2004, 21:59
Wohnort: D -> BW -> HN
Kontaktdaten:

Beitrag von ulisteinle »

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:

Code: Alles auswählen

        $structureName = $structureclass->getStructureName($structureclass->getStructureIDForCatArt($db->f("idcatart")),$lang);
        $artName = $artclass->getArtName($artclass->getArtIDForCatArt($db->f("idcatart")),$lang);
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:

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;
Neu:

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);
Neu

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")); 
Das war´s auch schon!

Ich hoffe das ich an alles gedacht habe.

Viel Spaß damit!

Gruß
Uli
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

guter bugfix ;-)
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

ja in der Tat ;)

habe ich eingebaut. Danke!
Gesperrt