WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 17.01.2026 23:13:17

beach
Member

LinkCounter

Hach ja...
Kennt Ihr das? Man hat das eine Projekt soweit am laufen und fängt an zu Überlegen das man ja an einem anderen Projekt eigentlich mal wieder weitermachen sollte. Und dann kommt einem plötzlich in den Kopf: Da gäbe es ja so eine Kleinigkeit, die wäre schon so ein bisschen geil wenn man das hätte. Der arme Claude hat zwar gestöhnt, aber trotz allem fleißig seine Arbeit getan wie aufgetragen. Naja, fast, meistens,.... ab und zu... Egal. es ist mal wieder etwas herausgekommen was ich euch nicht vorenthalten wollte.

Auf einer meiner Seiten habe ich ein paar externe Tools verlinkt und auch ein Image auf meinem Server. Nun würde mich halt mal interessieren wie oft überhaupt auf diese Links/Downloads geklickt wird. die Download Gallery 3 war mir dann aber wieder zu mächtig. Das wäre wie mit Kanonen auf Spatzen....

Ich möchte einfach nur einen Link anlegen, diesen in eine Seite einbinden und später sehen wie oft dieser angeklickt wurde.
Daraus ist das Modul LinkCounter entstanden.
IM Adminbereich kann man Links eintragen (externe oder WBCE interne Links) und einen Titel dazu vergeben. Dann kann man diesen Link, per Droplet, im CKEditor einbinden wo man diesen haben möchte. Jeder Klick darauf wird dann gezählt und leitet weiter auf die entsprechende Seite/Datei/Link.
Ein Droplet für eine einfache Klickstatistik gibt es natürlich auch.
Hier eine Zusammenfassung.

LINK COUNTER - WORKFLOW
========================

1. BACKEND: Link erstellen
   - Admin-Tools → Link Counter → "Hinzufügen"
   - Titel + URL/Seite eingeben
   - Speichern

2. FRONTEND: Droplet einfügen
   - Im WYSIWYG-Editor: [[LinkCounter?id=1]]  (Nummer wie im Backend angezeigt)
   - Alternative: [[LinkCounterStats?limit=10]] für Statistik-Tabelle

3. TRACKING: Automatisch
   - Besucher klickt auf Link
   - Counter wird erhöht
   - Weiterleitung zum Ziel

4. STATISTIK: Übersicht
   - Backend → Link Counter
   - Klicks pro Link
   - Filter & Sortierung
   - CSV-Export

5. VERWALTUNG
   - Links bearbeiten/löschen
   - Counter zurücksetzen
   - Aktiv/Inaktiv schalten

Vielleicht kanns ja jemand gebrauchen
Aktuell V 1.1.0

Last edited by beach (23.01.2026 13:37:46)

Offline

Liked by:

florian, jean

#2 18.01.2026 08:10:27

florian
Administrator

Re: LinkCounter

Sehr schön so weit.

