Jan

4

WordPress Plugin: GravatarLocalCache

Bei den Versuchen die Ladezeit meines Blogs zu verkürzen ist ein neues Plugin für WordPress entstanden: GravatarLocalCache.

Im Grunde sagt der Titel schon alles, mit dem Plugin lassen sich die Gravatar-Bilder auf dem eigenen Server zwischenspeichern und werden von dort ausgeliefert. Doch welchen Vorteil kann das haben?

Zum einen reduziert es die Anzahl der DNS-Abfragen für das Laden einer Seite und zum anderen kann man so die Zeit, die die Gravatar-Bilder im lokalen Cache (des Browsers/Proxy’s) zwischengespeichert werden erhöhen. Wobei für letzteres man selbst zu sorgen hat, z.B. durch entsprechende Einstellungen des Webservers (was man allerdings grundsätzlich auch machen sollte, siehe hier).

Einen “kleinen Schönheitsfehler” hat das Plugin derzeit noch, sofern viele Gravatar-Bilder in einer Seite auftauchen, die noch nicht lokal zwischengespeichert sind, so erhöht sich die Ladezeit der Seite massiv (da die Seite erst ausgeliefert wird, wenn alle Bilder vollständig auf dem lokalen Server gespeichert sind). Ich bin aber dabei dafür eine elegantere Lösung zu entwickeln (an Ideen mangelt es nicht, aber an der Zeit dafür), u.a. deshalb trägt die erste veröffentlichte Version auch die Nummer 0.9.0 (und nicht 1.0.0).

Den Download gibts bei WordPress.org: Download.

Für Bugmeldungen bzw. Erweiterungswünsche bitte den Bugtracker und für sonstige Fragen bitte das Support-Forum verwenden.

Teile und Herrsche
  • Digg
  • Yigg
  • LinkArena
  • MisterWong.DE
  • Webnews.de
  • Technorati
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Reddit
  • Live
  • Google Bookmarks
  • Wikio

