Statistik exportieren

Ideen für neue Funktionen in CONTENIDO?
Antworten
McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Statistik exportieren

Beitrag von McHubi » Do 6. Aug 2009, 11:30

Hallo zusammen,

habe das Thema zwar hier bereits angesprochen: http://forum.contenido.org/viewtopic.php?f=62&t=24202, dennoch gehörts auch irgendwie hierher.

Es wäre schön, wenn man die Statistik exportieren könnte ohne per mysql "Verdrehungen" vollführen zu müssen. Ich hab den Kunstgriff mangels Ahnung nicht hinbekommen und ein Redakteur würde/ dürfte es erst recht nicht.

Also, her mit einer Exportfunktion :mrgreen:
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Statistik exportieren

Beitrag von idea-tec » Do 6. Aug 2009, 12:32

wie wäre es direkt mit einer besseren Statistik?
http://www.piwik.org
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Statistik exportieren

Beitrag von McHubi » Do 6. Aug 2009, 14:22

Hi,

ist natürlich ein Argument. Wenn ich aber keine real-URLs nutze sondern dynamische, dann muss ich (zumindest ist das bei php webstat http://www.php-web-statistik.de der Fall) für jede dynamische URL eine "Übersetzung" festlegen damit in den Auswertungen was verständliches aufgeführt wird. Und das nicht nur für ...idcat??? sondern auch die Kombis ...idcat???&idar???&lang??? und so weiter. Einiges an Arbeit bei größeren Seiten. Da wäre ein Export direkt aus Contenido heraus - wenn mich nur die Seitenaufrufe interessieren - durchaus sinnvoll.

Klar, man kann natürlich modrewrite-Plugins nutzen die diese Arbeit erst gar nicht entstehen lassen... Aber genauso wie es Argumente für "echte" URLs gibt, gibt es welche dagegen. Aber zurück zum Thema, sonst schreiben wir hier seitenweise.

Naiv gedacht müsste ja nur - siehe mein einleitend genannter Link - eine sql-Abfrage mit einem verbundenen Export als z.B. csv-Datei durchgeführt werden, oder? Wenn ich wüsste wie die sql-Abfrage aussieht - Schande auf meine Unwissenheit - würde ich's machen. Habe da keine Berührungsängste mit phpmyadmin. Für einen Redakteur oder Team-/ Abteilungsleiter der sich seine eigenen Zahlenkolonnen zusammenschnippelt und html evtl. für eine neue Partei der nächsten Wahlen hält, wäre es aber schön wenn das aus Contenido heraus passieren könnte. Bevor nachher in phpmyadmin doch mal "ein falscher Knopf gedrückt wird"... :mrgreen:
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Statistik exportieren

Beitrag von idea-tec » Do 6. Aug 2009, 16:06

Ich habe piwik in contenido-installationen mit und ohne REAL-URLs
Ist kein Thema. Vor allem passt es und es werden keine reloads mitgezählt, und, und, und...
Sorry, aber beim besten Willen kann man die Statistik (auch wenn ich deinem statement in einem anderen beitrag voll recht gebe) schlichtweg auf den müll werfen

wenn ich das richtig verstehe, bist du mit den daten dieses selects generell einverstanden, benötigst die ausgabe jedoch als csv-datei?

Code: Alles auswählen

SELECT A.*, C.title FROM con_stat_archive A, con_cat_art B, con_art_lang C WHERE A.idcatart = B.idcatart AND A.idlang=C.idlang AND B.idart=C.idart;
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Re: Statistik exportieren

Beitrag von _wiewo_ » Do 6. Aug 2009, 18:46

und da csv nur nen schönes textdokument ist welches man per echo bauen kann wird der mister idea bestimmt was schönes basteln, hehe

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Statistik exportieren

Beitrag von idea-tec » Do 6. Aug 2009, 19:41

offtopic:
wundert mich, dass du es nicht eben mal online gestellt hast ;-)
aber mit flickr- und twitter-Modulen kann man ja punkten ;-)
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Re: Statistik exportieren

Beitrag von _wiewo_ » Do 6. Aug 2009, 20:06

psssst, nich plaudern, streng gehemin :D ;)

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Statistik exportieren

Beitrag von idea-tec » Do 6. Aug 2009, 20:24

Ich habe dafür überhaupt keine zeit, sorry, ist mir auch viel zu unwichtig für DIE Statistik, Sorry

ich würde mir aber einen Link auf eine php-Datei legen, und zwar in folgenden beiden Dateien:
1.) template.stat_overview.html in Zeile 37
2.) template.stat_top.html in Zeile 35

Dieser Link wird in einem neuen fenster aufgerufen, oder wie auch immer und baut die csv-datei (sofern sie noch nicht angelegt war, da ich sie mir gleich speichern, also vorhalten würde, wenn sie das erste mal aufgerufen wird.) und gibt diese dann aus -> Fenster öffnet sich "Speichern" -> Fertig!

