Доработка модуля "Кто онлайн?" с показом поисковых ботов для 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 модуль