Nicht schoen, aber selten ... Eigentlich laeuft's auch nicht, wie es soll, aber ich wollte trotzdem schon mal den Zwischenstand veroeffentlichen. Vielleicht kann es jemand verbessern.
Ich weiss naemlich gerade nicht, woran es liegt, aber ... je nach Anzahl der eingestellten Tage werden entweder die Daten aus der aktuellen Statistik oder aus dem Archiv geholt, jedoch ohne die Anzahl wirklich zu beruecksichtigen. Also ob ich heute 25 oder 250 Tage einstelle, macht nichts, es stehen bei beiden die gleichen Zahlen. Was ich nicht weiss und gerade auch nicht ausprobieren kann, weil sich mein Server verabschiedet hat: ob das wenigstens funktioniert, wenn man weniger Tage als das aktuelle Datum (also z.B. nur 15) angibt, also ob dann tatsaechlich nur die Statistik der letzten 15 Tage oder doch die vom ganzen (aktuellen) Monat ausgegeben wird.
Code: Alles auswählen
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : Übersicht häufigste besuchte Seiten
* berücksichtigt con_stat UND con_stat_archive
* Anzahl der zu berücksichtigen Tage
* ist einstellbar
* Author : Christa Tabara
* Copyright : Christa Tabara
* Created : 25-06-2004
* Modified : 17-10-2004
************************************************/
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
<tr>
<td>Wieviele Artikel sollen aufgelistet werden?</td>
<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\"></td>
</tr>
<tr>
<td>Wieviel Tage sollen berücksichtigt werden?</td>
<td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\"></td>
</tr>
</table>";
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Übersicht häufigste besuchte Seiten
* berücksichtigt con_stat UND con_stat_archive
* Anzahl der zu berücksichtigen Tage
* ist einstellbar
* Author : Christa Tabara
* Copyright : Christa Tabara
* Created : 25-06-2004
* Modified : 17-10-2004
************************************************/
$anzahl='CMS_VALUE[4]';
$anzahltage='CMS_VALUE[5]';
$aktuellesekunde=date("YmdHis");
$erstesekundedesmonats=date("Ym").'01000001';
$zeitdifferenz=($aktuellesekunde-$erstesekundedesmonats)/1000000;
$db = new DB_Contenido;
if($zeitdifferenz>=$anzahltage)
$sql = "SELECT DISTINCT ARTLANG.title, ARTLANG.idart, CAT.idcat, STAT.visited
FROM {$cfg['tab']['art_lang']} AS ARTLANG,
{$cfg['tab']['cat_art']} AS CATART,
{$cfg['tab']['cat']} AS CAT,
{$cfg['tab']['stat']} AS STAT
WHERE ARTLANG.online = '1'
AND ARTLANG.idart = CATART.idart
AND ARTLANG.idlang = STAT.idlang
AND CATART.idcatart = STAT.idcatart
AND CATART.idcat = CAT.idcat
AND STAT.idlang= '$lang'
AND STAT.idclient = '$client'
AND (DATE_SUB(CURRENT_TIMESTAMP()+0,INTERVAL $anzahltage DAY) <= STAT.visitdate)
GROUP BY ARTLANG.title
ORDER BY STAT.visited desc
LIMIT 0,".$anzahl;
else
$sql = "SELECT DISTINCT ARTLANG.title, ARTLANG.idart, CAT.idcat, STATARCH.visited,
STAT.visitdate, STATARCH.visitdate
FROM {$cfg['tab']['art_lang']} AS ARTLANG,
{$cfg['tab']['cat_art']} AS CATART,
{$cfg['tab']['cat']} AS CAT,
{$cfg['tab']['stat']} AS STAT,
{$cfg['tab']['stat_archive']} AS STATARCH
WHERE ARTLANG.online = '1'
AND ARTLANG.idart = CATART.idart
AND ARTLANG.idlang = STAT.idlang
AND ARTLANG.idlang = STATARCH.idlang
AND CATART.idcatart = STAT.idcatart
AND CATART.idcatart = STATARCH.idcatart
AND CATART.idcat = CAT.idcat
AND STAT.idlang= '$lang'
AND STAT.idclient = '$client'
AND STATARCH.idlang= '$lang'
AND STATARCH.idclient = '$client'
AND (DATE_SUB(CURRENT_TIMESTAMP()+0,INTERVAL $anzahltage DAY) <= STAT.visitdate
OR DATE_SUB(CURRENT_TIMESTAMP()+0,INTERVAL $anzahltage DAY) <= STATARCH.visitdate)
GROUP BY ARTLANG.title
ORDER BY STATARCH.visited desc
LIMIT 0,".$anzahl;
$db->query($sql);
echo '<table width="290" border="0" cellspacing="0" cellpadding="2" style="border: 1px; border-color: #4779a0; border-style: solid">
<tr><td width="90%" style="border: 1px; border-right: 0px; border-color: #4779a0; border-style: solid; background-color: #EEEEEE; padding-left:10px" class="subheadline">Am häufigsten besuchte Seiten</td>
<td width="10%" style="border: 1px; border-color: #4779a0; border-style: solid; background-color: #EEEEEE; padding-left:10px" class="subheadline">Aufrufe</td>
</tr>';
for ($zeilen = 0; $zeilen<$anzahl; $zeilen++)
{
$db->next_record();
$title = $db->f("title");
$idcat_mfv = $db->f("idcat");//mfv=most frequently visited
$idart_mfv = $db->f("idart");
$aufrufe = $db->f("visited");
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat_mfv&idart=$idart_mfv");
echo '<tr>
<td width="90%" style="border: 1px; border-top:0px; border-right:0px; border-color: #4779a0; border-style: solid; padding-left:10px"><a href="'.$link.'">'.$title.'</a></td>
<td width="10%" style="border: 1px; border-top:0px; border-color: #4779a0; border-style: solid; padding-left:10px" class="subheadline">'.$aufrufe.'</a></td>
</tr>';
}
echo '</table>';
?>