[3.3] Eigenen Counter erstellen und einbinden.

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7859
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag von Kirk »

@MDuss
Bitte verwende für deine Codes auch den richtigen BBCode [code][/code], Danke!
Benutzeravatar
IMC
Mitglied
Beiträge: 538
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag von IMC »

PHP Code im Template geht nicht.
Dieser muss in den Core-Dateien eingefügt werden. Dies sollte man aber nur tun wenn man sich auskennt.

Es gibt nur eine vernünftige Lösung. Es muss, wie von Chris1278 schon vorgeschlagen, mit einer Extention realisiert werden.
Vielleicht mache ich das mal in den nächsten Wochen wenn ich die Liste von meiner Frau abgearbeitet habe.

Alternative bindest du etwas externes ein. Suche mal nach "kostenlosen Webcounter". Dort bezahlst du dann mit deinen Daten.
Gruß, Thorsten
Benutzeravatar
Scanialady
Supporter
Supporter
Beiträge: 1717
Registriert: 23.02.2009 16:29
Wohnort: Velbert (NRW)
Kontaktdaten:

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag von Scanialady »

Dmzx hat mal versucht, einen Counter zu erstellen. Nach den ersten Versuchen habe ich das nicht weiterverfolgt. Dieser löscht zwar nach 24 Stunden seine Zählung - aber möglicherweise kann man genau das ja entfernen. Oder man kommt bei Betrachtung des Codes auf Ideen.
Die Bosheit trinkt die Hälfte ihres eigenen Giftes (Lucius Annaeus Seneca)
-
Wenn von etwas kein Backup existiert, dann ist es nicht wichtig.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3526
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag von chris1278 »

@scanialady
Also wenn das sowas ist wie er will denke ich das dies möglich ist. Habe mir die ext angesehen. Denke wenn man verhindert das eine bestimmte php Datei geladen wird bleibt der Zähler erhalten.

@edit
Hab das jetzt mal getestet. Hab den counter mal auf local bei mir erstellt und den auf 3 besucher gesetzt und die zeit auf 1 std. gesetzt. Den Rpune und den cron habe ich aus der extension rausgenommen. Mal schauen was passiert. Normalerweise wenn ich die seite nach über einer stunde aufrufe sollte der wert derselbe bleiben. Da die cron nicht mehr geladen wird.

@edit2
Also kann berichten das man mit Herausnahme der einen Datei und dessen Funktion die zeit Begrenzung aushebeln kann. Sprich mit einfachem umbau kann man dies ohne Zeit Begrenzung nutzen.

@MDuss
Schau dir die Ext mal an das könnte für dich gut als Vorlage dienen. Ich denke wenn du ja schon selber php script mit sql schreiben kannst sollte das für dich als Vorlage reichen um dir das umzusetzen mit deinem Code.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3526
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag von chris1278 »

Also wenn du das mal testen willst dann kannst du das wie folgt machen:

1. Lade dir die Extension runter die scanialady verlinkt hat. entpacke diese.

