Seite 1 von 1

Moderatorenstatus ermitteln

Verfasst: 18.01.2010 10:27
von LuLa
Hallo,

wie kann man bei phpBB3 den Moderatorenstatus ermitteln?

Bei phpBB2 war das immer:

Code: Alles auswählen

if ($userdata['user_level'] == MOD)
Und bei phpBB3? Vielleicht ersatzweise mit

Code: Alles auswählen

if ($auth->acl_get('m_lock', $forum_id))
? Oder gibt's da was anderes?


LG, LuLa

Re: Moderatorenstatus ermitteln

Verfasst: 18.01.2010 10:31
von Balint
Hallo,

siehe hier: http://wiki.phpbb.com/Moderator_permissions unter "Moderator Only Variables and Switches".


Viele Grüße,
Bálint

Re: Moderatorenstatus ermitteln

Verfasst: 18.01.2010 10:43
von LuLa
Das ist genau was ich gesucht habe. Danke, Bálint!

Re: Moderatorenstatus ermitteln

Verfasst: 18.01.2010 20:52
von Pyramide
Ich würde dir nicht empfehlen, einfach global auf "ist ein Moderator" zu prüfen. Je nach dem, was für eine Funktion du erstellen willst, ist es sinnvoll, entweder die passendste der bereits vorhandenen Berechtigungen zu nutzen (z.B. m_edit, wenn irgendwas bearbeitet werden soll) oder sogar eine eigene Berechtigung neu anzulegen (siehe Adding a permission). Damit hast du hinterher die größtmögliche Flexibilität, wenn z.B. eine zusätzliche Benutzergruppe das Recht bekommen soll oder es einem Teil der Moderatoren entzogen werden soll.

Re: Moderatorenstatus ermitteln

Verfasst: 02.03.2011 12:52
von LuLa
Hallo,
ich habe mal eine Frage: das oben Gesagte gilt ja nur für die Ermittlung des Moderatorenstatus beim aktuellen Benutzer (der das Script aufruft).

Wie aber ermittelt man den Moderatorenstatus für einen anderen Benutzer, z. B. bei $row['user_id']?

LG
LuLa

Re: Moderatorenstatus ermitteln

Verfasst: 03.03.2011 18:11
von LuLa
Habe jetzt selber rumgefummelt, funktioniert prächtig:

Code: Alles auswählen

$sql2 = 'SELECT COUNT(user_id) AS num_ids
	FROM ' . MODERATOR_CACHE_TABLE . "
	WHERE user_id = " . $row['user_id'];
$result2 = $db->sql_query($sql2);
$total_ids = (int) $db->sql_fetchfield('num_ids');
$db->sql_freeresult($result2);

if ( ($total_ids > 0) AND ...