3function b_user_online_show()
5 global $xoopsUser, $xoopsModule;
6 $online_handler =& xoops_gethandler(
'online');
7 mt_srand(round(microtime(
true)*1_000_000));
9 if (random_int(1, 100) < 11) {
10 $online_handler->gc(300);
12 if (is_object($xoopsUser)) {
13 $uid = $xoopsUser->getVar(
'uid');
14 $uname = $xoopsUser->getVar(
'uname');
20 if (is_object($xoopsModule)) {
21 $online_handler->write($uid, $uname, time(), $xoopsModule->get(
'mid'), $_SERVER[
'REMOTE_ADDR']);
26 if (
false === strpos(xoops_getenv(
'REQUEST_URI'),
'misc.php')) {
27 $online_handler->write($uid, $uname, time(), 0, $_SERVER[
'REMOTE_ADDR']);
30 $onlines =& $online_handler->getAll();
31 if (
false !== $onlines) {
32 $total = is_countable($onlines) ? count($onlines) : 0;
37 foreach ($onlines as $i => $iValue) {
38 if ($iValue[
'online_uid'] > 0) {
39 $member[
'uid'] = $onlines[$i][
'online_uid'];
40 $member[
'uname'] = $onlines[$i][
'online_uname'];
41 $member_list[] = $member;
46 $block[
'online_total'] = sprintf(_MB_USER_ONLINEPHRASE, $total);
47 if (is_object($xoopsModule)) {
48 $mytotal = $online_handler->getCount(
new Criteria(
'online_module', $xoopsModule->getVar(
'mid')));
49 $block[
'online_total'] .=
' - '.sprintf(_MB_USER_ONLINEPHRASEX, $mytotal, $xoopsModule->getVar(
'name')).
'.';
52 $block[
'online_members'] = $total - $guests;
53 $block[
'online_member_list'] = $member_list;
54 $block[
'online_guests'] = $guests;