Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste
"Wer ist online?" mit AJAX ?
#11
ok ich habe alles so gemacht wie beschrieben !

Nur werden die Benutzer nicht angezeigt.
   

Mein "index" Template sieht so aus:
Code:
...
{$forumstats}
{$index_events}

</tbody>
</table>

<script type="text/javascript">
<!--
function wio_load()
{
new ajax('wio.php', {method: 'get', update: 'wio'});
}
wio_load();
setInterval("wio_load()", 60000);
//-->
</script>
...

Und Template "index_whosonline" sieht so aus:
Code:
<tr>
<td class="tcat" colspan="4"><strong>{$lang->whos_online}</strong> [<a href="online.php">{$lang->complete_list}</a>]</td>
</tr>
<tr>
<td class="trow1" width="4%" align="center" valign="center"><img src="images/online2.gif" alt="" /></td>

<td class="trow1" height="20" colspan="3"><span class="smalltext">{$lang->online_note}<br /><div id="wio">{$onlinemembers}</div></span>

</td>

</tr>

Da stimmt ja alles ! ...oder ?

bis gli...
greetz DaStaFlexX

*edit*
Komisch, ab und zu werden die namen angezeigt !

nochmals ein pic:
   

Da steht doch "aktiv in den letzten 15 Minuten " !
Hat das was mit dem zutun ?

mhm !
Zitieren
#12
Hi!

Hmm, also ich hab mir eine extrabox erstellt für die Anzeige der Online-User. Und da wird die Useranzeige in der eingestellten Zeit aktualisiert. ... vielleicht funktioniert die normale "Wer ist Online?"-Box da unten etwas anders.
.. weiß ich nicht genau.
Oder die Kombi mit der Grafik funzt so nicht...
... oder du mußt das Script auch in die index_whosonline 'reinnehmen...
Zitieren
#13
Da musst du das Template index_whosonline so anpassen:
Code:
<tr>
<td class="tcat" colspan="4"><strong>{$lang->whos_online}</strong> [<a href="online.php">{$lang->complete_list}</a>]</td>
</tr>
<tr>
<td class="trow1" width="4%" align="center" valign="center"><img src="images/online2.gif" alt="" /></td>

<td class="trow1" height="20" colspan="3"><span class="smalltext"><div id="wio">{$lang->online_note}<br />{$onlinemembers}</div></span>

</td>

</tr>
PHP-Datei:
PHP-Code:
<?php
define
("IN_MYBB"1);
define("NO_ONLINE"1);
require 
"./global.php";
$lang->load("index");
$whosonline '';
if(
$mybb->settings['showwol'] != "no" && $mybb->usergroup['canviewonline'] != "no")
{
    
// 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;
        }
    }

    
// Build the who's online bit on the index page.
    
$onlinecount $membercount $guestcount;
    if(
$onlinecount != 1)
    {
        
$onlinebit $lang->online_online_plural;
    }
    else
    {
        
$onlinebit $lang->online_online_singular;
    }
    if(
$membercount != 1)
    {
        
$memberbit $lang->online_member_plural;
    }
    else
    {
        
$memberbit $lang->online_member_singular;
    }
    if(
$anoncount != 1)
    {
        
$anonbit $lang->online_anon_plural;
    }
    else
    {
        
$anonbit $lang->online_anon_singular;
    }
    if(
$guestcount != 1)
    {
        
$guestbit $lang->online_guest_plural;
    }
    else
    {
        
$guestbit $lang->online_guest_singular;
    }
    
$lang->online_note sprintf($lang->online_notemy_number_format($onlinecount), $onlinebit$mybb->settings['wolcutoffmins'], my_number_format($membercount), $memberbitmy_number_format($anoncount), $anonbitmy_number_format($guestcount), $guestbit);
    echo 
$lang->online_note."<br />".$onlinemembers;
}
?>
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#14
Ok, ich habe das mal ausprobiert.
Aber leider ohne erfolg !

Das javascript muss im "index" Template bleiben !
oder ?

Irgendwie aktualisiert das teil nicht (richtig) !
Hat das was mit den 60000 Tausendstel zu tun ?
Das sind ja 60 Sekunden ! oder ?

So siehts aus auf der startseite:
   
Komisch ist, ich bin auch online aber wird nicht angezeigt !


Bei klick auf "[Vollständige Liste]" siehts dann so aus:
   
Hier wird mein name angezeigt, aber dafür die anderen nicht !

Also irgendwo ist noch ein fehler begraben !

Wäre sehr dankbar wenn mir jemand sagen könnte woran das liegt.

bis gli...
greetz DaStaFlexX
Zitieren
#15
Echt gut..

ThX
Zitieren
#16
HI, Dragon!

Ich hab nun auch noch die Ajax Shoutbox eingebaut - und es scheint, dass sich da etwas überschneidet. Obwohl User nicht inder Liste aufgeführt sind, schreiben sie auf einmal und auf meine Frage hin, sagen sie mir, dass sie nicht Offline sind, sondern komischerweise nur nicht mehr in der "Wer ist Online?"-Liste angezeigt werden.
Kannst du dir erklären wie das zu stande kommen könnte?

LG, GM!
Zitieren
#17
Ich nehme an, dass die Liste bei der Shoutbox nicht aktualisert wird. Das hat nichts mit meinem Code zu tun. An deiner Stelle, würde ich das auch so lassen.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#18
HI, Dargon!

Doch die Liste aktualisiert, nur seit dem Einbau der Shoutbox verschwinden die User ... und sind dabei nicht ausgeloggt, und schreiben sogar in der Shoutbox, aber in der Liste und per online.php sind sie nicht zu sehen.

So lassen? Was? Den Ajax-Code? Klar, der hat ja bisher wunderbar funktioniert. Ich würd nur gern wissen ob es da eine evt. Überschneidung gibt, die man irgendwie beheben könnte...

LG, GM!
Zitieren
#19
Du hast mich nicht ganz verstanden. Nach den 15min werden User ausgeloggt. Die Shoutbox aktualisiert die Zeit nicht. Nach 15min wird man als ausgeloggt angezeigt, auch wenn man in der Shoutbox schreibt.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#20
Nein, du hast mich nun falsch verstanden.
Die User verschwinden, obwohl sie sich nicht ausgeloggt haben.
Ich vermute das die Aktualisierung von WiO-Box, Übersicht und der Ajax-Shoutbox sich gegenseitig nicht verträgt. Nachdem ich die Ajax-Shoutbox wieder ausbaute funktionierte die WiO-Box wieder und zeigt alle an entwerder bis sie sich ausloggten oder bis zu den 15 Minuten.
Mit der Ajax-Shoutbox verschwanden, oder wurden ausgeblendet, die User (in einer Zeitspanne von 20sec bis 2 Minuten) und waren aber noch eingeloggt, tauchten aber auch in der online.php auf. ... das fand ich dann schon merkwürdig.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Weiteres Feld in "Wer ist online" anzeigen lassen NewYorkDiaries 0 1.080 01.03.2019, 10:33
Letzter Beitrag: NewYorkDiaries
  Wer ist Online - Darstellung Heisenberg 7 2.884 02.01.2017, 22:55
Letzter Beitrag: Heisenberg
  Wer ist online auf eigens erstellten seiten Bodoboo 2 1.609 25.09.2015, 14:01
Letzter Beitrag: Bodoboo
  Wer ist online - Geistmodus hkkp 4 2.276 16.05.2014, 08:35
Letzter Beitrag: hkkp
  Wer ist online und wer war online stimmen nicht überein Chacarron 6 4.107 11.10.2011, 23:20
Letzter Beitrag: Chacarron