34 Kommentare bis jetzt

  1. Kommentar von hombertho:

    Klasse, dass du dein Plugin der Öffentlichkeit zur Verfügung stellst. Muss ich doch gleich mal ausprobieren.
    Lässt sich den der Schönheitsfehler vermeiden? Müssen nicht immer erst alle Gravatars beim ersten mal herunter geladen werden?
    Viele Grüße
    Thomas

  2. Kommentar von proog:

    Aktuell nein (zumindest fällt mir spontan nix ein, wie es auf die Schnelle gehen könnte)… Ich hab zwar schon ne Idee wie man es vermeiden könnte, aber das bedarf grösserer Modifikationen am Sourcecode…

    Im Grunde würde ich den Einsatz des Plugins aktuell nur bei kleineren Blogs empfehlen (bei 40 verschiedenen Kommentatoren braucht es ansonsten schonmal schnell 15 Sekunden bis alle Avatare geladen sind)…

    (ich sollte die readme vll dahingehend ergänzen)…

  3. Kommentar von Torsten:

    Ich bin auf der Suche nach genau so einem Plugin. Würde mich freuen, wenn das Plugin bald die Version 1.0.0 erreicht.
    Wäre es evtl. möglich, dass Du mich kurz kontaktierst, wenn das Plugin soweit ist?
    LG, Torsten

  4. Kommentar von proog:

    Ich werds versuchen…
    … ansonsten Empfehle ich das Abonnieren meines Feeds ;)

  5. Kommentar von Ovidiu:

    Hi. sehr schoene Idee, leider funktioniert das Plugin bei mir nicht. Habe auch im WordPress forum gepostet, kam aber keine Antwort:
    http://wordpress.org/support/topic/348128?replies=1

    Zusammenfassung:
    1. You use GravatarLocalCache a lot but the folder name is gravatarlocalcache and this confuses wordpress installations that use Linux.
    2. It doesn’t seem to work, its either my theme: hybrid theme or the W3 Total Cache even though I have emptied the cache. To be honest I guess its this plugin as its own cache folder stays empty…

    Waere nett wenn du mir weiterhelfen koenntest…

  6. Kommentar von proog:

    thx. should be fixed in 0.9.1

    (hatte deinen post im wordpress forum leider (noch) nicht gesehen gehabt)

  7. Kommentar von Ovidiu:

    Danke.
    Scheint aber mit meinem theme oder sonstwas nicht zusammenzufunktioneiren. Schau doch bitte mal auf den Link den ich heir im URL Feld hinterlassen habe, das Plugin ist aktiv, gravatars kommen aber trotzdem nicht aus dem cache…

  8. Kommentar von proog:

    Ist schwierig zu sagen, woran das nun genau scheitert. Folgende Punkte würden mir spontan dazu einfallen:

    - Das Theme lädt die Gravatare nicht über die Funktion get_avatars().
    - Es gibt ein Problem beim Herunterladen der Gravatare bzw. beim Schreiben dieser auf die Festplatte. Das Plugin versucht zwar beim Anlegen des Verzeichnisses für den Cache die Rechte entsprechend zu setzen, aber da Fehlermeldungen unterdrückt werden, würde man einen Fehler im Zweifelsfalle nicht mitbekommen.

    Ich weiss nicht wie fit du in Sachen PHP bist? Ansonsten könntest du versuchen die auskommentierten HTML-Kommentare anzeigen zu lassen, bzw. noch weitere Infos als HTML-Kommentare ausgeben um dem Problem auf die Schliche zu kommen… Falls nicht, könnte ich dir eine entsprechende Version zusammenbasteln…

  9. Kommentar von Ovidiu:

    Also ich bin kein Programmierer, habe aber meinen eigenen Root Server und in den error logs ist nichts was hier weiterhelfen koennte. Zudem sind die rechte richtig, ich kann via wordpress back end plugins installieren/loeschen d.h. Verzeichnisse werden vom Webserver richtig angelegt.

    Weitere Vorschlaege? Oder kann ich eventuell eine modifizierte Version bekomen zwecks debugging?

  10. Kommentar von proog:

    Du solltest eine E-Mail bekommen haben, mit ner “Debug”-Version ;)

  11. Kommentar von Ovidiu:

    Ok, ist eingebaut. Hab jetzt folgendes rausgefunden:

    z.B. http://pacura.ru/blog/full-moon-picnic-on-signal-hill/ hier werden die Gravatare gecached. Das Hybrid Theme ist also compatibel mit deinem Plugin.

    Aber nicht die aus der Sidebar. In der Sidebar verwende ich diese 2 Plugins die auch Gravatare laden. Kannst du dir die mal angucken? Eventuell kannst du dein Plugin erweitern, damit es die auch cached?

    - das eingebaute recent comments widget
    - http://blog.zen-dreams.com/en/2008/08/06/new-wordpress-plugin-gravatar-top-commenters/

  12. Kommentar von proog:

    Das ist ja schon mal erfreulich, das es grundsätzlich funktioniert.

    Bzgl. der Widgets in der Sidebar.

    1) Im Standard-Widget von WordPress finde ich gar keine Gravatare? und bei dem Theme finde ich spontan nichts passendes. Ist da vll. doch noch ein anderes Plugin im Einsatz?

    2). Dieses Plugin bastelt die Gravatarlinks direkt. Sicherlich wäre es möglich auch diese Links herauszufiltern und zu ersetzen, allerdings würde das einen deutlichen Mehraufwand pro Seitenaufruf bedeuten. Es müsste jede Seite immer am Ende nochmals via regulären Ausdruck (oder dergleichen) gefiltert werden…
    Einfacher ist es das Plugin anzupassen. Es muss einfach nur die Funktion “get_avatar()” verwenden (ist eine Zeile Code, die angepasst werden muss).

  13. Kommentar von proog:

    Hier mal eine angepasste Variante des 2ten Plugins:

    http://blog.splash.de/_download/zd_CommentsWidget.zip

  14. Kommentar von Ovidiu:

    Ah, danke :-)

    Hab grad gemerkt dass:

    1) dieses Plugin da werkelt: http://wordpress.org/extend/plugins/get-recent-comments/
    2) hab zu dem Plugin ne neuere Version gefunden und dir zugemailt

    Danke fuer den Support soweit!

  15. Kommentar von proog:

    Die Datei aus meinem letzten Kommentar ist ausgetauscht (1.0.1), einfach nochmal runterladen…

    und hier noch das andere Plugin:

    http://blog.splash.de/_download/get-recent-comments.zip

    ist aber auf eigene gefahr, habs nicht getestet… generell wäre es empfehlenswerter die entsprechenden autoren anzuschreiben und zu bitten die wordpress funktion “get_avatars()” zu verwenden, denn ansonsten müsstet du die änderung bei jedem update wieder einbauen…

  16. Kommentar von Ovidiu:

    hmmm… funktioniert nicht so ganz.

    das zdcommentswidget funktioniert, allerdings sieht der output anders aus, da die get_avatars funktion das ganze anders ausgibt. Kein Problem, kann ich mit CSS beheben.

    das get-recent-comments widget, funktioniert nicht mehr. es werden keine gravatare angezeit. schau doch mal kurz auf meine Seite bitte.

    Ich glaub da ist irgendwo ein kleiner Fehelr drin.

    Natuerlich werde ich die Authoren bitte ndiese Aenderung aufzunehmen, sobald wir eine funktioneirende Loesung haben :-9

  17. Kommentar von proog:

    zu zdcommentswidget, da hab ich das borders=”0″ übersehen… sollte aber so oder so geschickter/schöner sein, das via css zu lösen…

    bzgl. get-recent-comments, doof… aber müsste ich um mehr sagen zu können, erstmal selbst installieren… ach nee, könnte an nem == statt nem = gelegen haben (doofer typo), einach nochmal downloaden…

    meinte bzgl. der autoren auch eher, das man sie direkt drum bittet das selbst zu integrieren ;) (sie wissen besser was sie an welcher stelle ihres plugins machen wollen)

  18. Kommentar von Ovidiu:

    scheint jetzt alles perfect zu funktionieren. ich melde mich mal bei den Plugin Authoren :-)

    danke fuer das geile Plugin und die Hilfe!

  19. Kommentar von Michael:

    Habs gerade installiert, kann es aber nicht nutzen. :(
    “cache directory doesn’t exists or isn’t writable.”
    Was nun?
    In der Readme steht dazu nix.

  20. Kommentar von proog:

    Ist guter Rat teuer ;)

    Nee… Es liegt wohl ein Rechteproblem vor. Wie hats du das Plugin installiert, via WordPress-Admin oder via FTP-Upload?

    und welche Rechte sind beim gravatarlocalcache-Verzeichnis eingetragen? Gibts darin ein Verzeichnis mit dem Namen “cache”? und wenn ja, welche Rechte?

  21. Kommentar von Michael:

    Wordpress-Admin.
    kein Verzeichnis drin, demnach auch keine Rechte
    das Plugin-Verzeichnis hat 755

  22. Kommentar von proog:

    mmh, als erstes könntest du das neuste update versuchen (0.9.4)… wenn das nichts hilfst, könntest du den cache ordner selbst anlegen (am besten mit 0755)…

    und zusätzlich wäre noch interessant welche phpversion bei dir im einsatz ist, welche api (mod_php,cgi) verwendet wird, ob der safe_mode an ist bzw. ob suhosin aktiv ist?

  23. Kommentar von Michael:

    so, hab auf 0.9.4 geupdated und den Ordner selbst angelegt, keine Fehlermeldung mehr.

  24. Kommentar von proog:

    mmh… wird allerdings dann wohl beim nächsten Update wieder “knallen”, da beim Update das Verzeichnis dort wieder neu angelegt werden muss (sollte ich vll. auslagern, ausserhalb des Pluginverzeichnisses)…

  25. Kommentar von SPnova:

    Very good plugin! Thanks!

    I’ve added several lines for data URI support
    (Only need to check browser capability by own check_dataurl() function.)

    [185]
    // Set variables for storage
    $_name = $_img[1];
    $_file = GLCCACHEPATH.$_name.’-’.$_img[2].’.jpg’;
    $_url = GLCCACHEURL.$_name.’-’.$_img[2].’.jpg’;
    $_filebase = GLCCACHEPATH.$_name.’-’.$_img[2].’.txt’;

    // print ”;

    // print ‘‘;

    if (file_exists($_file) && ((time() – filemtime($_file))/60/60) < self::$options['cache_time']) {
    // print '‘;
    if (!check_dataurl()) {
    $_retVal = $_url;
    }
    else
    {
    if (!file_exists($_filebase)) {
    $fp = fopen($_filebase, “w+”);
    fwrite($fp, “data:image/jpeg;base64,”.base64_encode(file_get_contents($_file)));
    fclose($fp);
    }
    $_retVal = file_get_contents($_filebase);
    }
    } else {

  26. Kommentar von JUlia:

    Hello, thanks for this plugin but i have upgrade to wordpress 3 RC1 and it doesn’t work anymore.

    I am the only one .

  27. Kommentar von proog:

    Did you get any error message?

    (cause the rc was released today, i didn’t have the time to test all my plugins yet)

  28. Kommentar von Ovidiu:

    hab hier ein Problem nach dem Upgrade auf wp 3.0 RC2: alle gravatar URLs sehen so aus:

    nicht 3.0 compatibel?

  29. Kommentar von proog:

    Hatte leider noch keine Zeit es zu testen.

  30. Kommentar von Ovidiu:

    sory habs kurz nach dem posten gelesen. na ja wenn du halt Zeit hast, ist nicht sonderlich eilig…

  31. Kommentar von externe Festplatte 1tb:

    hm schade dasses noch nich mit wp 3.0 funktioniert :( ist ein update geplant?

  32. Kommentar von proog:

    Ja, ein Update ist geplant (wann es fertig ist, kann ich allerdings noch nicht sagen).

  33. Kommentar von shaquille:

    This plugin is not compatible with wordpress 3.0. :(
    Please update your plugin

  34. Kommentar von proog:

    the update should be available in a few minutes… ;)

Kommentar hinterlassen

XHTML (erlaubte Tags): <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Archiv

Zufällige Bilder

  • LED LENSER M7
  • MacBook Pro
  • Seagate FreeAgent Go Blau / 320GB

Kommentare (28 Tage)

Sonstiges


Bloggeramt.de