PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zähler Forumaufrufe


georg07
01.01.2008, 22:23
Die Forumaufrufe sollen gezählt werden und von außerhalb des Forums ausgewertet werden. Fragen:
1. Wo und wie baue ich innerhalb meines vBulletins-Forums den Zähler ein.
2. Wie lautet der vollständige Pfad, wenn in root/myforum/... das Forum myforum installiert ist.
Für jeden Hinweis meinen besten Dank im voraus.

pogo
01.01.2008, 22:43
1. Im footer Template ist der Zähler sicher gut aufgehoben, da es auf jeder Seite benutzt wird.

2. Guck dir unter Wartung->phpinfo() zeigen ganz unten den Eintrag bei _SERVER["SCRIPT_FILENAME"] an. Dort findest du den Pfad zu der index.php im admincp Verzeichnis und kannst den benötigten Pfad daran ableiten.

georg07
02.01.2008, 11:29
Jetzt muss ich nur noch im Template 'footer' die richtige Stelle für meinen Counter-Insert finden.

pogo
02.01.2008, 11:32
Da es vermutlich ein Javascript Codeblock oder ähnliches ist, kannst du es einfach ganz unten ans Ende des Templates einfügen.

citrix
02.01.2008, 12:00
Du kannst auch alternativ www.ipcounter.de (http://www.ipcounter.de) verwenden, der zählt auch die Seitenaufrufe... wie zuverlässig das ganze ist weiß ich allerdings nicht.

georg07
02.01.2008, 23:22
Als letzte Zeilen habe ich zum Test eingefügt:
<?php
echo "Wir waren im footer";
?>
Aber der Text erschien nicht. Meine woanders ausgetester Include zeigte an dieser Stelle natürlich auch keine Wirkung.
Was habe ich übersehen?

ragtek
02.01.2008, 23:44
In den Templates gibt es kein PHP
Schreibe einfach das hin was du willst
also gleich Wir waren im footer

Mystics
03.01.2008, 10:56
Ansonsten:
http://www.vbulletin-germany.com/forum/showpost.php?p=155344&postcount=6

georg07
03.01.2008, 15:46
Ansonsten:
http://www.vbulletin-germany.com/forum/showpost.php?p=155344&postcount=6
Mit diesem Klasse-Hinweis und Pogos Pfad-Hinweis läuft nun der Zähler für jeden Forumaufruf. Allerdings scheint das Template 'footer' bei jedem Forumaufruf zweimal durchlaufen zu werden, so dass der Zähler die Aufrufe doppelt zählt.
Welches Template wird garantiert bei jedem Aufruf des Forums genau einmal aufgerufen?
Danke an Mystics und Pogo.

ragtek
03.01.2008, 15:55
Eigentlich sollte footer auch passen.
Kann man sich das ganze mal live in Aktion anschaun?

Mystics
03.01.2008, 15:56
Der footer wird nur einmal aufgerufen.

Außer dem Template "header" und "headinclude" wird sonst kein Template auf jeder Seite geladen. Notfalls noch "navbar", aber das wird auf einigen Seiten nicht geladen.

georg07
03.01.2008, 16:04
Eigentlich sollte footer auch passen.
Kann man sich das ganze mal live in Aktion anschaun?
Live anschauen geht nicht, da der Zähler außerhalb des Forums abgelegt wird und auch nur außerhalb des Forums ausgewertet wird.

ragtek
03.01.2008, 16:07
Ich meinte die URL zu deinem Forum, um zu schaun wieso es 2x aufgerufen wird.

georg07
03.01.2008, 18:38
Ich meinte die URL zu deinem Forum, um zu schaun wieso es 2x aufgerufen wird.
Forum ist zwar erst im Aufbau: www.gentools6.de/forum (http://www.gentools6.de/forum)

R1D1
04.01.2008, 17:02
Wo ich das hier gerad sehe ;)

http://www.404blog.de/vbulletin-counter-plugin-46

georg07
05.01.2008, 22:00
1. Das ist der Zähler-include, der als plugin eingebunden wurde und in footer aufgerufen wird.
<?php
$datei = "/der/vollstaendige/counter_pfad/forum_z.txt";
$fp = fopen($datei,"r+");
$count = fgets($fp);
$count++;
rewind($fp);
fwrite($fp,$count);
fclose($fp);
echo $count;
?>

2. Pageaufruf: www.gentools6.de/forum (http://www.gentools6.de/forum)
3. In der letzten Zeile links wird der aktuelle Zähler ausgegeben.

Frage: Warum wird Zähler bei jedem Aufruf des Forums immer um 2 erhöht?
Wer hat ene Idee?

StGaensler
05.01.2008, 23:11
Hallo,

das liegt daran, dass bei dir die cron.php (http://www.gentools6.de/forum/cron.php) aufs Forum weiterleitet, aber keine Cronjobs ausführt. Wieso das bei dir so ist, kann ich leider von der Ferne nicht sagen (hast du vielleicht einen entsprechenden Eintrag in deiner .htaccess?). vBulletin merkt natürlich, dass keine Cronjobs ausgeführt werden, und will somit bei jedem Seitenaufruf einen Cronjob starten - und bindet jedes mal ein Cronimage ein, welches dann einen neuen Seitenaufruf startet, und den Counter wieder erhöht.
Wenn ich in meinem Browser die Bilder deaktiviere, dann zählt der Counter immer schön um eine Stelle hoch.

Viele Grüße,
Stefan

georg07
06.01.2008, 14:51
Hallo,

das liegt daran, dass bei dir die cron.php (http://www.gentools6.de/forum/cron.php) aufs Forum weiterleitet, aber keine Cronjobs ausführt. Wieso das bei dir so ist, kann ich leider von der Ferne nicht sagen (hast du vielleicht einen entsprechenden Eintrag in deiner .htaccess?). vBulletin merkt natürlich, dass keine Cronjobs ausgeführt werden, und will somit bei jedem Seitenaufruf einen Cronjob starten - und bindet jedes mal ein Cronimage ein, welches dann einen neuen Seitenaufruf startet, und den Counter wieder erhöht.
Wenn ich in meinem Browser die Bilder deaktiviere, dann zählt der Counter immer schön um eine Stelle hoch.

Viele Grüße,
Stefan
In der Tat, wenn ich in meinem MS Browser unter Extras/Erweitert/Multimedia/Bilder anzeigen das Häkchen entferne, arbeitet der Zähler richtig. Danke an Stefan für die offenbar zutreffende Problemanalyse! Die genauen Zusammenhänge durchschaue ich wegen meiner Unkenntnis der vBulletin-Architektur nicht. Ich habe an der ausgelieferten Version lediglich den Zähler-Plugin eingebaut nach Maßgabe von http://www.vbulletin-germany.com/forum/showpost.php?p=155344&postcount=6 . .htaccess wurde nicht angefasst (ist offenbar bei mir auch versteckt). cronjobs habe ich keine aufgebaut und auch keine angestoßen. Ich hatte mir den Zählereinbau problemloser vorgestellt. Wahrscheinlich sollte ich erst noch tiefer in die vBulletin-Architektur einsteigen.
Nochmals meinen Dank an Stefan

Mystics
06.01.2008, 14:56
Sind alle Dateien, insbesondere die cron.php, noch im Originalzustand?

Administrator-Kontrollzentrum -> Wartung -> Diagnose -> Dateiversionen anzeigen

Vielleicht liegt es auch daran, dass das Forum noch geschlossen ist?

georg07
06.01.2008, 19:19
Sind alle Dateien, insbesondere die cron.php, noch im Originalzustand?

Administrator-Kontrollzentrum -> Wartung -> Diagnose -> Dateiversionen anzeigen

Vielleicht liegt es auch daran, dass das Forum noch geschlossen ist?

Ich habe den Patch Level 2 von Version 3.6.8 eingespielt. Wenn ich ich mir in ACP -> Wartung -> Diagnose -> Dateiversion die Dateiversionen anzeigen lasse, so erscheint bei den beiden Dateien ./includes/class_bbcode.php und ./includes/functions_editor.php die Anmmerkung: 'wurde verändert oder nicht richtig hochgeladen'. Diese beiden Dateien waren aber gerade die Patch-Dateien und die Anmerkung ist also o.k.
Ich habe zum Test das Forum kurzzeitig geöffnet. Fehler beim Hochzählen des Counters bleibt.

StGaensler
06.01.2008, 21:43
Hast du vielleicht einen eigenen Cronjob bzw. einen Cronjob von einem Produkt mit dabei, der evtl. gerade ausgeführt werden soll, und dann diesen Fehler verursacht?

Ansonsten müssen wir uns das mal genauer ansehen:
Erstelle bitte ein Support-Ticket mit Admin-Zugang (alle Rechte), FTP- und phpMyAdmin-Daten, sowie einem Link zu phpMyAdmin:

Support-Ticket erstellen (http://members.vbulletin-germany.com/membersupport_contactform.php)

Viele Grüße,
Stefan

Mystics
06.01.2008, 23:54
Also, das Problem ist Folgendes:

Wenn das Forum geschlossen ist (Ist das Forum aktiv? -> Nein), werden die Zeitgesteuerten Aufgaben nicht ausgeführt.

Die cron.php steht also immer im footer:<img src="http://www.gentools6.de/forum/cron.php?&amp;rand=235033" alt="" width="1" height="1" border="0" />

Und dadurch wird dein Plug-in zweimal aufgerufen (einmal von der index.php und einmal von der cron.php, da der Einstiegspunkt global_start verwendet wird).

Wenn das Forum offen ist, wird die cron.php so lange aufgerufen, bis alle Zeitgesteuerten Aufgaben gelaufen sind. Wenn du also das Forum öffnest und 20x die index.php aktualisiert (F5), wird danach die cron.php nicht mehr aufgerufen - eben weil dann alle Zeitgesteuerten Aufgaben gelaufen sind.

Lange Rede, kurzer Sinn: Sobald das Forum "live" ist, hättest du dieses Problem nicht mehr so gravierend.

Aber ich habe dein Plug-in einfach noch erweitert, so dass es auch jetzt schon problemlos funktioniert:if (THIS_SCRIPT != 'external' AND THIS_SCRIPT != 'cron')Ich habe das auch in der Anleitung geändert.

georg07
07.01.2008, 11:04
Ich danke Michael und Stefan vom vBulletin-Germany Team für die Analyse des Problems und die konstruktive Lösung.