Einige Hinweise:

  • update.php löscht auch Droplet "Download", riskant, da generischer Name

  • delete.php löscht auch Droplets "Download", "DownloadStats"

  • tool.php, reset_counter.php, modify.php, delete.php, add.php, export.php Direktaufrufabsicherung fehlt ( if(!defined('WB_PATH')) exit("Cannot access this file directly ".__FILE__); ) => Aufruf als nicht angemeldeter User -> Weiterleitung auf BE-Login, Aufruf als angemeldeter Admin-User -> Seiten werden ohne "Drumherum" angezeigt

  • modify.php, view.php eigentlich nur bei Page-Modulen, nicht bei Admintools, scheinen Reste von einem Download-Modul zu sein

  • view.php => Funktion "Download"-Button?

  • /modules/linkcounter/view.php ohne Anmeldung erreichbar

  • Speichern nach Bearbeiten nicht möglich

  • Hochkomma (') im Link-Titel wird als l' im BE und FE angezeigt

  • fehlende Edit-/Lösch-Icons im BE (nur gelbes/rotes Rechteck)
    attachment.php?item=3923&download=1

  • Speichern/Abbrechen ungleich groß
    attachment.php?item=3924&download=1

  • CSV-Export enthält auch WBCE-Backend-Header
    attachment.php?item=3925&download=1

  • .claude/settings.local.json im Zip

Last edited by florian (18.01.2026 08:12:58)


Sorgen sind wie Nudeln: man macht sich meist zu viele.

Offline

#3 18.01.2026 08:20:33

florian
Administrator

Re: LinkCounter

Noch etwas Merkwürdiges: Das LinkCounter-Backend erzeugt Einträge im Errorlog

2026-01-18T07:15:38+00:00 [Visitor Request] .../admin/admintools/tool.php?tool=linkcounter
2026-01-18T07:15:38+00:00 [User Notice] /modules/outputfilter_dashboard/functions.php:[1490] from /modules/outputfilter_dashboard/functions.php:[1966] opf_apply_filters "output filter failed: returned empty content"
2026-01-18T07:15:38+00:00 [User Warning] /modules/outputfilter_dashboard/functions_outputfilter.php:[1218] from /modules/outputfilter_dashboard/plugins/cachecontrol/filter.php:[42] opf_cut_extract "opf_cut_extract(): content is not a string"
2026-01-18T07:15:38+00:00 [User Warning] /modules/outputfilter_dashboard/functions_outputfilter.php:[1279] from /modules/outputfilter_dashboard/plugins/cachecontrol/filter.php:[59] opf_glue_extract "opf_glue_extract(): content is not a string"
2026-01-18T07:15:38+00:00 [User Notice] /modules/outputfilter_dashboard/functions.php:[1490] from /modules/outputfilter_dashboard/functions.php:[1968] opf_apply_filters "output filter failed: returned empty content"
2026-01-18T07:15:38+00:00 [User Notice] /modules/outputfilter_dashboard/functions.php:[1490] from /modules/outputfilter_dashboard/functions.php:[1969] opf_apply_filters "output filter failed: returned empty content"


Sorgen sind wie Nudeln: man macht sich meist zu viele.

Offline

#4 18.01.2026 14:15:17

kleo
Member

Re: LinkCounter

Moin,

ich habe auch Interesse an so was, weil mit WBCE-Hausmittel ist so eine Analyse leider nicht möglich.
Ich sehe dabei aber ein anderes Problem.

Bei den Webseiten, die ich betreue, hat sich die Besucherstatistik in der letzten Zeit total verändert. Wenn es früher mehr oder weniger "echte Besucher" waren, sind jetzt überwiegend irgendwelche Crawler, die dazu noch schwer zu identifizieren sind. Es ist schon sehr seltsam, wenn bei einer komplett deutschsprachen Seite an der ersten Stelle bei der Besucherstatistik die chinesische Sprache steht...

Wie kann man dann diese Klicks zählen? Oder auswerten? Die Crawler klicken auf jeden Fall darauf, die "echte Menschen" aber "je nach dem".

Kann man da vielleicht  die mehr oder weniger "echte Klicks" irgendwie rausfiltern?

Offline

#5 18.01.2026 17:10:09

beach
Member

Re: LinkCounter

Danke florian. Da habe ich ja noch einiges zu tun.

@kleo: Ich denke man könnte vielleicht die Zeit messen die vom rendern der Seite bis zum Klick vergangen ist. Bots klicken meist sehr schnell evtl den Link auch erst leicht verzögert einblenden. So das ein Mensch deutlich länger braucht bis er auf den Link klickt. Könnte so vielleicht einen Teil der Bots ausblenden....

Offline

Liked by:

berny

#6 18.01.2026 20:49:21

kleo
Member

Re: LinkCounter

beach wrote:

man könnte vielleicht die Zeit messen die vom rendern der Seite bis zum Klick vergangen ist...

Ja, es ist vielleicht keine schlechte Methode!

Sonst hat man X-Klicks und nur sehr wenige davon sind dann von den echten Menschen. Und man weiß dann auch nicht, wie viele. Und das mach dann die Haupfunktion des Moduls sinnlos: man will eigentlich untersuchen, wie die Menschen auf bestimmte Inhalte reagieren, und nicht wie die Bots...

Offline

#7 18.01.2026 22:20:43

beach
Member

Re: LinkCounter

Zuerst schaue ich mal das alles funktioniert wie geplant.
Dann überlege ich mal wie man das umsetzen kann.

Habe ansonsten hoffentlich alles beseitigt was florian gefunden hat.
Mein Errorlog ist sauber geblieben.
Aktuelle Version 0.9.11 im ersten Thema angehängt.
Ein wenig Aufräumen fehlt noch, aber sonst scheint alles zu funktionieren.

Offline

#8 19.01.2026 07:47:09

florian
Administrator

Re: LinkCounter

Sehr gut, funktioniert jetzt einwandfrei, bis auf den CSV-Export - da gibt es mit PHP 8.4 noch eine Deprecated-Meldung:

2026-01-19T06:44:26+00:00 [Deprecated] /modules/linkcounter/export.php:[66] from /modules/linkcounter/export.php:[66] fputcsv "fputcsv(): the $escape parameter must be provided as its default value will change"


Sorgen sind wie Nudeln: man macht sich meist zu viele.

Offline

#9 19.01.2026 12:43:51

beach
Member

Re: LinkCounter

Der Fehler der diese Meldung verursacht hat, wurde behoben. Außerdem wird nun in der CSV auch die internen Links mit der ID angegeben.

Aktuelle Version 0.9.13 im ersten Thema verlinkt.

Offline

#10 20.01.2026 07:13:44

florian
Administrator

Re: LinkCounter

Prima, danke.
Würde das Tool dann im AOR ergänzen, wenn's recht ist?


Sorgen sind wie Nudeln: man macht sich meist zu viele.

Offline

Liked by:

berny, beach

#11 20.01.2026 21:55:42

beach
Member

Re: LinkCounter

Warte noch kurz.
Werde es die Tage noch aufräumen und dann auf Github stellen.

Offline

Liked by:

florian

#12 21.01.2026 22:39:00

beach
Member

Re: LinkCounter

So. Hab nochmal aufräumen lassen und die Version auf 1.0.0 gesetzt. Repo ist auf Github verfügbar
https://github.com/Beachbone/wbce-linkcounter
In der https://github.com/Beachbone/wbce-linkc … IPTION.txt  habe ich eine Beschreibung für das AOR erstellen lassen


@kleo: Das mit der Botfalle ist noch nicht drin. Aber das behalte ich noch im Hinterkopf.

Last edited by beach (21.01.2026 22:48:01)

Offline

#13 22.01.2026 07:34:43

florian
Administrator

Re: LinkCounter

thumb_up 
Machst du noch einen Release 1.0.0 auf https://github.com/Beachbone/wbce-linkcounter/releases ?
Vgl. z.B. https://github.com/WBCE/News-with-Images/releases

(Da immer noch falsche Annahmen herumgeistern: Nein, die Github-Zips müssen nicht zuerst entpackt und wieder gepackt werden, sondern lassen sich nach dem Download über Erweiterungen > Module direkt installieren. )


Sorgen sind wie Nudeln: man macht sich meist zu viele.

Offline

Liked by:

beach

#14 22.01.2026 08:09:53

beach
Member

Re: LinkCounter

Wenn ich es richtig gemacht habe sollte das Release erstellt sein roll
Git bleibt für mich ein Buch mit 7 Siegeln.  big_smile

Offline

#15 22.01.2026 08:35:47

florian
Administrator

Re: LinkCounter

Sehr schön, Eintrag ist ergänzt -> https://addons.wbce.org/pages/addons.ph … m&item=177


Sorgen sind wie Nudeln: man macht sich meist zu viele.

Offline

Liked by:

beach, byteworker

#16 22.01.2026 09:49:50

byteworker
Member

Re: LinkCounter

Sehr schönes Modul, werde ich sicher beim Download meiner Templates einsetzen. Vielen Dank dafür!

Offline

#17 23.01.2026 13:47:04

beach
Member

Re: LinkCounter

Danke byteworker.

@kleo: ich habe mal einen Crawlerschutz implementiert wie ich mir den vorstelle.
Wenn man diesen in den Einstellungen (im Adminbereich) aktiviert, wird jedem Link ein verschleierter Timestamp angehängt. Im Backend wird dann geprüft ob eine Mindestzeit eingehalten wurde (einstellbar, Standard bei 500ms) und dann entweder ohne zu zählen weitergeleitet oder einfach die gleiche Seite wieder aufgerufen.

Ich denke das sollte einen großen Teil der Crawler erwischen. Alle wird man nie erkennen können.

Version ist im ersten Thema upgedated

Offline

#18 23.01.2026 14:06:38

Slugger
Member

Re: LinkCounter

Danke beach für das Modul,

Ich habe im AOR gelesen das zwei Droplets beinhaltet:

Das klinkt für mich so als ob man auch damit Linkleichen erkennen kann?

Siehe auch mein Beitrag:
https://forum.wbce.org/viewtopic.php?pid=24802#p24802


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.3.29 * 1. Projekt: FE: Simple responsive * 2. Projekt: FE: hortal * 3. Projekt: FE: WBCEZon * 4. Projekt: FE: WBCETik * Alle • BE: Argos
Status Projekt 1-4:  OK

Offline

#19 23.01.2026 14:33:56

beach
Member

Re: LinkCounter

Ist eigentlich nicht vorgesehen.
Die Droplets blenden einfach nur die generierten Links ein bzw eine Tabelle mit allen Links und den Statistiken.
Eine Funktion das man die eingetragenen Links "anpingen" lässt um diese zu prüfen wäre mit Sicherheit machbar.
Aber nur die Links aus dem Linkcounter.

Wenn man alle Links checken möchte, wäre das evtl mit einem eigenen Modul möglich. Müsste man dann die DB nach allen Links durchforsten und diese anpingen. Dann das Ergebnis ausgeben.
Wird aber bestimmt aufwändig.

Offline

#20 23.01.2026 16:06:38

Slugger
Member

Re: LinkCounter

Danke beach,
War für mich nur zum Verständnis.


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.3.29 * 1. Projekt: FE: Simple responsive * 2. Projekt: FE: hortal * 3. Projekt: FE: WBCEZon * 4. Projekt: FE: WBCETik * Alle • BE: Argos
Status Projekt 1-4:  OK

Offline

Board footer

up