|
ID #308
Klaro.
Also in der pi1 muß oben erstmal die Single-Ansicht auf nocache gestellt werden, damit man bei jeder Single-Ansicht einen Datenbankzugriff erzwingt:
case 'SINGLE':
$GLOBALS["TSFE"]->set_no_cache(); // wurde eingeführt, weil sonst der Klickzähler nicht funktioniert
$content .= $this->displaySingle($pid,$catId);
break;
************
dann habe ich in der getItem() Funktion dazugehackt:
// das soll der Klickzähler werden
if($detail){ //wenn also Single-View
$detailuid = $row['uid']; //damit wir die UID des Eintrages haben
$IP= $_SERVER['REMOTE_ADDR']; //damit wir die Adresse des Zugreifenden Users haben
$checkTable = $GLOBALS['TYPO3_DB']->sql(TYPO3_db,"SELECT * FROM " . $this->dbTable6 . " WHERE ip = '$IP' AND fid = " . intval($detailuid) . " AND logdate = CURDATE()" ;
if(!$GLOBALS['TYPO3_DB']->sql_num_rows($checkTable)) {
$GLOBALS['TYPO3_DB']->sql(TYPO3_db,"INSERT INTO " . $this->dbTable6 . " SET logdate = NOW(), tstamp = " . time() . ", fid = " . intval($detailuid) . ", ip = '$IP'" ;
$GLOBALS['TYPO3_DB']->sql(TYPO3_db,"UPDATE " . $this->dbTable1 . " SET hit_count = hit_count+1 WHERE uid = " . intval($detailuid));
}
So einfach ;-)
Die Sache hat natürlich auch wieder zwei Seiten:
Da pro Detailzugriff jetzt die Funktion getItem aufgerufen werden muß + noch ein Eintrag in der IP-SQL-Tabelle gemacht wird, weiß ich nicht, ob es bei gut besuchten Seiten auch noch sinnvoll ist....
Gruß Manfred
|