Frontend User Log mit besuchten Seiten
Frontend User Log mit besuchten Seiten
Hallo Forum,
ich bin neuer Forums-User hier, aber das Forum nutzte ich schon eine weile und es hat mir bis jetzt schon bei allen Fragen die ich hatte, weiterhelfen können, nur eben für diese Frage nicht.
Im Post: http://contenido.org/forum/viewtopic.php?t=12626 wird so etwas auch angesprochen, jedoch reicht uns das nicht.
Wir bräuchten also eine Art Big Brother
Nun gibt es die Möglichkeit, dass wir im Backend verfolgen können, welche Seiten der Frontend User besucht hat? So in der Art von "Administration --> Logs"
Dies wäre für unsere Statistiken sehr hilfreich.
Gruß
Tobias
ich bin neuer Forums-User hier, aber das Forum nutzte ich schon eine weile und es hat mir bis jetzt schon bei allen Fragen die ich hatte, weiterhelfen können, nur eben für diese Frage nicht.
Im Post: http://contenido.org/forum/viewtopic.php?t=12626 wird so etwas auch angesprochen, jedoch reicht uns das nicht.
Wir bräuchten also eine Art Big Brother
Nun gibt es die Möglichkeit, dass wir im Backend verfolgen können, welche Seiten der Frontend User besucht hat? So in der Art von "Administration --> Logs"
Dies wäre für unsere Statistiken sehr hilfreich.
Gruß
Tobias
Nun, wir könnten es zusammen entwickeln. Mit den besuchten Seiten? Urgh... das wird eine Datenmenge...
Wird ein paar Tage brauchen und Du musst mit ran.
Fangen wir an:
Lege mit phpMyAdmin eine neue Tabelle <Prefix>_frontendlog mit folgenden Spalten an (das ist kein SQL-Statement - in phpmyadmin nachbasteln):
10 Spalten:
idfrontendlog INT(10) NOT NULL DEFAULT 0
idfrontenduser INT(10) NOT NULL DEFAULT 0
username VARCHAR(255) NOT NULL
type VARCHAR(10) NOT NULL
idclient INT(10) NOT NULL DEFAULT 0
idlang INT(10) NOT NULL DEFAULT 0
idart INT(10) NOT NULL DEFAULT 0
idcat INT(10) NOT NULL DEFAULT 0
title VARCHAR(255) NOT NULL
created DATETIME NOT NULL DEFAULT 0000-00-00 00:00:00
phpMyAdmin zeigt das resultierende SQL-Statement bei Erzeugung an. Dieses bitte hier posten.
Gruß
HerrB
P.S.: Das ist Sammelstück eins von > 10, jetzt zum Einführungspreis von 4,95 Euro!
Wird ein paar Tage brauchen und Du musst mit ran.
Fangen wir an:
Lege mit phpMyAdmin eine neue Tabelle <Prefix>_frontendlog mit folgenden Spalten an (das ist kein SQL-Statement - in phpmyadmin nachbasteln):
10 Spalten:
idfrontendlog INT(10) NOT NULL DEFAULT 0
idfrontenduser INT(10) NOT NULL DEFAULT 0
username VARCHAR(255) NOT NULL
type VARCHAR(10) NOT NULL
idclient INT(10) NOT NULL DEFAULT 0
idlang INT(10) NOT NULL DEFAULT 0
idart INT(10) NOT NULL DEFAULT 0
idcat INT(10) NOT NULL DEFAULT 0
title VARCHAR(255) NOT NULL
created DATETIME NOT NULL DEFAULT 0000-00-00 00:00:00
phpMyAdmin zeigt das resultierende SQL-Statement bei Erzeugung an. Dieses bitte hier posten.
Gruß
HerrB
P.S.: Das ist Sammelstück eins von > 10, jetzt zum Einführungspreis von 4,95 Euro!
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Hallo HerrB,
was heißt wir könnten
Ich bin nicht gerade ein speziallist in Sachen SQL und PHP. Werde aber mein bestes geben.
Ich habe jetzt mal die Tabelle eingefügt, foglendes kam dabei heraus.
Meinten Sie das mit SQL-Statement???
Stimmt das soweit? Mit dem index war ich mir nicht so sicher!
Gruß
Tobias
was heißt wir könnten
Ich bin nicht gerade ein speziallist in Sachen SQL und PHP. Werde aber mein bestes geben.
Ich habe jetzt mal die Tabelle eingefügt, foglendes kam dabei heraus.
Code: Alles auswählen
CREATE TABLE `con_frontendlog` (
`idfrontendlog` INT( 10 ) DEFAULT '0' NOT NULL PRIMARY KEY,
`idfrontenduser` INT( 10 ) DEFAULT '0' NOT NULL ,
`username` VARCHAR( 255 ) NOT NULL ,
`type` VARCHAR( 10 ) NOT NULL ,
`idclient` INT( 10 ) DEFAULT '0' NOT NULL ,
`idlang` INT( 10 ) DEFAULT '0' NOT NULL ,
`idart` INT( 10 ) DEFAULT '0' NOT NULL ,
`idcat` INT( 10 ) DEFAULT '0' NOT NULL ,
`title` VARCHAR( 255 ) NOT NULL ,
`created` DATETIME DEFAULT '0000-00-00 00:00:00 ' NOT NULL
) TYPE = MYISAM ;
Stimmt das soweit? Mit dem index war ich mir nicht so sicher!
Gruß
Tobias
Ja, genau, ich habe noch einen Primary Key für die idfrontendlog ergänzt - das müsstest Du bei Dir noch aktivieren (phpMyAdmin).
Nächster Schritt:
Man öffne contenido/includes/cfg_sql.inc.php und trage unter
die Zeile
ein.
Gruß
HerrB
Nächster Schritt:
Man öffne contenido/includes/cfg_sql.inc.php und trage unter
Code: Alles auswählen
$cfg["tab"]["frontendgroupmembers"] = $cfg['sql']['sqlprefix']."_frontendgroupmembers";
Code: Alles auswählen
$cfg["tab"]["frontendlog"] = $cfg['sql']['sqlprefix']."_frontendlog";
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Ok.
Dann lege unter contenido/classes eine Datei Namens class.frontend.log.php mit folgendem Inhalt an:
Der nächste Schritt folgt gleich.
Gruß
HerrB
Dann lege unter contenido/classes eine Datei Namens class.frontend.log.php mit folgendem Inhalt an:
Code: Alles auswählen
<?php
/*****************************************
* File : $RCSfile: class.frontend.log.php,v $
* Project : Contenido
* Descr : Frontend user class
* Modified : $Date: 2005/11/08 17:20:31 $
*
* © four for business AG, www.4fb.de, provided by HerrB
*
* $Id: class.frontend.log.php,v 1.16 2005/11/08 17:20:31 bjoern.behrens Exp $
******************************************/
cInclude("classes", "class.frontend.users.php");
cInclude("classes", "contenido/class.articlelanguage.php");
/**
* Collection management class
*/
class cFrontendLogCollection extends ItemCollection {
/**
* Constructor Function
* @param none
*/
function cFrontendLogCollection()
{
global $cfg;
parent::ItemCollection($cfg["tab"]["frontendlog"], "idfrontendlog");
$this->_setItemClass("cFrontendLog");
}
/**
* Loads an item by its ID (primary key)
* @param $itemID integer Specifies the item ID to load
*/
function loadItem ($itemID)
{
$item = new cFrontendLog();
$item->loadByPrimaryKey($itemID);
return ($item);
}
/**
* Creates a new log entry
* @param $idfrontenduser integer ID of frontenduser
* @param $type string Specifies log item type (e.g. "login", "article")
* @param $id_art integer optional, specifies the article id of the viewed article
* @param $id_cat integer optional, specified the category id of the views article (only for compatibility reasons)
*/
function create ($idfrontenduser, $type = "article", $id_art = 0, $id_cat = 0)
{
global $client, $lang;
$oFEUser = new FrontendUser;
$oFEUser->loadByPrimaryKey($idfrontenduser);
$sUserName = $oFEUser->get("username");
unset ($oFEUser);
$sTitle = "";
if ($id_art > 0 && is_numeric($id_art)) // && $id_cat > 0 && is_numeric($id_cat)
{
$oArticles = new cApiArticleLanguageCollection;
$oArticles->setWhere("idlang", $lang);
$oArticles->setWhere("idart", $id_art);
$oArticles->query();
if ($oArticle = $oArticles->next()) {
$sTitle = $oArticle->get("title");
}
unset ($oArticle);
unset ($oArticles);
} else
{
$id_art = 0;
$id_cat = 0;
}
$item = parent::create();
$item->set("idfrontenduser", $idfrontenduser);
$item->set("username", $sUserName);
$item->set("type", $type);
$item->set("idclient", $client);
$item->set("idlang", $lang);
$item->set("idart", $id_art);
$item->set("idcat", $id_cat);
$item->set("title", $sTitle);
$item->set("created", date("Y-m-d H:i:s"), false);
$item->store();
return $item;
}
}
/**
* Single Item
*/
class cFrontendLog extends Item {
/**
* Constructor Function
* @param none
*/
function cFrontendLog()
{
global $cfg;
parent::Item($cfg["tab"]["frontendlog"], "idfrontendlog");
}
}
?>
Gruß
HerrB
Zuletzt geändert von HerrB am Fr 30. Jun 2006, 13:19, insgesamt 1-mal geändert.
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Öffne unter contenido/classes/contenido die Datei class.articlelanguage.php und ersetze diese Zeile:
mit
(ist ein Bug)
Gruß
HerrB
Code: Alles auswählen
cInclude("classes", "class.genericdb.php");
Code: Alles auswählen
cInclude("classes", "contenido/class.article.php");
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Es wird vermutlich Fehlermeldungen hageln und ich bin aufgrund eines ... öhm ... wichtigen ... dienstlichen ... Termins oder so (der liegt so 17:00 Uhr ... ) nur begrenzt verfügbar, wenn ich keine Zeit mehr habe, machen wir morgen oder Sonntag weiter.
Ähm, kleine Änderung, bitte verschiebe die neue Klasse nach contenido/classes (Tippfehler), oben habe ich es geändert.
Erstelle ein Modul mit folgendem Inhalt (nur Output):
und ergänze es in einem Template (z.B. dem Template der Startseite). Logge Doch dann mit einem Frontend-Account ein, gehe auf die Startseite (oder einen Artikel, der dieses Template ebenfalls verwendet).
Und dann sehen wir weiter. Wenn wider erwarten keine Fehlermeldung erscheint, wirf einen Blick in die Tabelle (bitte posten, was drinsteht, 1-2 Zeilen reichen). Wenn die Tabelle leer ist, noch einen Blick ins errorlog werfen.
Gruß
HerrB
Ähm, kleine Änderung, bitte verschiebe die neue Klasse nach contenido/classes (Tippfehler), oben habe ich es geändert.
Erstelle ein Modul mit folgendem Inhalt (nur Output):
Code: Alles auswählen
<?php
/* Add frontend log item for current article */
cInclude("classes", "class.frontend.log.php");
if (is_numeric($auth->auth["uid"])) { // Nice trick, as only the uid from frontend users is numeric... (and not "nobody")
$oLog = new cFrontendLogCollection;
$oLog->create($auth->auth["uid"], "article", $idart, $idcat);
unset ($oLog);
}
?>
Und dann sehen wir weiter. Wenn wider erwarten keine Fehlermeldung erscheint, wirf einen Blick in die Tabelle (bitte posten, was drinsteht, 1-2 Zeilen reichen). Wenn die Tabelle leer ist, noch einen Blick ins errorlog werfen.
Gruß
HerrB
Zuletzt geändert von HerrB am Sa 1. Jul 2006, 16:02, insgesamt 2-mal geändert.
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Ja, contenido/classes.Die Datei unter contenido/classes oder contenido/classes/contenido anlegen? Vermutlich ersteres?
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
So da bin ich wieder! Hatte gestern auch einen Termin um 17 Uhr
Danach war ich leider nicht mehr in der Lage etwas zu testen!!!
Also habe alle Änderungen durch. Nun kommt auf den den Seiten wo ich das Template eingefügt habe folgende Fehlermeldung:
Die Tabelle hat keinen Eintrag!
Gruß
Tobias
Danach war ich leider nicht mehr in der Lage etwas zu testen!!!
Also habe alle Änderungen durch. Nun kommt auf den den Seiten wo ich das Template eingefügt habe folgende Fehlermeldung:
Code: Alles auswählen
Fatal error: Cannot instantiate non-existent class: frontendlogcollection in /www/htdocs/w0071daf/cms/front_content.php(792) : eval()'d code on line 183
Gruß
Tobias
Ändere im Modul den Term FrontendLogCollection in cFrontendLogCollection, ich habe es oben schon korrigiert.
Gruß
HerrB
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Fein, was mir noch eingefallen ist: Möchtest Du auch den Kategorie-Namen im Klartext im Log haben?
Gruß
HerrB
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net