Hallo, Gast! (Registrieren)

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


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
"Wer ist online?" mit AJAX ?
#31
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
Zitieren
#32
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.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#33
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


Angehängte Dateien
.php   wio.php (Größe: 3,48 KB / Downloads: 20)
Zitieren
#34
Ist das auch möglich mit der Wer ist Online Liste (Vollständigen Liste) der online.php ?
Zitieren
#35
Die online.php lädt automatisch sich jede Minute neu. Da hat AJAX nur wenig Vorteile.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#36
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.
Mit freundlichen Grüßen



Für etwaige Tipps, Vorschläge oder Anleitungen von mir gebe ich keine Gewähr. Die Durchführung erfolgt auf eigene Gefahr!
Zitieren
#37
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.
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#38
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;">
Mit freundlichen Grüßen



Für etwaige Tipps, Vorschläge oder Anleitungen von mir gebe ich keine Gewähr. Die Durchführung erfolgt auf eigene Gefahr!
Zitieren
#39
border:0;

ist besser ^^
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#40
mir ist aufgefallen, dass dann der außenrahmen von woi weg ist... mmmhhh
Mit freundlichen Grüßen



Für etwaige Tipps, Vorschläge oder Anleitungen von mir gebe ich keine Gewähr. Die Durchführung erfolgt auf eigene Gefahr!
Zitieren


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