RE: "Wer ist online?" mit AJAX ? - DaStaFlexX - 04.09.2008
Heyo 
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", 1, 0)."\";"); $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_note, my_number_format($onlinecount), $onlinebit, $mybb->settings['wolcutoffmins'], my_number_format($membercount), $memberbit, my_number_format($anoncount), $anonbit, my_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!
RE: "Wer ist online?" mit AJAX ? - StefanT - 06.09.2008
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.
RE: "Wer ist online?" mit AJAX ? - DaStaFlexX - 07.09.2008
Hey Dragon, hattest schönen Urlaub?
Cool biste wieder da. 
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
RE: "Wer ist online?" mit AJAX ? - problemkind - 25.03.2009
Ist das auch möglich mit der Wer ist Online Liste (Vollständigen Liste) der online.php ?
RE: "Wer ist online?" mit AJAX ? - StefanT - 25.03.2009
Die online.php lädt automatisch sich jede Minute neu. Da hat AJAX nur wenig Vorteile.
RE: "Wer ist online?" mit AJAX ? - hkkp - 10.02.2017
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'] != 0 && $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'] != 1 || $mybb->usergroup['canviewwolinvis'] == 1 || $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 = ", "; } // 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_note, my_number_format($onlinecount), $onlinebit, $mybb->settings['wolcutoffmins'], my_number_format($membercount), $memberbit, my_number_format($anoncount), $anonbit, my_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.
RE: "Wer ist online?" mit AJAX ? - MrBrechreiz - 10.02.2017
Diesen Aufwand muss man nicht betreiben, wenn es doch noch einfacher geht.
index_whosonline Template
Mach aus
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.
RE: "Wer ist online?" mit AJAX ? - hkkp - 10.02.2017
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;">
RE: "Wer ist online?" mit AJAX ? - MrBrechreiz - 10.02.2017
border:0;
ist besser ^^
RE: "Wer ist online?" mit AJAX ? - hkkp - 10.02.2017
mir ist aufgefallen, dass dann der außenrahmen von woi weg ist... mmmhhh
|