Avatar in Suchergebnissen

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
MajorROM
Mitglied
Beiträge: 69
Registriert: 26.02.2009 12:34

Avatar in Suchergebnissen

Beitrag von MajorROM »

Hallo,

der folgende Code soll dazu dienen, die User-Avatare in den Suchergebnissen anzuzeigen. Nun habe ich ihn an unendlich vielen Stellen versucht einzubinden, zu einem Ergebnis hat es aber bisher nicht geführt.

function.php

Code: Alles auswählen

function get_avatar_by_id($the_id)
{

   global $db;

   $sql = 'SELECT user_avatar
    FROM ' . USERS_TABLE . '
    WHERE user_id = ' . (int) $the_id;
   $result = $db->sql_query($sql);

   $avatar = $db->sql_fetchfield('user_avatar');
   
   return $avatar;
}
search.php

Code: Alles auswählen

'POSTER_AVATAR'      => get_avatar_by_id($row['poster_id']),
Im Template:

Code: Alles auswählen

<!-- IF searchresults.POSTER_AVATAR --><img src="/download/file.php?avatar={searchresults.POSTER_AVATAR}"><!-- ENDIF -->
im phpBB.com Forum bekam ich folgende Antwort, die mich leider nicht weiterhilft. Vielleicht habe ich ja gerade ein Brett vor dem Kopf, ich stege irgendwie nicht hinter die Logik. Vielleicht könnt ihr mal einen Blick drauf werfen.
dpaanlka hat geschrieben: You haven't passed a user_id when calling the function. Note the beginning of the function:

Code: Alles auswählen

function get_avatar_by_id($the_id)
So elsewhere, when calling the function should look something like this:

Code: Alles auswählen

$avatar = get_avatar_by_id($user_id);
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Avatar in Suchergebnissen

Beitrag von gn#36 »

Sieht eigentlich erst mal gut aus so, den Kommentar von .com halte ich für Blödsinn, zumindest von der Bezeichnung her würde ich sagen dass das so stimmt wie es ist.

Das einfachste ist bei solchen Fehlern immer sich mal das direkt anzusehen was die Funktion liefert als Ergebnis und was als Wert hineinkommt. Dafür eben ein Echo vor dem return und direkt nach der Funktionsdeklaration um hier schon mal sicherzustellen das alles klappt. Ist der ankommende Wert falsch, dann solltest du an der Aufrufenden Stelle mal schauen was da schief geht, ist das Ergebnis falsch aber die ID richtig muss in der Funktion was falsch sein (Tippfehler?).

Ansonsten fällt mir natürlich als Standardproblem bei Templateänderungen ein, dass du im Eifer des Gefechts das Caching vergessen haben könntest und deinen Cache leeren solltest um die Änderungen zu sehen...

Ich würde dir übrigens aus Performancegründen empfehlen, alle Avatare auf einmal zu holen statt jeden einzeln. Das senden eines Queries ist viel zeitaufwändiger als zu einem Query mehrere Zeilen zu liefern.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
MajorROM
Mitglied
Beiträge: 69
Registriert: 26.02.2009 12:34

Re: Avatar in Suchergebnissen

Beitrag von MajorROM »

War ja mal wieder ein süsser kleiner Fehler :-?

Die Pfadangabe hatte einfach einen Slash zuviel und der Aufruf im Template sollte folgendermassen aussehen:

Code: Alles auswählen

<!-- IF searchresults.POSTER_AVATAR --><img src="download/file.php?avatar={searchresults.POSTER_AVATAR}"><!-- ENDIF -->

Ich würde dir übrigens aus Performancegründen empfehlen, alle Avatare auf einmal zu holen statt jeden einzeln. Das senden eines Queries ist viel zeitaufwändiger als zu einem Query mehrere Zeilen zu liefern.
Ich bin mir nicht sicher, wie lange ich dafür brauchen werde. Ich beherrsche PHP nicht besonders gut und erarbeite mir jedes Detail in Kleinarbeit.
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“