Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
"User online" im Header Bereich
#1
Hallo liebe Community,

leider konnte ich kein entsprechendes Plugin finden, also wende ich mich an euch!

Ich möchte gerne, dass im Header angezeigt wird, wie viele User gerade Online sind, also die Summe aus momentan aktiven Mitglieder + Gästen.
Das Ganze soll dann ungefähr so aussehen als Beispiel: User online: 108
Ein weiteres Beispiel wäre hier: http://www.xda-developers.com
Die haben sowas auch in ihrem Header.

Ich hoffe dass es da irgendwelche Möglichkeiten gibt das umzusetzen.
Hier mein Board: http://www.cyanogenmod-forum.de

Bei weiteren Fragen stehe ich natürlich gerne zur Verfügung. Smile
Cheers,
Benni
Zitieren
#2
Du müsstest vermutlich den Code ab dieser Zeile in der global.php verfügbar machen, wenn Du die Variable $onlinecount im header zeigen möchtest.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#3
Hi Jockl,

danke für deine Antwort!
Ich denke mal dass du diese Frage hasst, aber:
Wie mache ich das?
Bzw. was genau muss ich machen?

Beste Grüße
Zitieren
#4
Ist zwar alles andere als optimiert, aber probier es mal so:

Suche im Template header die Zeilen
Code:
<div class="menu">
<ul>
und setze darunter folgende Zeile ein
Code:
<li style="float:left;">User online: {$onlinecount}</li>
Dann gehe in die global.php und suche die Zeile
PHP-Code:
eval("\$header = \"".$templates->get("header")."\";"); 
setze davor die Zeile
PHP-Code:
getonlineusers(); 
ein. Ganz am Ende der global.php setzt Du anschließend vor dem "?>" folgende Zeilen ein
PHP-Code:
function getonlineusers(){
  global 
$mybb$db$cache$onlinecount;
    
  
// Get the online users.
    
$timesearch TIME_NOW $mybb->settings['wolcutoff'];
    
$comma '';
    
$query $db->query("
        SELECT s.sid, s.ip, s.uid, s.time, s.location, s.location1, u.username, u.invisible, u.usergroup, u.displaygroup
        FROM "
.TABLE_PREFIX."sessions s
        LEFT JOIN "
.TABLE_PREFIX."users u ON (s.uid=u.uid)
        WHERE s.time>'
$timesearch'
        ORDER BY u.username ASC, s.time DESC
    "
);
    
$onlinemembers '';
    
$forum_viewers $doneusers = array();
    
$botcount $membercount $anoncount $guestcount 0;

    
// Fetch spiders
    
$spiders $cache->read("spiders");

    
// Loop through all users.
    
while($user $db->fetch_array($query))
    {
        
// Create a key to test if this user is a search bot.
        
$botkey my_strtolower(str_replace("bot="''$user['sid']));

        
// Decide what type of user we are dealing with.
        
if($user['uid'] > 0)
        {
            
// The user is registered.
            
if(empty($doneusers[$user['uid']]) || $doneusers[$user['uid']] < $user['time'])
            {
                
// If the user is logged in anonymously, update the count for that.
                
if($user['invisible'] == 1)
                {
                    ++
$anoncount;
                }
                ++
$membercount;
                if(
$user['invisible'] != || $mybb->usergroup['canviewwolinvis'] == || $user['uid'] == $mybb->user['uid'])
                {
                    
// If this usergroup can see anonymously logged-in users, mark them.
                    
if($user['invisible'] == 1)
                    {
                        
$invisiblemark "*";
                    }
                    else
                    {
                        
$invisiblemark '';
                    }

                    
// Properly format the username and assign the template.
                    
$user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']);
                    
$user['profilelink'] = build_profile_link($user['username'], $user['uid']);
                    
//eval("\$onlinemembers .= \"".$templates->get("index_whosonline_memberbit", 1, 0)."\";");
                    
$comma $lang->comma;
                }
                
// This user has been handled.
                
$doneusers[$user['uid']] = $user['time'];
            }
        }
        elseif(
my_strpos($user['sid'], "bot=") !== false && $spiders[$botkey])
        {
            
// The user is a search bot.
            
$onlinemembers .= $comma.format_name($spiders[$botkey]['name'], $spiders[$botkey]['usergroup']);
            
$comma $lang->comma;
            ++
$botcount;
        }
        else
        {
            
// The user is a guest.
            
++$guestcount;
        }

        if(
$user['location1'])
        {
            
$forum_viewers[$user['location1']]++;
        }
    }

    
// Build the who's online bit on the index page.
    
$onlinecount $membercount $guestcount $botcount;

Wenn Du die Bots nicht mit zählen möchtest, dann in der letzten einfach das "+ $botcount" weg.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#5
Habe alles wie beschrieben gemacht, aber wenn ich die gloal.php dann hochlade kommt folgende Fehlermeldung:

Zitat:Fatal error: Call to a member function get() on a non-object in /www/htdocs/w00c16e4/cyanogenmod-forum/global.php on line 782

P.S. Danke für deine tolle Hilfe!
Zitieren
#6
lade mal Deine global.php hier hoch...
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#7
Oh, aber sicher doch:

.php   global.php (Größe: 24,66 KB / Downloads: 1)
Zitieren
#8
Sorry, mein Fehler.
PHP-Code:
getonlineusers(); 
ist vor
PHP-Code:
eval("\$header = \"".$templates->get("header")."\";"); 
einzusetzen.
Ansonsten sieht der Code OK aus.

Habe das oben korrigiert.

Nachtrag: lösche die Zeile
PHP-Code:
eval("\$onlinemembers .= \"".$templates->get("index_whosonline_memberbit"10)."\";"); 
in der Funktion getonlineusers(), dann kommt der von Dir genannte Fehler nicht mehr.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#9
Wieder der gleiche Fehler:

Zitat:Fatal error: Call to a member function get() on a non-object in /www/htdocs/w00c16e4/cyanogenmod-forum/global.php on line 783

Und nochmal die aktuelle global.php:


.php   global.php (Größe: 24,66 KB / Downloads: 0)
Zitieren
#10
Ich hatte meinen letzten Beitrag korrigiert.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren