plugins\whosonline\whosonline.input.php
<?php
/* ====================
[BEGIN_COT_EXT]
Hooks=input
Order=10
[END_COT_EXT]
==================== */
/**
* Who's online (part 1)
*
* @package WhosOnline
* @copyright (c) Cotonti Team
* @license https://github.com/Cotonti/Cotonti/blob/master/License.txt
*/
defined('COT_CODE') or die('Wrong URL');
require_once cot_incfile('whosonline', 'plug');
if ($usr['id'] > 0)
{
$sql = $db->query("SELECT * FROM $db_online WHERE online_userid=".$usr['id']);
if ($sql->rowCount() == 1)
{
$online_row = $sql->fetch();
$online_count = 1;
$sys['online_location'] = $online_row['online_location'];
$sys['online_subloc'] = $online_row['online_subloc'];
}
else
{
$not_counted_usr = 1;
}
$sql->closeCursor();
}
elseif(!$cfg['plugin']['whosonline']['disable_guests'])
{
$sql = $db->query("SELECT * FROM $db_online WHERE online_ip='".$usr['ip']."' AND online_userid < 0 LIMIT 1");
if ($sql->rowCount() > 0)
{
$online_row = $sql->fetch();
$sys['online_location'] = $online_row['online_location'];
$sys['online_subloc'] = $online_row['online_subloc'];
}
else
{
$not_counted_vis = 1;
}
$sql->closeCursor();
}
$cache_type = $cache->mem;
if ($cache && $cache_type && $cache_type->exists('whosonline', 'system'))
{
$whosonline_data = $cache_type->get('whosonline', 'system');
$sys['whosonline_vis_count'] = $whosonline_data['vis_count'];
$sys['whosonline_reg_count'] = $whosonline_data['reg_count'];
$out['whosonline_reg_list'] = $whosonline_data['reg_list'];
$cot_usersonline = $whosonline_data['user_list'];
unset($whosonline_data);
}
else
{
$online_timedout = $sys['now'] - $cfg['timedout'];
$db->delete($db_online, "online_lastseen < $online_timedout");
if(!$cfg['plugin']['whosonline']['disable_guests'])
$sys['whosonline_vis_count'] = $db->query("SELECT COUNT(*) FROM $db_online WHERE online_name='v'")->fetchColumn() + $not_counted_vis;
$sql_o = $db->query("SELECT DISTINCT o.online_name, o.online_userid FROM $db_online o WHERE o.online_name != 'v' ORDER BY online_name ASC");
$sys['whosonline_reg_count'] = $sql_o->rowCount() + $not_counted_usr;
$ii_o = 0;
$cot_usersonline = array();
while ($row_o = $sql_o->fetch())
{
$out['whosonline_reg_list'] .= ($ii_o > 0) ? ', ' : '';
$out['whosonline_reg_list'] .= cot_build_user($row_o['online_userid'], htmlspecialchars($row_o['online_name']));
$cot_usersonline[] = $row_o['online_userid'];
$ii_o++;
}
$sql_o->closeCursor();
if ($not_counted_usr) {
$out['whosonline_reg_list'] .= (!empty($out['whosonline_reg_list']) ? ', ' : '').cot_build_user($usr['id'], htmlspecialchars($usr['name']));
$cot_usersonline[] = $usr['id'];
}
unset($ii_o, $sql_o, $row_o, $not_counted_usr, $not_counted_vis);
if ($cache && $cache_type)
{
$whosonline_data = array(
'vis_count' => $sys['whosonline_vis_count'],
'reg_count' => $sys['whosonline_reg_count'],
'reg_list' => $out['whosonline_reg_list'],
'user_list' => $cot_usersonline
);
$cache_type->store('whosonline', $whosonline_data, 'system', 30);
}
}