MyBB.de Forum
"User online" im Header Bereich - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: "User online" im Header Bereich (/thread-29339.html)

Seiten: Seiten: 1 2


"User online" im Header Bereich - Line.Dev - 15.03.2014

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


RE: "User online" im Header Bereich - Jockl - 15.03.2014

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.


RE: "User online" im Header Bereich - Line.Dev - 15.03.2014

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


RE: "User online" im Header Bereich - Jockl - 15.03.2014

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.


RE: "User online" im Header Bereich - Line.Dev - 15.03.2014

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!


RE: "User online" im Header Bereich - Jockl - 15.03.2014

lade mal Deine global.php hier hoch...


RE: "User online" im Header Bereich - Line.Dev - 15.03.2014

Oh, aber sicher doch:

.php   global.php (Größe: 24,66 KB / Downloads: 1)


RE: "User online" im Header Bereich - Jockl - 15.03.2014

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.


RE: "User online" im Header Bereich - Line.Dev - 15.03.2014

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)


RE: "User online" im Header Bereich - Jockl - 15.03.2014

Ich hatte meinen letzten Beitrag korrigiert.