Du warst schneller Thorsten.
Daher nur ein kleiner Zusatz:
Chris, beim Abarbeiten der Bedingung eines
if
Blocks, geht der Interpreter nach strikten Regeln vor und dabei ist die Rangfolge der Operatoren wichtig. Diese Rangfolge musst du als Coder zwingend kennen, weil du sonst eventuell Code schreibst, der nicht das macht was du willst. Darum gehts dann auch bei Thorstens Link. Wenn du von dieser strikten Rangfolge abweichen musst, dann musst du auch zwingend, wie Thorsten schrieb, Klammern nutzen.
Das nur am Rande, für deine endgültige Abfrage ist das nicht mehr relevant, weil die zusätzliche Abfrage auf ANONYMOUS in dem Fall ohnehin sinnfrei ist, wie Bruno bereits erwähnte.
Bau mal an der Stelle wo du diese Abfrage brauchst folgende Debug Anzeige ein, am besten
vor deiner Abfrage, je nachdem wie weit du da schon bist.
Code: Alles auswählen
echo '<pre style="font-size: medium; background-color: powderblue; color: black;">';
echo 'user_type: ' . $this->user->data['user_type'] . ' (' . (['USER_NORMAL', 'USER_INACTIVE', 'USER_IGNORE', 'USER_FOUNDER'][$this->user->data['user_type']] ?? 'UNDEFINED') . ')<br>';
echo 'user_id : ' . $this->user->data['user_id'] . '<br>';
echo '</b></pre>';
Dann ruf dein TB auf als Gast, als Bot, als Benutzer und als Gründer und beobachte in der hellblauen Box oben wie phpBB jeweils darauf reagiert. Ich denke dann müsste es klar werden.
Der Vorschlag von Mike ist am präzisesten. Speziell für deinen Fall würde aber auch schon Udos Vorschlag reichen, weil in dem Kontext wo du das brauchst, inaktive Benutzer eher keine Rolle spielen. Wenn ein inaktiver Benutzer sich anmelden will, wird das ohnehin unterbunden und ich schätze mal, du musst keine inaktiven Benutzer behandeln.