Доработка модуля "Кто онлайн?" с показом поисковых ботов для 1.10+
http://smages.com/images/om30f.jpg

Для того, чтоб эта вся конструкция работала, необходимо подпилить файл /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 модуль