Scroll
Посетителей на сайте
Форумы
Подскажите пожалуйста. вот у меня есть сайт http://island.in.ua/
в правой колонке находится блок "Сейчас на сайте". в этом блоке показывается сколько пользователей онлайн.
Причем пользователей онлайн он считает только зарегистрированных на сайте.
Меня интересует такой вопрос, а как сделать так, что бы выводило значение сколько на сайте гостей в данный момент.
в настройках этого модуля такого нет. смотрите картинку.
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии
Попробуйте этот код вставить в отдельный блок, но только с фильтром PHP
= :timestamp AND s.uid > 0", array(':timestamp' => $interval))->fetchField(); $output=""; $max_users = variable_get('user_block_max_list_count', 10); if ($authenticated_count && $max_users) { $output.="hostname;
}
$ips=array_unique($ips);
foreach ($ips as $ip){
$host=preg_replace('/[^a-zA-Z\.]/', '', gethostbyaddr($ip));
if ($host=="...") $host="Unknown Hostname";
$spider=0;
foreach ($spiders as $spider){
if (strpos($host, $spider)!==false){
$spider=1;
break;
}
}
if ($spider==1){
$sData[]=array('ip'=>$ip, 'host'=>$host);
}else{
$gData[]=array('ip'=>$ip, 'host'=>$host);
}
}
}
if (isset($gData) && count($gData)>0){
$output.="
?>Registered Users
"; $items = db_query_range('SELECT u.uid, u.name, MAX(s.timestamp) AS max_timestamp FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.timestamp >= :interval AND s.uid > 0 GROUP BY u.uid, u.name ORDER BY max_timestamp DESC', 0, $max_users, array(':interval' => $interval))->fetchAll(); $output .= theme('user_list', array('users' => $items)); } $guest_count = db_query("SELECT COUNT(DISTINCT s.hostname) FROM {sessions} s WHERE s.timestamp >= :timestamp", array(':timestamp' => $interval))->fetchField(); $sData=array(); $gData=array(); if ($guest_count && $max_users) { $items = db_query_range('SELECT DISTINCT s.hostname, MAX(s.timestamp) AS max_timestamp FROM {sessions} s WHERE s.timestamp >= :interval ORDER BY max_timestamp DESC', 0, 10000000, array(':interval' => $interval))->fetchAll(); $i=0; for ($i=0;$iGuests
"; $i=0; foreach ($gData as $d){ $output.="".$d['host']."
"; $output.=""; $output.="- ".$d['ip']."
";
$loc=unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$d['ip']));
if ($loc['geoplugin_city'].$loc['geoplugin_region']!=''){
$output.="- ".$loc['geoplugin_city'].", ".$loc['geoplugin_region']."
";
}
if ($loc['geoplugin_countryName']!=''){
$output.="- ".$loc['geoplugin_countryName']."
";
}
$output.="
"; if ($i>$max_users){break;} $i++; } } if (isset($sData) && count($sData)>0){ $output.="Spiders
"; $i=0; foreach ($sData as $d){ $output.="".$d['host']."
"; $output.=""; $output.="- ".$d['ip']."
";
$output.="
"; if ($i>$max_users){break;} $i++; } } return $output; }больше информации можно найти в гугле по этому запросу
http://bit.ly/rVTFgm
Спасибо за ответ. Чтото получилось. Блок выводит список зарегистрированных пользователей онлайн. и список гостей. только вот со списком гостей не все понятно. мне кажется что он не всех отображает а только одного гостя. я себе в контакте седал рекламы своего сайта и следил за переходами по банеру на мой сайт. очень много людей входило но больше чем одного гостя не показала.