WICHTIG:
Regel 1: Aktuelle Statistik (laufender Monat) wird mit "current" (Variable "$yearmonth") angesteuert, bei LEERER Variable "$year"
Regel 2: Jahres-Statistik wird mit "current" (Variable "$yearmonth") angesteuert, bei entsprechend GEFÜLLTER Variable "$year"
Regel 3: Monats-Statistik wird mit Variable "$yearmonth" angesteuert (z.B. 200907), bei LEERER Variable "$year"
Nun muss man nur noch die entsprechenden Variablen in den Link einfügen und schwupps kann man sogar die TOP10 oder TOP20 für Juni 2009 als CSV exportieren, ist doch kein Hexenwerk

Noch ein Tipp: Die beiden Template-Dateien dann direkt noch wegsichern, da diese bei einem Update überschrieben werden
Außer die Exportfunktion wird in den Core übernommen, was ein kleinen Mehrwert bedeuten würde ;-)
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Statistik exportieren

Beitrag von McHubi » Fr 7. Aug 2009, 16:18

Hallo idea-tec,

Code: Alles auswählen

SELECT A.*, C.title FROM con_stat_archive A, con_cat_art B, con_art_lang C WHERE A.idcatart = B.idcatart AND A.idlang=C.idlang AND B.idart=C.idart;
funktioniert wunderbar. :mrgreen:

Dickes Danke :!:

Die Template-Geschichte schau ich mir mal an. Mal sehen ob ich dahinter steige...
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Statistik exportieren

Beitrag von McHubi » Mo 17. Aug 2009, 11:08

Hallo idea-tec,
Ich habe piwik in contenido-installationen mit und ohne REAL-URLs
Wie machst Du das bei den Installationen ohne Real-URLs? Piwik funktioniert ja soweit reibungslos, allerdings ist die Übersicht der Seiten natürlich bei dynamischen URLs eher bescheiden.

...front_content.php?idcat=1
...front_content.php?idart=1
...front_content.php?idcat=1&idart=1

verweisen alle drei auf die gleiche Seite, werden aber in der Übersicht der Seiten als drei unterschiedliche Seiten aufgeführt. Bei php-webstat (http://www.php-web-statistik.de) gibt's die Möglichkeit, diese URLs über eine Art "ModRewrite" als eine Seite "Startseite" zu führen.

Im Forum von Piwik habe ich nichts dazu gefunden, außer einem Thread aus Januar bei dem es um ein ähnliches Thema in Verbindung mit Session-IDs ging die die gleiche Seite wie unterschiedliche aussehen lassen und daher ebenfalls separat in der Übersicht aufgeführt werden...

:?:
Vor allem passt es und es werden keine reloads mitgezählt, und, und, und...
Hm... Also bei meiner Piwik-Installation werden Reloads mitgezählt... Auch hier sehe ich keine Möglichkeit innerhalb der Piwik-Einstellungen Reloads von der Zählung auszuschließen.

Plugins sind auf der Piwik-Seite übrigens auch nicht zu finden die die beiden Probs beheben könnten...
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Statistik exportieren

Beitrag von idea-tec » Mo 17. Aug 2009, 13:50

- Reloads werden irgendwo in piwik separat aufgeführt.
- wir generieren ohne real-urls auschließlich navigationen und links mit idcat und idart, von daher ist das bei uns kein thema, da immer eindeutig
- zudemm ergibt sich die problematik mit idcat, idart, etc. bei uns nicht, da wir piwik dann entweder nicht installieren oder auf real-urls umstellen.
- piwik ist, wie alle anderen webstatistik-tools (inkl. google-zeugs) nur so gut, wie die webseite selbst.
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Statistik exportieren

Beitrag von McHubi » Mo 17. Aug 2009, 13:53

So. Habe mal gebastelt. Ist zwar nicht die Lösung aller Lösungen, aber es funktioniert. Vielleicht kann man ja drauf aufbauen...

Bild

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&nbsp;<input type="number" size="4" name="monthfrom"> (YYYYMM)&nbsp;bis&nbsp;<input type="number" size="4" name="monthtill"> (YYYYMM)&nbsp;
<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 :mrgreen:
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Statistik exportieren

Beitrag von McHubi » Do 19. Jan 2012, 20:03

Wichtig!
Nägel mit Köppen, die komplette Statistik wurde auf den Kopf gestellt und ein neues Statistik-Plugin hat das Licht der Welt erblickt. Natürlich auch mit der hier angesprochenen Funktionalität die Daten ohne phpMyAdmin aus der DB extrahieren zu können: http://forum.contenido.org/viewtopic.php?f=66&t=31826
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

Antworten