Gerne.
War eine gute Erinnerung dass ich noch eine kurze Anleitung bzgl. den Template Tags schreiben sollte...
Grüsse
EDIT: Hatte ich vergessen, bei dieser Gelegenheit Info über Version 0.8.0: CyStats ist jetzt auch WordPress 2.3 kompatibel.
Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.
Sie haben schon ein Benutzerkonto? Melden Sie sich hier an.
Jetzt anmeldenHier können Sie ein neues Benutzerkonto erstellen.
Neues Benutzerkonto erstellenGerne.
War eine gute Erinnerung dass ich noch eine kurze Anleitung bzgl. den Template Tags schreiben sollte...
Grüsse
EDIT: Hatte ich vergessen, bei dieser Gelegenheit Info über Version 0.8.0: CyStats ist jetzt auch WordPress 2.3 kompatibel.
Bitte nicht als Widget sondern als Template Tag benutzen (Code wie oben z.B. mit WordPress-Templates->Template Editor in eine Templatedatei an einer Stelle der Wahl einfügen). Als Widget sind diese Tags nicht vorgesehen, in deiner Seite wird der Code nicht geparsed sondern einfach nur ausgegeben.
Grüsse
Funktioniert auf CoreBlog » Weblog und lokal einwandfrei.
Darf ich fragen
- welche CyStats Version
- welche WP Version
- kannst Du einen relevante Codeauszug aus der betreffenden Seite posten ?
Bin leider noch nicht fündig geworden, bei einem anderen Tester und in meinen 3 Testinstallationen stimmen alle Versionsangaben überein. Hat jemand noch ähnliche Probleme ?
CyStats liegt mittlerweile als V. 0.7.6 vor, einige kleinere Verbesserungen und Bugfixes wurden durchgeführt.
Grüsse
Werde mich mal auf die Suche machen - ist aber wirklich verwirrend, hab mir gerade nochmal die zip-Datei angesehen:
- in der Pluginbeschreibung in cystats.php ist 0.7.5 angegeben, korrekt
- in der includes/installer.php wird bei Installation oder Update update_option('cystats_version',"0.7.5") ausgeführt, korrekt
- in der admin/options.php wird get_option('cystats_version') ausgegeben -> sollte doch dann auch 0.7.5 sein, schliesslich hat es update_option() doch so gespeichert !?
Grpmfl...werde den mal suchen gehen...
Grüsse und Danke fürs Ausprobieren
Cy
Ja, an unnötigen Schnickschnack wurde auch gedacht: Mit den Template Tags lassen sich einige Daten im Blogtemplate ausgeben:
Hoffe die Namen sind einigermassen selbsterklärend, alle Tags mit $pre/$pos als Parameter geben eine Liste von Daten aus, z.B. die Top10 (10=$limit) der meistkommentierten Beiträge als Liste würde man z.B. im Footer Template mit
ausgeben.
Grüsse
Update: In der ersten Downloadversion war ein Bug vorhanden der die Installation unter einem Windows-Server, z.B. XAMPP scheitern lies, auf Windows-Servern kommt scheinbar register_activation_hook() aus dem WordPress-Funktionsfundus nicht zurecht (Pfadproblem). Danke an Alex R. für die Information und Entschuldigung an alle Windows-Server-benutzenden Alphatester.
Seit dieser ersten Downloadversion sind mittlerweile etliche kleine Verbesserungen interner und optischer Natur eingebaut worden, aktueller Stand ist nun Version 0.7.5 .
Grüsse
Performance: Subjektiver Test mit einigen Aufrufen meiner Seite mit verschiedenen Browsern, microtime()-Auswertung zu Pluginbeginn und Ende ergibt (wirklich nur ein händischer Test) im Schnitt 0,008 Sek. für CyStats.
Die Importfunktion muss leider noch warten bis der vorgestern begonnene öffentliche Alphatest abgeschlossen ist, derzeit sollten erst einmal die bösesten Bugs beseitigt werden (war bisher aber nur einer) und die allgemeine Usability angepasst werden. Hoffe es finden sich noch ein paar Testwillige, dann wird es schneller gehen.
Im Moment fehlt mir auch noch die Tabellenstruktur von Semmelstatz und anderen Systemen, wenn mir da jemand etwas zukommen lassen könnte würde ich mir in Nicht-Bugfixing-Zeiten schonmal Gedanken machen können, installieren möchte ich mir im Moment noch kein anderes Statistik-System da ich mit meinen 3 CyStats-WordPress-Testsystemen schon am rotieren bin...
Grüsse
Cy
Zitat- die Tagesdaten der Besucherzahlen
Jup, sind drin. Tage, Wochen, Monate, Jahre -> Langzeiterfassung
Zitat- die Anzahl der Kommentare pro User (für Top-Liste)
cystats_getTopCommenters() gibt die Liste direkt aus der WP-Datenbank generiert aus -> Langzeit.
Zitat- die Anzahl der Views eines Beitrags (für Top-Liste)
Ja, Langzeitspeicherung, war mir auch wichtig. Momentan werden aber noch ALLE Besuche gezählt, sowohl Mensch als auch Robot, bin mir nicht so sicher wie das in Zukunft gehandhabt werden soll - IMHO eher NUR Mensch, oder ?
Zitat- die Anzahl der Kommentare pro Beitrag (für Top-Liste)
cystats_getMostCommented() generiert die Liste auch direkt aus der WP-Datenbank, ist also auch Langzeit.
ZitatWie sieht's denn mit der Performance des Plugins bei der Zählung aus? Sind da Schwierigkeiten (also große Last) zu erwarten?
Habe da bisher keine Erfahrungswerte, leider. Während der Entwicklung wurde auf Performance geachtet was PHP und MySQL Queries angeht, sind auf das Nötigste reduziert und optimiert. Auf PHP-Seite habe ich versucht nach Möglichkeit performancefressende Fehler zu vermeiden.
Werde versuchen einen Microsec. Zähler für einen Statistikeintrag zu generieren falls das einen (groben zumindest) Anhaltspunkt geben könnte.
Danke für das Interesse und die Mitarbeit
Cy
Lange hat es gedauert, jetzt ist die Alpha veröffentlicht. Interessierte können das Plugin gerne testen, bei Bugs, Problemen und/oder Feature-Requests bitte ich um Rückmeldung, Bugs werden so schnell wie möglich behoben.
Da es mein erstes veröffentlichtes Plugin ist habe ich noch wenig Vorstellung was mich erwarten könnte aber da lasse ich mich einfach mal überaschen.
Mit der Alpha wurden auch die Projektseite und einige Unterseiten neu gestaltet um etwas mehr Übersicht zu erreichen.
Zum Plugin:
CyStats ist ein Statistikplugin ähnlich den bekannten Semmelstatz, SlimStats oder Stattraq, dient also dazu Zugriffe auf die Blogseiten zu erfassen, benutzte Browser, Tools (wget, WordPress,...), Suchbegriffe (blogintern und extern, z.B. Googlesuche) und optional Javascript-abhängige Informationen über Bildschirmauflösung und -farbtiefe und (für Webentwickler interessant) vom Besucher benutzte Browserfensterdimension zu erfassen. Der Funktionsumfang bietet keine besondere Neuerungen ausser vielleicht der grösseren Zahl an benutzbaren Template-Tags und WP-Datenbanktabellenstatistik, auch Einstiegsseiten und Refererauswertungen sind vorhanden.
Warum habe ich das nochmal entwickelt? Einfach aus Spass an der Freud'. Der Grundstock des Plugins war schon vor 2 Jahren in ein eigenes Blogsystem eingebaut dass ich allerdings im letzten Bugfixing-Stadium zu Gunsten von WordPress aufgegeben habe. Macht einfach Spass.
In einer 'Langzeitdatenbanktabelle' werden bisher Zugriffe/Besuche nach Zeit (Tage, Wochentage, Stunden, Wochen, Monate, Jahre) erfasst und auf lange Sicht gespeichert. Die Tabelle kann von mir auf Wunsch auch noch erweitert werden falls Interesse besteht auch andere Daten längere Zeit zu speichern und zu beobachten.
Die Live-Zugriffe werden in einer zweiten Datenbanktabelle gespeichert, dabei wird jewils eine Zeile für einen Hit auf der Blogseite angelegt. Die Länge dieser Zeile variiert je nach aufgerufener Seitenurl, Referer und evtl. vorhandenen Suchbegriffen - ohne Referer und Suchbegriffe und bei kurzer aufgerufener Seitenurl ('http: //http://www.cywhale.de' z.B.) beträgt die Grösse einer Zeile ca. 100 Byte, was umgerechnet 10000 Hits in 1Mb Datenbank passen lassen würde.
Das Fassungsvermögen dieser Livetabelle kann frei begrenzt werden, angegeben wird ein bestimmter Zeitrahmen der enthalten sein darf (z.B. 2 Wochen), in ebenfalls frei festlegbaren Zeitabständen wird dieses Fassungsvermögen dann geprüft und bei Bedarf alte Datenzeilen gelöscht, funktioniert ähnlich einem Cronjob unter Linux oder auch wp-cron.
Optional an/abschaltbar sind das Erfassen Javascript-abhängiger Daten (Bildschirmauflösung, Browserfensterdimension, Farbtiefe), das Erfassen interner Referer und das Erfassen von Adminseitenbesuchen, der Zugriff auf den CyStats-Adminbereich (integriert in den WordPress-Adminbereich) kann über das Userlevel eingeschränkt werden.
Der CyStatsbereich auf Cywhale.de wurde nun auch etwas überarbeitet so dass nun folgende Seiten zu Verfügung stehen:
CyStats Features (Ausführliche Liste der Möglichkeiten)
CyStats Download und Installation
CyStats Changelog (Zeit/Versions-Liste)
CyStats Roadmap (Zeitplan)
CyStats Bugs (Liste und Bugmeldungs-Kommentare)
Grüsse
Cy
Bei der Array-Variante ist auch die mit den Sprachen zunehmende Dateigrösse. Wenn man sich dann entscheidet wg. Datigrösse und Übersichtlichkeit alles auf include(Übersetzung) umzustellen hätte man gleich bei gettext bleiben können. Die von WordPress empfohlene Variante ist IMHO die für alle Beteiligten die einfachste, wie oben schon genannt wird das Übersetzen an sich auch schon sehr, sehr angenehm.
Grüsse
ZitatSo dass man die Daten ewig aufheben kann, weil alte Daten (z.B. älter als einen Monat) nur noch aggregiert gespeichert werden, z.B. auf Tages-, Wochen- oder Monatsebene
Wie ist das gemeint? Welche Daten sollen langzeitgespeichert werden?
Derzeit werden in der Langzeittabelle unique Hits und Visits für Tage(356), Wochen(52), Monate, Jahre gespeichert, jeweils getrent nach vermutlich Menschlicher Besucher oder vermultich Robot o.Ä..
Dazu noch die meistbesuchten Beiträge und Besuche durch registrierte und angemeldete Benutzer.
Würden noch andere Daten im Langzeitspeicher gewünscht? Browser z.B.? Muss ja doch etwas überlegt gehandhabt werden da bei steigender zu speichernder Datenmenge natürlich auch die Performance sinkt.
Also auch Frage an alle: Was für daten sollten auf lange Sicht erhalten bleiben?
Grüsse
Cy
Was Neues - ja, irgendwie schon. Habe das Plugin nach längerer Pause jetzt forciert weiterentwickelt, Features dazugenommen, unnütze Sachen entfernt, Geschwindigkeit und Datenbankbenutzung optimiert, einige Sicherheitslücken geändert und Sicherheitscode eingebaut, Code etwas aufgeräumt (teilweise) und dokumentiert, heute erst eine Statistik über die Datenbank selbst (WP-Tabellen , Plugins-Tabellen allgemein und CyStats-Tabellen,...) hinzugefügt, Dauertest auf cywhale.de läuft weiterhin.
Import aus Semmeltatz oder anderen Systemen ist aus Zeitgründen noch nicht implementiert, habe derzeit auch noch keine Ahnung wie dort die Datenbanktabellen aufgebaut sind. Wird aber in Zukunft auch integriert werden wenn die Voraussetzungen es erlauben (die Statistiken müssen ja auch nach dem Import noch einen Sinn ergeben).
Vorerst möchte ich aber erst einmal das Plugin an sich fertigstellen, dann evtl. Bugfixing wenn nötig, Feintuning, evtl. die Templatetags nochmal nach Userwünschen überarbeiten etc... grösser anmutende Features sollen erst nach erfolgtem Alphatest und Release dazukommen, vielleicht ändere ich meine Meinung aber auch noch und baue häufig gewünchte Features doch noch früher ein.
Zum Thema "Meistgelesene Beiträge": Die Funktion
liest die meistgelesenen Posts nicht aus der Livetabelle sondern aus der statischen Statistiktabelle, ist also auf Langzeit ausgelegt.
Mehr Informationen, Features und Changelog gibt es weiterhin auf CyStats - Ein WordPress Statistik Plugin - CoreBlog , dort werden die Informationen auf dem aktuellen Stand gehalten. Alphatest hat noch nicht begonnen, sollte aber in den nächsten Tagen passieren, wenn also noch jemand mit MySQL und PHP-Erfahrung Interesse hat - einfach Bescheid geben.
Gleiches gilt natürlich für Ideen und Fragen.
Grüsse
Cy
CformsII (cforms II » delicious:days), völlig frei definierbares Formularplugin, wenn mich nicht alles täuscht enthält es sowohl Frage-Antwort-Spamschutz als auch CAPTCHA.
Sollte aber nicht zu schwer sein. Man hänge an den Hook für die Post-Ausgabe eine Funktion die
- die User-ID ermittelt (aus der DB)
- in eine DB-Tabelle eine Zeile mit Post-ID und User-ID einfügt
wenn nicht schon vorhanden
Fertig
Zur Ausgabe muss man dann
- die User-IDs auslesen die einem bestimmten Post zugeordnet sind, dann
- die Usernamen der User-IDs auslesen (DB) und anzeigen.
Grüsse
Jup,jup, übertreiben kann man es immer. Bildschirm wäre mir im Prinzip auch egal, Farbtiefe auch, aber wenn man häufiger Webseiten baut ist z.B. die durchschnittliche Browserfenstergrösse schon interessant. Könnte man aber auch aus Online-Datenbanken bekommen bzw. nachschlagen. Genauso wie die Nutzungsverteilung der Browser. Usw, usw...
Allerdings soll das Script WENN ich es jemals fertigstelle doch einen einigermassen angemessenen Umfang haben, schliesslich geht es nicht um mich alleine sondern auch um potentielle andere Nutzer, die dann vielleicht Interesse an solchen Angaben haben. Und die Standartdaten wie oben genannt gehören seit Jahren schon zur Grundausstattung der meisten Statistiksysteme :)
Und nicht zuletzt wird sich der Javascriptteil auch abschalten lassen - wer nicht will, braucht das auch nicht zu nutzen.
Grüsse und Danke nochmal - wie gesagt, 'shutdown' bleibt mir im Gedächtnis bzw. wird auf die ToDo-Liste kommen - mal sehen.
Hrm... die Idee war gut. Beim Versuch zeigte sich aber dass entweder 'shutdown' erst nach 'wp_footer' aufgerufen wird oder ich ein grösseres Pfadproblem durch 'shutdown' bekommen habe.
Problem: Im Moment hänge ich das Basislogging an 'template_redirect', später bei der Anzeige der Seite wird noch an 'wp_footer' die Ausgabe eines kurzen (optionalen) Javascriptes zwecks Bildschirmabmessungen, Farbtiefe und Browserfensterabmessungen gehängt.
Um die JS-Daten jetzt einem Besuch zuzuordnen wird eine Pseudo-ID verwendet, die zuerst im Basislogging-Teil generiert und gespeichert wird. Nachdem jetzt bei 'shutdown' als Hook anscheinend zuerst das wp_footer-Javascript generiert wird und dann erst per 'shutdown' das Basislogging können die JS-Daten keinem Besucher mehr zugeordnet werden.
Werde mir 'shutdown aber mal für später aufheben - prinzipiell könnte ich die Pseudo-ID im wp_footer-Teil generieren und speichern lassen, dann das frühere Basislogging durchführen. Mal sehen, aber im Moment möchte ich lieber den Code an sich aufräumen und die Alpha fertigmachen - 'template_redirect' scheint mein Hauptproblem vorerst gelöst zu haben.
Danke nochmal an alle.
Dabei rauskommen soll eine fertige Version von diesem hier: Klick
Shutdown ist eine interessante Idee - kann ich irgendwo nachvollziehen ob Shutdown grundsätzlich bei jedem Aufruf (Seite, Feed, Trackback, Pingback,...) nutzbar ist ? Dann könnte ich immerhin einen Aufruf von do_action einsparen.
Grüsse und Danke
Habe als Hook nun 'template_redirect' direkt am Anfang des Dokumentenparsings gewählt (wp-includes/template-loader.php), scheint gut zu funktionieren. Ergänzen musste ich nun mangels parse_query Pingback:
add_action('template_redirect' , 'cystats_logger');
add_action('pingback_post' , 'cystats_logger');
Mal sehen ob es funktioniert oder ich wieder einen Denkfehler drin habe...
Grüsse
Edit: Trackback add_action wieder gestrichen, wird auch vom template_redirect abgedeckt.
Ja, hatte mit wp_footer gearbeitet. Dann wiederum hatte ich Probleme mit den Feeds. Allerdings könnte ich ja versuchen den wp_footer beispielsweise als Fallbacklösung zu verwenden falls parse_query nicht möglich ist ?