Seite 2 von 2

Verfasst: Mo 3. Jul 2006, 14:33
von HerrB
Gut, aber bedenke, dass wenn die Kategorie gelöscht wird, Du nie wieder weisst, wo er (in Bezug auf die Kategorie) war.

Das obige Modul baust Du nun in jedes Template ein.

Dann fehlt nur noch die Ausgabe:

Code: Alles auswählen

<?php 
/* Output log */ 
cInclude("classes", "class.frontend.log.php"); 

$oLogs = new cFrontendLogCollection; 
$oLogs->setWhere("idfrontenduser", $auth->auth["uid"]);
$oLogs->setOrder("created DESC");
$oLogs->query();

while ($oLog = $oLogs->next()) {
   echo $oLog->get("title").":&nbsp;".$oLog->get("created")."<br />";
} 
?>
Das ist ein kurzes Beispiel, welches für den aktuell angemeldeten Nutzer die besuchten Seiten mit Zeit ausgeben sollte (ungetestet) - d.h. muss auf einer Seite sein, die nur nach Login zu erreichen ist.

Das Zeitformat kann man mit strftime (siehe http://www.php.net) anpassen. Andere oder alle Nutzer kann man auflisten, in dem man das setWhere entsprechend anpasst oder ganz weglässt.

Aufgrund der zu erwartenden Datenmenge sollte die Abfrage mit ->setLimit(<Anfang>, <Anzahl>) begrenzt werden (siehe Limit bei http://www.mysql.org) und ein Blättern implementiert werden. Auch die Ausgabe in einer Tabelle erscheint sinnvoll.

Da darfste Dich aber erstmal selbst dran versuchen, da helfe ich nur, wenn es ganr nicht mehr geht.

Viele Erfolg.

Gruß
HerrB

Verfasst: Mo 3. Jul 2006, 15:42
von TV
Hallo,

also ich habe jetzt ein neues Modul "Auswertung" angelgt und den Code als Ausgabe eingefügt und da ich alle User angezeigt bekommen will die Zeile setWhere rausgenommen.
Das Modul in ein Template eingebaut und einem Artikel "Auswertung" zugewiesen.
Es wurde nur das Datum und die Uhrzeit angezeigt, hab dann mal ein bischen probiert und festgestellt dass anstatt "article" "title" rein muss.

Hier mein Code

Code: Alles auswählen

<?php 
/* Output log */ 
cInclude("classes", "class.frontend.log.php"); 

$oLogs = new cFrontendLogCollection;
$oLogs->setOrder("created DESC"); 
$oLogs->query(); 

while ($oLog = $oLogs->next()) { 
   echo $oLog->get("username").":&nbsp;".$oLog->get("title").":&nbsp;".$oLog->get("created")."<br />"; 
} 
?>
Es müssen also die Tabellennamen eingetragen werden.
Das Zeitformat kann man mit strftime (siehe http://www.php.net) anpassen. Andere oder alle Nutzer kann man auflisten, in dem man das setWhere entsprechend anpasst oder ganz weglässt.

Aufgrund der zu erwartenden Datenmenge sollte die Abfrage mit ->setLimit(<Anfang>, <Anzahl>) begrenzt werden (siehe Limit bei http://www.mysql.org) und ein Blättern implementiert werden. Auch die Ausgabe in einer Tabelle erscheint sinnvoll.

Da darfste Dich aber erstmal selbst dran versuchen, da helfe ich nur, wenn es ganr nicht mehr geht.
Ich werde mein bestes geben, mal schauen obs klappt.
Ich glaube es würde auch Sinn machen, wenn man einen Button einbaut, der die Tabelle löscht, bin gespannt ob ich das hin bekomme, bzw. ob das überhaut geht.

Gruß
Tobias

Verfasst: Mo 3. Jul 2006, 15:49
von HerrB
Es müssen also die Tabellennamen eingetragen werden.
Yep, ich mache das gerade on the fly...
Ich glaube es würde auch Sinn machen, wenn man einen Button einbaut, der die Tabelle löscht, bin gespannt ob ich das hin bekomme, bzw. ob das überhaut geht.
Klar. Entweder direkt über einen SQL-Befehl oder:
<?php
/* Output log */
cInclude("classes", "class.frontend.log.php");

$oLogs = new cFrontendLogCollection;
$oLogs->setWhere("idfrontenduser", $auth->auth["uid"]);
$oLogs->query();

while ($oLog = $oLogs->next()) {
$oLogs->delete($oLog->get($oLog->primaryKey));
}
?>
Gruß
HerrB

Verfasst: Di 4. Jul 2006, 13:49
von TV
Ich habe die Ausgabe in einer Tabelle stehen, mit Überschriften und unten einen Button "Daten Löschen" hinzugefügt. Diese Auswertung können nur Admins ansehen und löschen. Genau so hab ich mir das vorgestellt.

Vielen Dank HerrB für die Unterstützung! :)

Verfasst: Di 4. Jul 2006, 14:46
von HerrB
Gern. Wenn Du da noch was zum Bättern bastelst/gebastelt hast, bitte hier posten, das nützt dann auch anderen.

Gruß
HerrB

andryk

Verfasst: Mo 6. Nov 2006, 18:35
von HerrB
Per PM:
Andyk hat geschrieben:Hallo,

...
Habe alles nach Ihrer Anleitung gemacht.
Ich bekomme aber folgende Fehlermeldung:

Warning: D:\Programme\xampp\htdocs\Intranet\contenido\classes\class.genericdb.php 1438: Tried to load a single line with field idfrontendlog and value 1 from con_frontendlog but found more than one row in D:\Programme\xampp\htdocs\Intranet\contenido\includes\functions.general.php on line 1890

Woran liegt das ?

Danke schonmal im vorraus.

Gruß
Andy
1) Bitte immer im Forum posten
2) Vermutlich enthält die frontendlog-Tabelle mehr als einen Eintrag mit der gleichen idfrontendlog

Bitte mal den doppelten Eintrag rauslöschen (wenn möglich, alle) und dann nochmal versuchen.

Gruß
HerrB