MyBB.de Forum

Normale Version: "Wer ist online?" mit AJAX ?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Heyo Smile

So habe gemerkt das diese coole Sache bei MyBB 1.41 nicht mehr funktioniert!

Folgende Codes sind noch noch nicht auf MyBB 1.41 aktualisiert.

Das hab ich im "index" Template stehen:
Code:
<script type="text/javascript">
<!--
function wio_load()
{
new ajax('wio.php', {method: 'get', update: 'wio'});
}
wio_load();
setInterval("wio_load()", 30000);
//-->
</script>

Inhalt von "index_whosonline"
Code:
<tr>
<td class="tcat" colspan="4"><span class="smalltext"><strong>{$lang->whos_online}</strong> [<a href="online.php">{$lang->complete_list}</a>]</span></td>
</tr>


<tr>
<td class="trow1" width="4%" align="center" valign="center"><img src="images/online2.gif" alt="" /></td>


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

Inhalt von "wio.php"
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;
}
?>

Ich komm da nicht klar damit, habe in der "index.php mal nach dem Code geschaut und auch versucht zu übernehmen,
Nur geht das bei mir irgendwie nicht !

Kann mir jemand helfen beim anpassen?

greetz DaStaFlexX

*Edit*
Im AdminCP -> Themes -> global.css -> .codeblock
max-width: 400px; einfügen.
Dann wird dein Design nicht so gesprengt! Wink
Da jetzt andere Javascript-Dateien benutzt werden, muss der Code jetzt so lauten:
Code:
<script type="text/javascript">
<!--
function wio_load()
{
new Ajax.Request('wio.php', {method: 'get', onComplete: function(request) { $('wio').innerHTML = request.responseText; }});
}
wio_load();
setInterval("wio_load()", 30000);
//-->
</script>

Der Code der PHP-Datei muss evtl. auch noch geändert werden, wobei der Code ja aus der index.php stammt und dort noch so ähnlich sein müsste.
Hey Dragon, hattest schönen Urlaub?
Cool biste wieder da. Wink

Jo danke für die Code Änderung, jetzt gehts wieder !
Dazu musste aber wirklich noch etwas an der wio.php Datei geändert werden.
Habe sie direkt mal angehängt.

Danke dir !

mfg DaStaFlexX
Ist das auch möglich mit der Wer ist Online Liste (Vollständigen Liste) der online.php ?
Die online.php lädt automatisch sich jede Minute neu. Da hat AJAX nur wenig Vorteile.
hallo,

im index_template nach {$boardstats}:

PHP-Code:
<script type="text/javascript">
<!--
function 
wio_load()
{
new 
Ajax.Request('wio.php', {method'get'onComplete: function(request) { $('wio').innerHTML request.responseText; }});
}
wio_load();
setInterval("wio_load()"30000);
//-->
</script

wio.php im rootverzeichnis:

PHP-Code:
<?php

define
("IN_MYBB"1);
define("NO_ONLINE"1);

require_once 
"./global.php";

// Load global language phrases
$lang->load("index");

$whosonline '';
if(
$mybb->settings['showwol'] != && $mybb->usergroup['canviewonline'] != 0)
{
    // 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
    "
);

    $forum_viewers = array();
    $membercount 0;
    $onlinemembers '';
    $guestcount 0;
    $anoncount 0;
    $doneusers = array();

    // 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($doneusers[$user['uid']] < $user['time'] || !$doneusers[$user['uid']])
            {
                // 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"10)."\";");
                    $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 ", ";
            ++$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;
    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 $lang->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;
}

?>

index_whosonline:

PHP-Code:
<tr>
<
td class="tcat"><span class="smalltext"><strong>{$lang->whos_online}</strong>{$dvz_lp_list_link}</span></td>
</
tr>
<
tr>
<
td class="trow1"><span class="smalltext"><div id="wio">{$lang->online_note}<br />{$onlinemembers}</div></span></td>
</
tr

ist dies aktuell alles oder sind Änderungen zu tätigen, da dies ja für mybb 1.4 galt.
Diesen Aufwand muss man nicht betreiben, wenn es doch noch einfacher geht.

index_whosonline Template

Mach aus

Code:
<td class="trow1">

dies

Code:
<td class="trow1" id="onlinemembers">

und vor den schliessenden </td> dies einfügen

Code:
<script type="text/javascript">
$(document).ready(function() {
     $("#onlinemembers").load(" #onlinemembers");
   var refreshId = setInterval(function() {
      $("#onlinemembers").load(' #onlinemembers');
   }, 60 * 1000);
   $.ajaxSetup({ cache: false });
});
</script>

Die 60 ist die Zeit in Sekunden.
danke, aber jetzt ist da so ein schwarzer rahmen um die onlineanzeige herum... grübel...

hab dies so gelöst:

<td class="trow1" id="onlinemembers" style="border:none;">
border:0;

ist besser ^^
mir ist aufgefallen, dass dann der außenrahmen von woi weg ist... mmmhhh
Seiten: 1 2 3 4