In der "Wer ist online-Liste" NUR Mods & Admins anzeigen?!

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
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.
Knowhow-Sauger
Mitglied
Beiträge: 656
Registriert: 18.05.2012 07:06

Re: In der "Wer ist online-Liste" NUR Mods & Admins anzeigen

Beitrag von Knowhow-Sauger »

Ja, die Seite ist mir bekannt. Aber dort sind leider auch überall Zahlen angegeben.
Ich möchte ja eben keine Zahlen verwenden, da jeder eine andere Bildschirmauflösung hat.
Ich möchte gerne, dass die rote Box immer unten rechts erscheint, egal welche Bildschirmauflösung jemand hat und egal wie gross oder klein sein Bildschirm ist.
Aber solch eine Funktion gibt es wahrscheinlich nicht.. :o
Forum für Freunde kurzer Hosen: http://www.kurzehosenforum.com
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: In der "Wer ist online-Liste" NUR Mods & Admins anzeigen

Beitrag von Miriam »

Knowhow-Sauger hat geschrieben:...Wisst ihr eigentlich, wie man es so einstellen kann, dass die rote Box IMMER unten rechts am Bildschirmrand platziert ist?...
Du hast es also nicht gelesen, das ist schade.
Deshalb habe ich Dir mal den entspechenden Abschnitt herausgesucht -> Klick. Und so sieht's aus, wenn es umgesetzt wurde: Klack.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Knowhow-Sauger
Mitglied
Beiträge: 656
Registriert: 18.05.2012 07:06

Re: In der "Wer ist online-Liste" NUR Mods & Admins anzeigen

Beitrag von Knowhow-Sauger »

Hallo,

ich habe mal eine Frage:

Momentan ist es ja so, dass, wenn einer aus der Gruppe Moderatoren oder Admins online ist, wird eine rote Grafik angezeigt.
Könnte man es nicht so machen, dass die Moderatoren und Admins einzeln angezeigt werden?

Wenn sagen wir mal Benjamin online ist, wird ein Banner angezeigt.
Ist Lukas online, wird ebenso ein Banner angezeigt..
Natürlich für jeden Staff-user ein eigener Banner...

Müsste man da nicht einfach nur etwas kleines abändern?
Es geht konkret nur um diesen Code-Schnipsel in der includes/functions.php:

Code: Alles auswählen

	$sql = 'SELECT u.user_id, u.username, u.username_clean, u.user_type, u.user_colour, s.session_time, s.session_viewonline
		FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . ' s
		WHERE u.user_id = s.session_user_id
			AND u.group_id IN (4, 5)
			AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) . '
			AND s.session_viewonline = 1
		ORDER BY s.session_viewonline';
	$result = $db->sql_query($sql);
    if ($row = $db->sql_fetchrow($result) AND (($user->data['group_id'] < 4) OR ($user->data['group_id'] > 5)))
            {
                    $template->assign_vars(array(
                            'S_STAFF_ONLINE'    => true,
                    ));
            }
Und da möchte ich gerne, dass da statt der 2 Gruppen (Admins und Mods) die Moderatoren und Admins EINZELN aufgelistet sind.
Geht das? Ist sicher nur eine Kleinigkeit, oder?


Danke :)
Forum für Freunde kurzer Hosen: http://www.kurzehosenforum.com
Knowhow-Sauger
Mitglied
Beiträge: 656
Registriert: 18.05.2012 07:06

Re: In der "Wer ist online-Liste" NUR Mods & Admins anzeigen

Beitrag von Knowhow-Sauger »

Hallo erstmal,

ich habe folgendes Problem:

Ich habe gerade bemerkt, wenn ich online bin, wird der rote Banner angezeigt (ich bin in der Gruppe der Admins!).
Ist aber ein Moderator online, wird der rote Banner komischerweise nicht angezeigt. Sollte er aber eigentlich!

Kann mir jemand helfen?

Es geht um folgenden Code-Schnippsel in der includes/functions.php:
$sql = 'SELECT u.user_id, u.username, u.username_clean, u.user_type, u.user_colour, s.session_time, s.session_viewonline
FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . ' s
WHERE u.user_id = s.session_user_id
AND u.group_id IN (4, 5)
AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) . '
AND s.session_viewonline = 1
ORDER BY s.session_viewonline';
$result = $db->sql_query($sql);
if ($row = $db->sql_fetchrow($result) AND (($user->data['group_id'] < 4) OR ($user->data['group_id'] > 5)))
{
$template->assign_vars(array(
'S_STAFF_ONLINE' => true,
));
}
Moderatoren haben bei mir die ID 4 und Admins die ID 5.

