b2evo und Gravatars

Um Gravatars (in den Kommentaren) darstellen zu können verwende ich bisher das avatar_plugin – welches nur für Gäste einen Gravatar lädt, registrierte Benutzer müssen einen eigenen Avatar hochladen.

Da es gewisse Interferenzen mit dem avatar_plugin und dem thumbnail_plugin gab und das Plugin eigentlich oversized für das reine Anzeigen von Gravatars ist, habe ich ein wenig gebastelt.

Herausgekommen ist ein Hack, der das Anzeigen von Gravatars in den Kommentaren sowohl für Gäste als auch für registrierte Benutzer ermöglicht – ohne das Plugin installieren und einen eigenen Avatar hochladen zu müssen. Da gerade auf Multi-User-|Blog-Sites das Hochladen u.U. deaktiviert ist, eine sehr sinnvolle Sache.

Zur Realisation des ganzen müssen zwei Dateien angepackt werden: das Stylesheet und die Datei _item_comment.inc.php. Dabei empfiehlt es sich, die _item_comment.inc.php in das Unterverzeichnis des verwendeten Skins zu kopieren; zwar existiert die Datei direkt in /skins, allerdings würde eine Änderung dieser Datei sich auf alle Skins auswirken, was in Verbindung mit dem Stylesheet zu teilweise sehr abenteuerlichen Ergebnissen führt.

Das Stylesheet befindet sich ebenfalls im Unterverzeichnis des Skins, die Datei heisst stylesheet.css. Ich habe folgenden Code an meine stylesheet.css angehängt:

/* Gravatar style */
img.show_gravatar {
margin:7px;
padding:1px;
border:1px solid #CCCCCC;
background-color:white;
}

Die Datei _item_comment.inc.php habe ich ab Zeile 79 (zwischen <?php $Comment->rating(); und <div>) wie folgt abgeändert:

if( !empty( $Comment->author_User ) )
{
$email = $Comment->author_User->get( 'email' );
}
else
{
$email = $Comment->author_email;
}
$grav_url = "http://www.gravatar.com/avatar.php?gravatar_id=".md5($email); ?>
< div style="float:left"><img src=<?echo $grav_url;?> width="60" height="60" /></div>

Damit werden dann die Gravatars wie gewünscht in den Kommentaren (und nur dort!) angezeigt. Ganz allein habe ich das allerdings nicht hinbekommen:
Das Abfragen der Mail-Adresse von Gästen war nicht sonderlich schwer, diese wird von $Comment->author_email; geliefert, da sie beim Erstellen eines Kommentares mit in die Datenbank geschrieben wird, während dieser Eintrag bei registrierten Usern fehlt.

Ursprünglich wollte ich _item_comment_form.inc.php abändern und die Mail-Adresse registrierter User einfach mit in die Datenbank schreiben. Es geht allerdings viel einfacher, die korrekte Abfrage für die Mail-Adressen registrierter User lieferte mir ¥åßßå aus dem b2evo-Forum – herzlichen Dank nochmals dafür!

In den nächsten Tagen werde ich das avatar_plugin von meiner Site entfernen und diesen Hack implementieren. Viel Spass beim Nachbauen! ;-)

Dieser Beitrag wurde unter Admin-Stuff, Online-Stuff abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

3 Antworten auf b2evo und Gravatars

  1. Nicole sagt:

    Hi,
    hab grade versucht, das ganze in die Version 3.3.3 einzubauen, aber hab nur garbl hinbekommen.
    Testblog:

    Kannst Du mir sagen, ob Du’s bei der 3.3.3 schon probiert hast, oder ob ich einfach nur kein Haendchen dafuer hab (was mich nicht ueberraschen wuerde) :)

  2. Jörg sagt:

    3.3.3?
    Die hab ich noch nicht mal runtergeladen, danke für den Hinweis! ;-)

    Generell steh ich mit der 3er-Version auf Kriegsfuss, das fängt schon bei der Implementation der Bilder an, hier stimmen plötzlich die Image-Tags nicht mehr, Thumbnails funktionieren nicht mehr usw. Daher muss ich leider passen.

    Ich lad jetzt mal die aktuelle Version runter, werde aber frühestens zwischen den Jahren dazu kommen, das zu testen.

  3. Nicole sagt:

    Hab grad erst gesehen, dass ich an das style sheet ja direkt im blog ran kann.
    Werd ich gleich mal testen.
    Bei mir passen (nach einigem ruckeln und stoehnen) alle funktionen wieder.

    Allerdings nutze ich wohl wahrscheinlich auch nicht alles :(

    Ich glaub fuer heute (und diese Woche) hab ich aber auch langsam genug ;)

    Schoene Feiertage und einen guten Rutsch!