... die Sache mit den Avatars

  • Da ich das simple-forum plugin verwende, lese ich auch die Avatare aus dem Forum für die Kommentare aus. Bezieht sich je eh alles auf die selbe db.

    Nun habe ich aber seit kurzem eine Math-Spam Protection integriert, wodurch nun auch Gäste kommentieren können. Klarer Weise erscheint dann natürlich kein Bild über dem jeweiligen "Senf". Wie kann den Code erweitern und eine Art default-Gast .jpg Datei zuweisen?

    Doc

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Hmmm, also eigentlich sollte das die letzte if-Abfrage machen... wenn das Meta-Feld wp_sfavatar leer ist, gibt's das Standardbild... und das Feld sollte bei Gästen ja auch leer sein..

    Naja, provisorisch würde ich daher mal eine weitere if-Abfrage drumherum wrappen, um abzufragen, ob es sich um einen eingeloggten Nutzer handelt:

    wpseek.com - Die WordPress-Code-Suchmaschine

    Einmal editiert, zuletzt von Alphawolf (14. September 2007 um 11:01)

  • Hi Oli,

    die Abfrage funzt irgendwie nicht, aber das ist egal. Habe einen kleinen "Trick" angewendet. Da die Avatare über ein CSS Style angesteuert werden, habe ich einfach ein background image für Gäste eingesetzt, was dann im Falle von vorhandenen Avataren bzw. der default Grafik bei reg. Nutzern überlagert wird :-)

    Siehe hier

  • ... mist geht doch nicht.

    Ich bekomms net hin! Wie kann man denn in der comment.php die gast_id auslesen? Ist die fest? kleiner 1?

    Wie könnte man denn das bloß anstellen? Momentan werden alle Gäste mit dem Standard Ava versorgt. Aber die haben doch keine ID oder?

    ratlos bin

  • Hmm, eigentlich sollte die Abfrage auf

    PHP
    if ($user_ID) {


    klarstellen, ob es sich um einen Gast oder eingeloggten Nutzer handelt. :confused:

    ps. Ein Gast hat keine gast_ID.

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Momentan läuft die Sache mit diesem Code (Auszug aus der comments.php):

    Wenn ich ´ne user_login abfrage laut Alphawolf drumrum packe, werden die Avatare nur angezeigt, wenn man sich selbst (oder andere) eingelogged hat. Besucher sehen also nur lauter "gast" Pix wenn sie die Coms lesen.

    Ich werde bald verrückt, dabei habe ich das Gefühl, die Lösung ist ganz nahe.

  • Oh man, ich glaube, die Sonne hat dieses WE mein Hirn weggebrannt. Jetzt hab ich den selben Fehler gemacht, den ich bei dir schon mal gemacht habe (in einem anderen Thread)... denn die Abfrage $user_ID fragt ja ab, ob man selbst eingeloggt ist, nicht ob der Kommentar von einem eingeloggten User kommt oder nicht, was du ja willst.

    Also, versuch es damit:


    Ungetestet. Sichere also den bisherigen Code irgendwo. ;)

    wpseek.com - Die WordPress-Code-Suchmaschine

    Einmal editiert, zuletzt von Alphawolf (17. September 2007 um 15:02)

  • Oli, mein sonnengbräunter php Held!

    Es geht!

    Lustigerweise war ich selber sooo nahe dran - schau her:

    Danke Dir wiedermal unendlich!

    Aber der nächste Streich bzw. Punkt kommt bestimmt :-) Bspw. würde ich gerne die Avatare zu den Top-5 Mitgliedern in den Forenstatistiken anzeigen lassen. Aber alles zu seiner Zeit. Jetzt kümmere ich mich erstmal wieder um die Unterseiten und ihre Validierung. Die mainpage ist ja schon bei 0 Fehlern :mrgreen:

    Euer Doc

  • ... irgendwann ist immer das erste mal.

    Neue Frage bzgl. der Validierung:

    Wie füge ich in diese echo Befehle das "alt" Attribut ein? Der WC3 meckert rum, dass die fehlen.

    Diese strings unterscheiden sich ja ein wenig ggü. den normalen xhtml orders.

    Ich produziere imme nur T_String errors wenn ich alt="grafik" vor dem /> einfüge.

    Edit: hat sich erledigt :-) habs selbst rausgefunden.

    muss alt=\"grafik\" lauten

    ://danieljaeger.DE - WordPress-Tipps aus Berlin!

    Einmal editiert, zuletzt von Doc (17. September 2007 um 21:09)

  • Hi,

    Erstmal vielen Dank für eure gute Arbeit und den erarbeiteten code :-)
    Leider habe ich noch ein Problem.
    Im Comments-Bereich von WP werden mir zwar die Avatare aus simpleForum (/wp-content/forum-avatars) angezeigt, jedoch nur die standardicons.

    Hat also ein Member aus dem Forum einen Kommentar in Wordpress hinterlassen, so wird nicht sein persönliches avatar (wie in simpleforum gesetzt) angezeigt sondern nur der Avatar von userdefault.png

    Die Frage ist nun, warum?
    Muss ich an dem Code noch was anpassen? Was ist mit ?page_id36 in dem code?

    Ich hoffe ihr könnt mir helfen.
    Danke schon mal im Vorraus für jede hilfreiche Antwort.

  • PHP
    elseif { echo("<img src=\"/wp-content/forum-avatars/gast.gif\">\n");
    }


    Sieht komisch aus.

    Versuch mal:

    PHP
    else { echo("<img src=\"/wp-content/forum-avatars/gast.gif\">\n");
    }

    ps. Miranda Fusion! 8)

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Hmm, dann ist die Frage, ob es das Nutzermeta-Feld "wp_sfavatar" überhaupt gibt. Vllt wurde das mittlerweile umbenannt, denn der Thread ist ja jetzt fast schon ein Jahr alt.

    Kannst du in der DB schauen, ob die Tabelle 'wp_users' ein Feld "wp_sfavatar" hat?

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Suppppper... danke dir, genau das war der richtige Hinweis. Hatte nach "wp_sfavatar" gesucht und nix gefunden bzw. nur "sfavatar" wurde als meta-key gefunden, in der Tabelle wp_usermeta. Jetzt arbeitet es auch wie es soll :-) DANKE!!!

    Vielleicht kannst du mir auch bei meinem zweiten "Problem" helfen?

    Ich würde in die oben genannte php-funktion noch eine Abfrage einbauen, ob der User, welcher kommentiert hat ein Gravatar (Gravatar - Globally Recognized Avatars) besitzt. Wenn, dann soll dieses angezeigt werden, wenn nicht, das avatar aus Simple forum, und wenn das auch nicht, dann das defaultavatar.

    wäre für jeden gedanken und Vorschlag dankbar!

    EDIT: habe zu Gravatar folgende Funktion gefunden (Using Gravatars): « WordPress Codex

    PHP
    <?php 
       echo get_avatar( $comment, $size = '32', $default = 'http://www.miranda-fusion.de/gravatar.jpg' ); 
       ?>

    Diese müsste man irgendwie als IF - ELSE funktion noch irgendwie mit einbauen, nur habe ich davon nicht so die ahnung :-/

  • Hmm, ich wüsste jetzt nicht, wie man abfragt, ob ein Gravatar vorhanden ist oder nicht. Das Bild kann man zwar per Angabe der E-Mail abfragen:

    PHP
    "http://www.gravatar.com/avatar.php?gravatar_id=" . md5( $email ) . "&size=30"


    Aber in beiden Fällen (also entweder das Gravatar oder Standardbild) gibt er ja etwas zurück... Vielleicht bietet gravatar.com diesbezüglich was an; ich nutze Gravatare nicht, und kenn mich damit nicht aus.

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Törrö... war eigentlich gar nicht so schwer. Hab einfach nur eine Zeile aus den bisher genannten code gegen eine für Gravatar ausgetauscht. Für alle die es interessiert hier der komplette CODE:

    Zusammenfassung: Der Code wird einfach dahin platziert wo der Avatar des Kommentierenden angezeigt werden soll, z.B. in der comment.php bzw. comments-paged.php.

    Es wird geprüft, ob der Kommentator schon im SimpleForum registriert ist und ob er dort ein eigenes Avatar gesetzt hat. Ist dies der Fall, wird dieses bei den WP-Kommentaren angezeigt. Hat er kein eigenes Avatar in SF gesetzt, wird das "default" Avatar von SF gesetzt.

    Ist der Kommentator nicht im Simple Forum oder WP angemeldet so wird entweder das Gravatar (muss bei gravatar.com registriert sein) anhand seine Email erkannt und angezeigt, oder falls dies nicht der Fall ist, so wird ein "Guest"-Avatar (in diesem Falle das gleiche wie bei Simple Forum) angezeigt.

    Ich hoffe der code kann dem einen oder anderen weiter helfen :mrgreen:
    best regards
    puttee

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!