Probem:
Bei Admins wird der rote Banner angezeigt, bei Moderatoren nicht.
Warum?

Danke :)
Forum für Freunde kurzer Hosen: http://www.kurzehosenforum.com
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: In der "Wer ist online-Liste" NUR Mods & Admins anzeigen

Beitrag von Miriam »

Knowhow-Sauger hat geschrieben:Warum?
Weil Deine Moderatoren die Globale-Moderatoren-Gruppe (ID = 5) nicht als Hauptgruppe haben.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: In der "Wer ist online-Liste" NUR Mods & Admins anzeigen

Beitrag von BNa »

Mit der function group_memberships() gibt es dieses Problem nicht.
Diese registriert auch Nicht-Hauptgruppen-Zugehörigkeiten.

http://phpbbmodders.net/board/viewtopic ... 118&t=6533
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: In der "Wer ist online-Liste" NUR Mods & Admins anzeigen

Beitrag von Miriam »

Entweder das (mit ein bißchen Programmieraufwand)...
...oder Du tauschst die Zeile: gegen diese aus:
  • Code: Alles auswählen

    AND u.user_id IN ( SELECT DISTINCT user_id FROM ' . USER_GROUP_TABLE . ' WHERE group_id IN (4, 5) ) 
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: In der "Wer ist online-Liste" NUR Mods & Admins anzeigen

Beitrag von BNa »

Es geht doch nichts über die gute alte manuelle Methode :wink:
Knowhow-Sauger
Mitglied
Beiträge: 656
Registriert: 18.05.2012 07:06

Re: In der "Wer ist online-Liste" NUR Mods & Admins anzeigen

Beitrag von Knowhow-Sauger »

Miriam hat geschrieben:
Knowhow-Sauger hat geschrieben:Warum?
Weil Deine Moderatoren die Globale-Moderatoren-Gruppe (ID = 5) nicht als Hauptgruppe haben.
Das ist aber merkwürdig.
Ich sehe gerade im ACP, dass dort bei allen Moderatoren steht: "Zur Hauptgruppe des Mitglieds machen? NEIN".
Warum aber werden alle meine Moderatoren dann in roter Schrift angezeigt?
Diese rote Farbe gibt es ja nur bei Moderatoren.
Und die wird auch nur dann angezeigt, wenn es die Hauptgruppe ist. Andernfalls erscheint die Schrift in Blau und auch der Moderatoren-Rang wird dann nicht mehr öffentlich angezeigt.
Forum für Freunde kurzer Hosen: http://www.kurzehosenforum.com
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: In der "Wer ist online-Liste" NUR Mods & Admins anzeigen

Beitrag von Miriam »

Sehr funktionell. :roll:

Aber gut, dann machen wir es nach den phpBB3 Coding Guidelines und unter Einbeziehung dieser hilfreichen Funktion ->

finde (vor den nochmaligen Anpassungen)
  • Code: Alles auswählen

    $sql = 'SELECT u.user_id, u.username, u.username_clean, u.user_type, u.user_colour, s.session_time, s.session_viewonline
        FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . ' s
            WHERE u.user_id = s.session_user_id
            AND u.group_id IN (4, 5)
            AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) . '
            AND s.session_viewonline = 1
            ORDER BY s.session_viewonline'; 
und tausche aus gegen:
  • Code: Alles auswählen

    // Check what group a user is in
    if ( !function_exists('group_memberships') )
    {
        include($phpbb_root_path . 'includes/functions_user.'.$phpEx);
    }
    
    $groups = group_memberships(array(4, 5), false, false);
    foreach ($groups as $grouprec)
    {
        $user_ids_groups[] = $grouprec['user_id'];
    }
    
    $sql_array = array(
        'SELECT'    => 'u.user_id, u.username, u.username_clean, u.user_type, u.user_colour, s.session_time, s.session_viewonline',
    
        'FROM'        => array(
            USERS_TABLE        => 'u',
            SESSIONS_TABLE    => 's'
        ),
    
        'WHERE'        => 'u.user_id = s.session_user_id
            AND ' . $db->sql_in_set('u.user_id', $user_ids_groups) . '
            AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) . '
            AND s.session_viewonline =1',
    );
    
    $sql = $db->sql_build_query('SELECT', $sql_array); 
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“