[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Auswertung der Statistik automatisieren - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
explorit
Beiträge: 61
Registriert: 16. Jan 2006, 11:37
Kontaktdaten: Website

Auswertung der Statistik automatisieren

6. Jun 2006, 16:56

Hallo miteinander,

wieder einmal eine Frage zur Statistik. Wahrscheinlich bin ich bloß zu blöd zum Suchen. Habe schon viel probiert, aber leider keine Threads dazu gefunden. Also bitte nicht steinigen, wenn es dazu schon zigtausende Antworten gibt.

Wie kann man die Auswertung der Statistik, die man ja manuell starten muss, bevor man was sehen kann, automatisieren, sodass beispielsweise bei jedem Aufruf der Statistik eine automatische Auswertung erfolgt?

Gibts da schon Lösungsansätze?


Viele Grüße und danke schon jetzt,
Tobi

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

6. Jun 2006, 17:21

Hi Tobi,

du könntest dir ein kleines Script bauen dass die Auswertung startet und dieses via Cronjob einmal Nachts starten...

Gruß,
Markus

explorit
Beiträge: 61
Registriert: 16. Jan 2006, 11:37
Kontaktdaten: Website

6. Jun 2006, 17:23

Danke für die schnelle Antwort. Leider unterstützt der Provider keine Cron-Jobs. Welche Datei muss denn aufgerufen werden, um die Statistik auszuwerten?

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

6. Jun 2006, 17:51

Hi,

es gibt auch anbieter, die Kostenlos Cronjobs anbieten und somit dann auch für dich ein PHP Skript anstoßen.

Dein Script müsste zuerst ein Login eines Users simulieren und danch den entsprechenden Link (siehe Backend) aufrufen. Eine extra Datei gibt es dafür nicht, die Funktionalität ist eben im stats Addon drinne..

Gruß,
Markus

explorit
Beiträge: 61
Registriert: 16. Jan 2006, 11:37
Kontaktdaten: Website

6. Jun 2006, 17:53

Ok, danke für die Tipps! Dann werde ich mich da mal durchwurschteln :)
Viele Grüße, Tobi

iceman-fx
Beiträge: 467
Registriert: 13. Feb 2007, 16:16
Wohnort: Sachsen
Kontaktdaten: Website

16. Mär 2007, 13:58

Ihr braucht dass nicht so umständlich machen, sofern Ihr nur den aktuellen Monat aktualisieren wollt.

Ich habe dazu mal schnell eine kleine Erweiterung des Statistikmoduls erstellt, welche bei mir einwandfrei läuft.

Ersetzt in der Datei "index.inc.php" im Pfad /redaxo/include/addons/stats/pages/ folgenden Bereich ab Zeile 105 (ca.):

Original ab Zeile 105 (ca.):

Code: Alles auswählen

	//
	// ACTING
	//

	if ( $sub == 'stats' OR !isset($sub) )
	{
Ersetzen durch:

Code: Alles auswählen

	//
	// ACTING
	//

	if ( $sub == 'stats' OR !isset($sub) )
	{
		if (!isset($sub)):
			/* BEGIN: aktuelle Monatsstatistik automatisch bei Statistikaufruf starten - by mueller4media */
			echo '<script language="javascript1.1">
					loadLeftPosition=(self.document.body.offsetWidth-220)/2;
					loadTopPosition=(self.document.body.offsetHeight-50)/2;
					
					document.write("<!-- Zeige Ladestatus -->"
					+"<div UNSELECTABLE=\"on\" id=\"myStatLoadInfo\" style=\"position:absolute; left:"+loadLeftPosition+"; top:"+loadTopPosition+"; width:220px; height:50px; z-index:10000; border: 1px solid #999999; overflow: hidden; visibility: visible;\">"
					+"<table width=\"100%\" height=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"10\">"
					+"<tr>"
					+"<td class=\"greenblack\"><strong>Monatsstatistik wird aktualisiert.<br>Bitte warten...</strong></td>"
					+"</tr>"
					+"</table>"
					+"</div>"
					+"<!-- Ladestatus Ende -->\n");
				  </script>';
			flush();
			
			$myMonth = date("m");
			$myYear = date("Y");
	
			$myStats = new stats;
			if ($myStats->evaluate($myYear,$myMonth)):
				echo '<script language="javascript1.1">
						self.document.getElementById("myStatLoadInfo").style.display = "none";
					  </script>';
				flush();
			endif;
			/* END: mueller4media */
		endif;
* Achtet auf die Schreibweise Eures Codes

Damit wird bei jedem Aufruf des Statistikbereiches zuerst einmal ein Update durchgeführt und dabei eine kleine Info angezeigt werden.

Hinweis: Falls Eurer Datenvolumen allerdings zu enorm ist, sollte man dies nicht einsetzen, da man sonst zu lange auf die Anzeige warten muss.

Tipp: Für alle Monate müsste man nur noch eine Schleife um das ganze setzen, und entsprechend den Startmonat/Jahr bis zum aktuellen durchlaufen.


Und noch etwas: einen kleinen Fehler habe ich auch gleich noch entfernt/gefunden.

In Zeile 100 und 101 (ca.) fehlt innerhalb des <option>-Tags die Angabe des Wertes "value".
Diesen sollte man mit hinzufügen -> " value=$v", um einwandfrei das Jahr mit zu übergeben.

Es müsste dort also stehen:

Code: Alles auswählen

		if ( $v == $year ) $jsel .= "<option value=$v selected>$v</option>";
		else $jsel .= "<option value=$v>$v</option>";
Viele Grüße
iceman

Zurück zu „Allgemeines [R3]“