Hallo,
ich habe in einer includeten PHP-Datei eine Anweisung wie folgt:
PHP-Code:
global $mybb;
if (empty($mybb->user['avatar'])) {
Hinweistext
}
Ergebnis:
Ist die Spalte "avatar" des Users leer, bekommt er einen Hinweistext, ist sie nicht leer dann keinen Hinweistext.
Das funktioniert in einem Forum fehlerfrei, in einem anderen Forum jedoch nicht.
In beiden Foren ist beim Testuser die Spalte definitiv ohne Inhalt.
Negiere ich
wird es im funktionierenden Forum
invers behandet (=korrekt) und im nichtfunktionierendem Forum bei
allen Usern (=inkorrekt) der Hinweistext angezeigt.
Irgendwie klappt die Auswertung/Unterscheidung in dem einen Forum nicht. *grübel
Wie könnte man diesem Fehlverhalten auf die Schliche kommen?
Vllt. hat da jemand einen Tipp oder Hinweis was ich eventuell nicht beachtet haben könnte.
Danke vorab.
$mybb->user['avatar'] bezieht sich auf das eigene Avatar. Was willst du denn erreichen?
Die Variable für das Avatar ist auch nicht überall einheitlich.
Wenn, dann musst du evtl. dies benutzen:
PHP-Code:
$mybb->settings['useravatar']
oder
oder z.B.
(22.03.2022, 16:26)Schnapsnase schrieb: [ -> ]$mybb->user['avatar'] bezieht sich auf das eigene Avatar.
Es soll sich ja nur auf das eigene Avatar
(Definition = vorhanden oder nicht vorhanden) beziehen.
(22.03.2022, 16:26)Schnapsnase schrieb: [ -> ]Was willst du denn erreichen?
Wie im funktionierenden Beispiel
PHP-Code:
global $mybb;
if (empty($mybb->user['avatar'])) {
Hinweistext
}
bereits aufgezeigt, sollen alle User welche
kein Avatar haben einen Hinweistext erhalten.
Lass doch mal den Avatar-Wert ausgeben, um zu sehen, warum er offenbar nicht leer ist, ab besten vor der IF Abfrage einfügen:
PHP-Code:
var_dump($mybb->user['avatar']);
(22.03.2022, 19:06)Gerti schrieb: [ -> ] (22.03.2022, 16:26)Schnapsnase schrieb: [ -> ]$mybb->user['avatar'] bezieht sich auf das eigene Avatar.
Es soll sich ja nur auf das eigene Avatar (Definition = vorhanden oder nicht vorhanden) beziehen.
Ich verstehe deine Aussage nicht.
$mybb->user['avatar'] ist dein Avatar, wenn du eingeloggt bist.
Falls in diesem Theme das Default-Avatar greift, hast du trotzdem ein Avatar, obwohl das Setting
Code:
$mybb->settings['useravatar']
leer ist.
Also greif doch dieses Setting ab und prüfe es auf "leer". Damit hast du doch das Problem erschlagen.
Dir geht es doch hier aber nicht um den Avatar des eingeloggten Users, sondern um den User-Avatar allgemein?!
Was möchtest du wo darstellen - war auch meine Ursprungsfage?!
(22.03.2022, 19:54)Schnapsnase schrieb: [ -> ]$mybb->user['avatar'] ist dein Avatar, wenn du eingeloggt bist.
das ist auch das angestrebte Ziel. Es soll dem angemeldetem User ein Hinweistext ausgegeben werden.
(22.03.2022, 19:54)Schnapsnase schrieb: [ -> ]Falls in diesem Theme das Default-Avatar greift, hast du trotzdem ein Avatar, obwohl das Setting
Code:
$mybb->settings['useravatar']
leer ist.
In beiden Foren ist in der Tabelle
mybb->settings die Tabelle
useravatar in der Spalte
value mit
images/default_avatar.png definiert.
(22.03.2022, 19:26)doylecc schrieb: [ -> ]PHP-Code:
var_dump($mybb->user['avatar']);
Danke für den Tipp.
Testergebnis:
Ausgabe beim Forum wo es
korrekt funktioniert mit:
eigenem Avatar = Avatar: string(50) "./uploads/avatars/avatar_1.png?dateline=1644476937"
ohne Avatar =
string(0) ""
Ausgabe beim Forum wo es
inkorrekt funktioniert mit:
eigenem Avatar = string(50) "./uploads/avatars/avatar_2.png?dateline="1612525123"
ohne Avatar =
string(25) "images/default_avatar.png"
(warum wird hier eine andere Tabelle/Spalte ausgegeben? Verschiebe ich das default_avartar.png z.B. in den Ordner ./uploads, wird es mir beid er Ausgabe ./uploads/default_avatar.png angezeigt!)
In beiden Foren sind die ACP-Einstellungen hierzu identisch und in der Datenbank die Tabelle/n
mybb->users in der/n Spalte/n "
avatar" definitiv
leer.
Vielleicht hilft das Testergebnis, die Fehlerquelle einzukreisen.
Hallo,
hast du eventuell in dem Forum (bei dem es nicht funktioniert) eine
Funktion ähnlich meines MyBB Default-Avatar-Fix Plugins oder eine JS-Funktion eingebaut, die Usern ohne Avatar temporär den Default-Avatar zuordnet, eingebaut??
@[b]SvePu[/b]
Volltreffer, genau das war des Rätsels Lösung. Irgendwann wurde mal das PlugIn installiert, dass dies die Problemursache ist, wäre ich nie drauf gekommen.
Habe es jetzt deaktiviert und es funktioniert wie gewünscht.
Ganz herzlichen Dank an alle welche sich für die Lösungsfindung zu dem
(letztlich selbst verursachten) Problem eingebracht haben.