MyBB.de Forum
"Wer ist online?" mit AJAX ? - 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: "Wer ist online?" mit AJAX ? (/thread-19299.html)

Seiten: Seiten: 1 2 3 4


"Wer ist online?" mit AJAX ? - DaStaFlexX - 01.03.2007

Hi Leude

Hier bei mybbcoder.de habt ihr ne "Wer ist online?" Box,
läuft die mit AJAX ?

Wenn ja, wo gibts sowas ?
Und kann man das auch auf der Startseite unten
bei den Forenstatistiken einbauen ?

bis gli...
greetz DaStaFlexX


RE: "Wer ist online?" mit AJAX ? - StefanT - 02.03.2007

Alle diese Blöcke rechts und links hier im Forum werden per AJAX geladen. Das habe ich selber für dieses Forum programmiert.
Im Prinzip kann man alles per AJAX laden lassen. Der Aufwand ist aber größer wie der Nutzen.


RE: "Wer ist online?" mit AJAX ? - DaStaFlexX - 02.03.2007

Ich finde es extrem Fett was du da gemacht hast ! Wink

Dann könnte man es also auch mit "Wer ist online?" so machen !
...mhm... wie nice Smile

büüüdeee, kann das nicht jemand umsetzten ?

ich habe ka von ajax ! Sad
ich weiss nur das es sau geil ist Wink

bis gli...
greetz DaStaFlexX


RE: "Wer ist online?" mit AJAX ? - Grauer-Magier - 08.03.2007

Hallöchen!

Ich würde das auch gerne wissen!!!
Hab bei mir im Forum auch die "Wer ist Online?"-Liste auf den Index in 'ner Box übertragen, aber die aktualisiert natürlich nicht von selbst, was ich sehr schade finde.

Dragon, teile doch bitte dein Wissen!

LG, GM!


RE: "Wer ist online?" mit AJAX ? - StefanT - 11.03.2007

Hier eine Anleitung mit den Grundfunktionen:
Erstellt die Datei wio.php. Dort schreibt hier den Code rein, der geladen werden soll. Dieser soll mit echo ausgegeben werden.
Macht um den Teil, der aktualisiert werden soll, <div id="wio">TEXT DER SCHON DA IST</div>.
Nun schreibt ihr in ein Template (z.B. index):
Zitat:<script type="text/javascript">
<!--
function wio_load()
{
new ajax('wio.php', {method: 'get', update: 'wio'});
}
wio_load();
setInterval("wio_load()", 60000);
//-->
</script>
Die farbigen Sachen können angepasst werden. Allerdings muss dann alles mir der Farbe angepasst werden. Die orange Zahl gibt an, wie oft geladen wird. (in Tausendstel-Sekunden)


RE: "Wer ist online?" mit AJAX ? - Grauer-Magier - 11.03.2007

Okay .... aber das mit der php-Datei und dem echo versteh ich nicht. Big Grin


RE: "Wer ist online?" mit AJAX ? - StefanT - 11.03.2007

In die Datei muss der Code rein, den du haben willst. In diesem Fall der Code, der die anwesenden Benutzer ausliest:
PHP-Code:
<?php
define
("IN_MYBB"1);
define("NO_ONLINE"1);
require 
"./global.php";
// Get the online users.
    
$timesearch time() - $mybb->settings['wolcutoffmins']*60;
    
$comma '';
    
$query $db->query("
        SELECT s.sid, s.ip, s.uid, s.time, s.location, 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
    "
);
    
$membercount 0;
    
$onlinemembers '';
    
$guestcount 0;
    
$anoncount 0;
    
$doneusers = array();

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

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

                    
// Properly format the username and assign the template.
                    
$user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']);
                    eval(
"\$onlinemembers .= \"".$templates->get("index_whosonline_memberbit"10)."\";");
                    
$comma ", ";
                }
                
// This user has been handled.
                
$doneusers[$user['uid']] = $user['time'];
            }
        }
        elseif(
strstr($user['sid'], "bot=") !== false && $session->bots[$botkey])
        {
            
// The user is a search bot.
            
$onlinemembers .= $comma.format_name($session->bots[$botkey], $session->botgroup);
            
$comma ", ";
            ++
$botcount;
        }
        else
        {
            
// The user is a guest.
            
++$guestcount;
        }
    }
echo 
$onlinemembers;
?>



RE: "Wer ist online?" mit AJAX ? - Grauer-Magier - 11.03.2007

Danke dir!!!

Hat klasse geklappt! Jetzt muß ich nicht mehr die gesamte Seite laden, damit ich weiß, wer Online ist! *freu*

LG, GM!


RE: "Wer ist online?" mit AJAX ? - DaStaFlexX - 19.03.2007

Hi zusammen

Ich habe das eben auch eingebaut.
Nur wird bei mir nichts angezeigt !

Kann ich den unten genannten php-code direkt so übernehmen ?

Und:
Zitat:Macht um den Teil, der aktualisiert werden soll, <div id="wio">TEXT DER SCHON DA IST</div>.
Ist damit der inhalt vom "index_whosonline" Template gemeint ?

Zitat:Nun schreibt ihr in ein Template (z.B. index):
Wo genau soll ich den <script type="text/javascript"> einfügen ?

Wäre nett wenn mir da noch jemand weiterhelfen könnte.

bis gli...
greetz DaStaFlexX


RE: "Wer ist online?" mit AJAX ? - StefanT - 19.03.2007

Du kannst den PHP-Code so übernehmen.

Im Template index_whosonline {$onlinemembers} mit <div id="wio">{$onlinemembers}</div> ersetzen.
Den Script-Code setzt du am besten nach (Template index):
Code:
{$forumstats}
</tbody>
</table>