Доработка модуля "Кто онлайн?" с показом поисковых ботов для 1.10+
Для того, чтоб эта вся конструкция работала, необходимо подпилить файл /core/cms.php (только в начале не забудьте сделать бэкап!!! На всякий случай) ).
Находим в файле cms.php:
Код:
//Проверяем, пользователь это или поисковый бот
$crawler = false;
foreach($bots as $bot=>$uagent){ if (mb_strpos($useragent, $uagent)) { $crawler = true; break; } }
//Если не бот, вставляем/обновляем запись в "кто онлайн"
if (!$crawler){
// При аякс запросах не к чему записывать url
$page_sql = (@$_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') ? '' : ", viewurl = '$page'";
$inDB->query("INSERT IGNORE INTO cms_online (ip, sess_id) VALUES ('$ip', '$sess_id') ON DUPLICATE KEY UPDATE user_id = '$user_id', agent = '$useragent' {$page_sql}");
}И заменяем на это:
Код:
$sql = "INSERT INTO cms_online (ip, sess_id, lastdate, user_id, agent, viewurl) VALUES ('$ip', '$sess_id', NOW(), '$user_id', '$useragent', '$page')";
$inDB->query($sql) ;
if (!$inDB->num_rows($result)){
$sql = "INSERT INTO cms_online (ip, sess_id, lastdate, user_id, agent, viewurl) VALUES ('$ip', '$sess_id', NOW(), '$user_id', '$useragent', '$page')";
$inDB->query($sql) ;
} else {
//Если пользователь уже онлайн, обновляем время
$sql = "UPDATE cms_online
SET lastdate = NOW(),
user_id = '$user_id',
viewurl = '$page'
WHERE (sess_id = '$sess_id' AND ip = '$ip')";
$inDB->query($sql) ;
}скачиваем модуль
и распаковываем в корень сайта.
Теги: ботов instantcms модуль