2. Schaue das die ordnerstrucktur wie folgt ausschaut:
../ext/dmx/counter/composer.json (und alle anderen Dateien bzw. Ordner
Hier noch als bild mal dargestellt:
https://prnt.sc/20eow97

3. Lösche das Verzeichnis Cron.

4. du musst eine Datei bearbeiten.

öffne:

../ext/dmx/counter/config/service.yml

finde und lösche folgendes:
dmzx.counter.cron.task.core.counter:
class: 'dmzx\counter\cron\prune_counter'
arguments:
- '@config'
- '@dbal.conn'
- '%dmzx.counter.table.counter%'
calls:
- ['set_name', ['cron.task.core.counter']]
tags:
- { name: 'cron.task' }
oder ersetze den ganzen inhalt der datei mit folgendem:

Code: Alles auswählen

imports:
    - { resource: 'tables.yml' }

services:
    dmzx.counter.admin.controller:
        class: 'dmzx\counter\controller\admin_controller'
        arguments:
            - '@config'
            - '@template'
            - '@log'
            - '@user'
            - '@request'
   
    dmzx.counter.listener:
        class: 'dmzx\counter\event\listener'
        arguments:
            - '@config'
            - '@template'
            - '@user'
            - '@dbal.conn'
            - '%dmzx.counter.table.counter%'
        tags:
            - { name: 'event.listener' }
Damit wird verhindert das der crontask den counter auf nul setzt. Die zeit Einstellung kann zwar weiterhin im acp eingestellt werden aber bleibt ohne wirkung. Das heist es ist dann egal ob auf 1 stunde oder 24 stunden eingestellt wird.

Danach die Exetnsion einfach ganz normal hochladen und aktivieren.

Es es erscheit in der Statistik dann:

https://prnt.sc/20epq7a

Wenn das dem entspricht was du willst kann dir gern geholfen werden das an den style anzupassen. Aber dafür müsste man auch wissen ob es dann auch das ist was du vorhast umzusetzen.
Benutzeravatar
IMC
Mitglied
Beiträge: 538
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag von IMC »

Der Cron Job sollte auf keinen Fall gelöscht werden. Die Tabelle phpbb_visits_counter würde sonst sonst ständig erweitert werden und die Datenbank unnötig aufblähen.

Die Extension arbeitet folgendermaßen.
- kommt ein neuer Besucher wird er in die Tabelle eingetragen (ip & Zeitstempel)
- besucht er das Forum innerhalb von 24Std. wird der Zeitstempel aktualisiert
- War er nicht innerhalb der letzten 24Std. im Forum wird er aus der Tabelle gelöscht

Die Extension gibt die Anzahl der eingetragenen Besucher der Tabelle aus.

$this->config->increment('visits_counter', 1, true); wird bei jeden neuen Eintrag in die Tabelle hochgezählt und nicht zurückgesetzt. Wenn man diesen in die Ausgabe bringt hat man den gesuchten Besucherzähler. Mich stört dabei noch dass auch Crawler mit gezählt werden.
Gruß, Thorsten
Benutzeravatar
chris1278
Mitglied
Beiträge: 3526
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag von chris1278 »

Ja das ist richtig. Aber ich denke er möchte eben einen zähler haben der immer weiter zählt. Also ohne zeitlimit. Im grunde ein zähler der die gesamten besucher auflistet die das forum eben aufgerufen haben egal ob einmal am tag oder mehrmals. im grunde könnte man sagen den aufurf des forums allgemein. Wenn das so ist dann ist diese anleitumg genau so richtig.
Benutzeravatar
IMC
Mitglied
Beiträge: 538
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag von IMC »

Ja, das weiß nur der Themenstarten was und ob er möglichst viel gezählt haben möchte.

Mir reicht die Statistik von meinen Hoster. Die zeigt im Schnitt 500 Sessions am Tag an. Ich habe das einmal geloggt und gefiltert da ich wissen wollte wie viele nicht deutschsprachige Aufrufe ich habe. Da blieben ca. 50 über die wahrscheinlich von echten Personen kommen.

Die chinesischen Suchmaschinen habe ich schon vor längerer Zeit über die IP ausgesperrt. Danach waren die Besucherrekorde mit 400 gleichzeitigen Besuchern Geschichte.

Diese Zähler haben heutzutage Null Aussagekraft.
Gruß, Thorsten
Benutzeravatar
chris1278
Mitglied
Beiträge: 3526
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag von chris1278 »

Ja das ist ja auch korrekt. Aber es geht ja drum was er sucht. Und wenn das so ist wie ich das verstanden habe ist dies eben ne brauchbare Lösung. Was er oder andere eben draus machen bleibt ja jedem selber überlassen. Mir persönlich reichen die Statistiken im Forum und die wer war da Extension vollkommen aus.
MDuss
Mitglied
Beiträge: 267
Registriert: 06.02.2008 10:21

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag von MDuss »

HI.

Was ich suche ist ein Zähler, der einfach zählt, wie oft das Forum besucht wird. Wenn ich das recht verstanden habe, dann könnte man diesen Zeit Intervall ja sogar als reloadsperre verwenden, so das ein Besucher nur einmal innerhalb eines Zeit Intervalls gezählt wird.

Auf jeden Fall wäre es an für sich schon mal ein guter Start.

Was die crawler angeht, die könnte man ja schon in der .htaccess aussperren.
Dann können diese schon nicht mehr im Forum auftauchen. Das Forum liegt bei mir in einem Unterverzeichnis auf dem Webspace.

Und wenn diese schon bei betreten der Seite um Hauptverzeichnis ausgesperrt werden, dann können diese nicht mehr zum Forum und können auch nicht mehr gezählt werden.

Ich schaue mir diesen Zähler am Wochenende an und werde dann die Änderungen von chris1278 testen.

Vorher kann ich das aus Zeitmangel nicht testen.

Vielen Dank auf jeden Fall schon mal für eure Hilfe.

MfG
MDuss
Antworten

Zurück zu „Coding & Technik“