So. Habe mal gebastelt. Ist zwar nicht die Lösung aller Lösungen, aber es funktioniert. Vielleicht kann man ja drauf aufbauen...
Was ist zu tun:
1) Ergänzen der "contenido/templates/standard/template.stat_top.html" sowie "contenido/templates/standard/template.stat_overview.html" um:
Code: Alles auswählen
<br/>
<br/>
<table style="border:0px; border-left:1px; border-bottom: 1px;border-color: {BORDERCOLOR}; border-style: solid;" width="100%" cellspacing="0" cellpadding="2" border="0">
<tr class="text_medium" style="background-color: {TITLEBGCOLOR};">
<td style="border: 0px; border-top:1px; border-right:1px;border-color: {BORDERCOLOR}; border-style: solid; padding-left:{TITLEPADDING_LEFT}px" colspan="2">Export als CSV-Datei</td>
</tr>
<tr>
<td style="border: 0px; border-top:1px; border-right:1px;border-color: {BORDERCOLOR}; border-style: solid; padding-left:{PADDING_LEFT}px">
aktuelle Statistik
</td>
<td style="border: 0px; border-top:1px; border-right:1px;border-color: {BORDERCOLOR}; border-style: solid; padding: 6px; padding-left:{PADDING_LEFT}px;">
<a href="http://www.MEINEDOMAIN.de/contenido/export_statistik/export_statistik.php?stat=con_stat" target="_blank"><span style="background-color: {TITLEBGCOLOR}; border:1px; border-color: {BORDERCOLOR}; border-style: solid; padding: 3px;">Exportieren</span></a>
</td>
</tr>
<tr>
<td style="border: 0px; border-top:1px; border-right:1px;border-color: {BORDERCOLOR}; border-style: solid; padding-left:{PADDING_LEFT}px">
gesamte archivierte Statistiken
</td>
<td style="border: 0px; border-top:1px; border-right:1px;border-color: {BORDERCOLOR}; border-style: solid;padding: 6px; padding-left:{PADDING_LEFT}px;">
<a href="http://www.MEINEDOMAIN.de/contenido/export_statistik/export_statistik.php?stat=con_stat_archive" target="_blank"><span style="background-color: {TITLEBGCOLOR}; border:1px; border-color: {BORDERCOLOR}; border-style: solid; padding: 3px;">Exportieren</span></a>
</td>
</tr>
<tr>
<td style="border: 0px; border-top:1px; border-right:1px;border-color: {BORDERCOLOR}; border-style: solid; padding-left:{PADDING_LEFT}px">
Zeitraum:
</td>
<td style="border: 0px; border-top:1px; border-right:1px;border-color: {BORDERCOLOR}; border-style: solid; padding-left:{PADDING_LEFT}px">
<form action="http://www.MEINEDOMAIN.de/contenido/export_statistik/export_statistik.php?stat=con_stat_archive" method="post">
Monat von <input type="number" size="4" name="monthfrom"> (YYYYMM) bis <input type="number" size="4" name="monthtill"> (YYYYMM)
<input style="background-color: {TITLEBGCOLOR}; border:1px; border-color: {BORDERCOLOR}; border-style: solid;" type="submit" name="submit" value="Exportieren">
</form>
</td>
</tr>
</table>
direkt vor dem </body>-Tag und anpassen von MEINEDOMAIN.
2) Anlegen des Ordners contenido/"export_statistik" und darin der Datei "export_statistik.php":
Code: Alles auswählen
<?php
$DatabaseHost = "LOCALHOST";
$DatabaseUser = "XXXXXXXX";
$DatabasePassword = "XXXXXXXX";
$Database = "XXXXXXXX";
if (isset($_GET["stat"])) {
$table = htmlspecialchars($_GET["stat"]);
}
if (isset($_POST["monthfrom"])) {
$monthfrom = htmlspecialchars($_POST["monthfrom"]);
}
if (isset($_POST["monthtill"])) {
$monthtill = htmlspecialchars($_POST["monthtill"]);
}
header('Content-Type: text/x-csv');
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Content-Disposition: attachment; filename=contenido_statistik.csv');
header('Pragma: no-cache');
$DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword);
mysql_select_db($Database, $DatabasePointer);
if ($table=="con_stat_archive" AND $monthfrom!="" AND $monthtill!="")
{
$ResultPointer = mysql_query("SELECT A.*, C.title FROM $table A, con_cat_art B, con_art_lang C WHERE A.idcatart = B.idcatart AND A.idlang=C.idlang AND B.idart=C.idart AND A.archived>=$monthfrom AND A.archived<=$monthtill;");
}
else
{
$ResultPointer = mysql_query("SELECT A.*, C.title FROM $table A, con_cat_art B, con_art_lang C WHERE A.idcatart = B.idcatart AND A.idlang=C.idlang AND B.idart=C.idart;");
}
$Export .="\"Monat\"";
$Export .= ",";
$Export .="\"idcatart\"";
$Export .= ",";
$Export .="\"idlang\"";
$Export .= ",";
$Export .="\"idclient\"";
$Export .= ",";
$Export .="\"Besuche\"";
$Export .= ",";
$Export .="\"Artikel\"";
$Export .= "\r\n";
for($i = 0; $i < mysql_num_rows($ResultPointer); $i++)
{
$Daten = mysql_fetch_object($ResultPointer);
if($table=="con_stat_archive")
{$Spalte[] = str_replace("\"", "\"\"", $Daten->archived);}
else
{$datum=getdate();
$Spalte[] = str_replace("\"", "\"\"", "$datum[year]$datum[mon]");}
$Spalte[] = str_replace("\"", "\"\"", $Daten->idcatart);
$Spalte[] = str_replace("\"", "\"\"", $Daten->idlang);
$Spalte[] = str_replace("\"", "\"\"", $Daten->idclient);
$Spalte[] = str_replace("\"", "\"\"", $Daten->visited);
$Spalte[] = str_replace("\"", "\"\"", $Daten->title);
for($j = 0; $j < count($Spalte); $j++)
{
$Export .= "\"" . $Spalte[$j] . "\"";
if($j != count($Spalte)-1)
{
$Export .= ",";
}
}
$Export .= ",";
$Export .= "\r\n";
$Spalte = "";
} //for($i = 0...
echo $Export;
/* Beginn Anhängen aktueller Monat an Gesamtzusammenstellung*/
if ($table=="con_stat_archive")
{
$datum=getdate();
$datumjahrmonat=$datum[year].$datum[mon];
if($monthtill==$datumjahrmonat OR $monthfrom=="")
{
$ResultPointer = mysql_query("SELECT A.*, C.title FROM con_stat A, con_cat_art B, con_art_lang C WHERE A.idcatart = B.idcatart AND A.idlang=C.idlang AND B.idart=C.idart;");
for($i = 0; $i < mysql_num_rows($ResultPointer); $i++)
{
$Daten = mysql_fetch_object($ResultPointer);
$datum=getdate();
$Spalte[] = str_replace("\"", "\"\"", "$datum[year]$datum[mon]");
$Spalte[] = str_replace("\"", "\"\"", $Daten->idcatart);
$Spalte[] = str_replace("\"", "\"\"", $Daten->idlang);
$Spalte[] = str_replace("\"", "\"\"", $Daten->idclient);
$Spalte[] = str_replace("\"", "\"\"", $Daten->visited);
$Spalte[] = str_replace("\"", "\"\"", $Daten->title);
for($j = 0; $j < count($Spalte); $j++)
{
$Export_aktuell .= "\"" . $Spalte[$j] . "\"";
if($j != count($Spalte)-1)
{
$Export_aktuell .= ",";
}
}
$Export_aktuell .= ",";
$Export_aktuell .= "\r\n";
$Spalte = "";
} //for($i = 0...
} //if($monthtill!=$datumjahrmonat)
} //if($table...
echo $Export_aktuell;
/* Ende Anhängen aktueller Monat an Gesamtzusammenstellung*/
?>
Zugangsdaten für die DB müssen noch angepasst werden.
3) Passwortschutz auf das Verzeichnis "contenido/export_statistik" legen, damit die Datei nicht jeder aufrufen kann.
Verbesserungswürdig wären folgende Punkte:
a) Einbindung ohne dass ein Passwortschutz notwendig ist.
b) Beim Export eines Zeitraums direkte Zusammenrechnung von Artikelaufrufen ermöglichen
Bin sicher das das machbar ist, weiß allerdings (noch) nicht wie. Schaun mer mal
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)