[РЕШЕНО] "Кто онлайн? с показом поисковых ботов для 1.10+
-->
-->
  • 8 февраля 2018Стало известно, сколько заработал Путин за 6 лет
  • 8 февраля 2018Кудрин рассказал о повышении пенсионного возраста
  • 2 января 2018Как варить фасоль быстро
  • 2 января 2018Почему Навальный не может баллотироваться в Президенты?
  • 31 декабря 2017Путин в новогоднем поздравлении пожелал россиянам успехов и благополучия
  • 21 марта 2016ПЕТИЦИЯ ЗА ПЕРЕНОС СТОЛИЦЫ КУЗБАССА В НОВОКУЗНЕЦК НАБИРАЕТ ОБОРОТЫ
  • 15 марта 2016Кузбассовцев зовут бороться с наркотиками
Стало известно, сколько заработал Путин за 6 лет 8 февраля 2018 | 0 комментариев
Стало известно, сколько заработал Путин за 6 лет
   Президент России Владимир Путин за последние 6 лет заработал более 38,5 млн рублей. Такие данные появились в декларации на сайте Центральной избирательной комиссии.
Подробнее
Кудрин рассказал о повышении пенсионного возраста 8 февраля 2018 | 0 комментариев
Кудрин рассказал о повышении пенсионного возраста
   Экс-министр финансов, председатель совета Центра стратегических разработок Алексей Кудрин рассказал, что повышение пенсионного возраста для россиян неизбежно. Кудрин считает, что для развития...
Подробнее
Как варить фасоль быстро 2 января 2018 | 0 комментариев
Как варить фасоль быстро
1.          Залейте  фасоль  очень холодной водой и поставьте на средний огонь. Не накрывайте кастрюлю крышкой, иначе она приобретет  темный  и...
Подробнее
Почему Навальный не может баллотироваться в Президенты? 2 января 2018 | 0 комментариев
Почему Навальный не может баллотироваться в Президенты?
 Добрый день уважаемые друзья! Мне недавно задали вопрос, почему Навальный не может баллотироваться в Президенты? Честно говоря я тоже слышал об этом, но не вникал. Согласитесь, при его...
Подробнее
Путин в новогоднем поздравлении пожелал россиянам успехов и благополучия 31 декабря 2017 | 0 комментариев
Путин в новогоднем поздравлении пожелал россиянам успехов и благополучия
  Президент России Владимир Путин в новогоднем поздравлении пожелал россиянам успехов и благополучия, а также перемен к лучшему в каждой семье, поскольку Новый...
Подробнее
ПЕТИЦИЯ ЗА ПЕРЕНОС СТОЛИЦЫ КУЗБАССА В НОВОКУЗНЕЦК НАБИРАЕТ ОБОРОТЫ 21 марта 2016 | 0 комментариев
ПЕТИЦИЯ ЗА ПЕРЕНОС СТОЛИЦЫ КУЗБАССА В НОВОКУЗНЕЦК НАБИРАЕТ ОБОРОТЫ
  В конце минувшей недели на сайте OnlinePetition  появилась петиция, обращённая к президенту Владимиру Путину , с просьбой о переносе столицы Кузбасса из Кемерова в Новокузнецк.
Подробнее
Кузбассовцев зовут бороться с наркотиками 15 марта 2016 | 0 комментариев
Кузбассовцев зовут бороться с наркотиками
  В регионе с 14 по 25 марта проходит антинаркотическая акция "Сообщи, где торгуют смертью".
Подробнее
Новости форума
8 декабря 2022, на форуме: «Скрипты разное»
Василий начинает тему:
реклама 4

[РЕШЕНО] "Кто онлайн? с показом поисковых ботов для 1.10+

"Кто онлайн? с показом поисковых ботов для 1.10+
#1
Администратор Вип участник
Председатель
Аттестат псевдонима Формальный аттестат Начальный аттестат
Сообщений: 133
Новокузнецк
7 дней назад


"Кто онлайн?" в версии 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) ;
}

Потом скачиваем модуль Ниже файл и распаковываем в корень сайта.

И все!
Проверено на 1.10, 1.10.1, 1.10.2.



Спсибо автору - [Ссылки скрыты от гостей Зарегистрируйтесь.]Добавлено спустя 5 минутДля работы в версии 1.10.3 нужно проделать следующие манипуляции.

1. В файле cms.php находим функцию:

Код PHP:
  1. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. /*
  3.   * Очищает очередь сообщений сессии
  4.   */ений сессии
  5. */
  6. public static function clearSessionMessages(){

2. И после нее добавляем функцию onlineStats():


Код PHP:
  1. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. /**
  3.   * Обновляет статистику посещений сайта
  4.   */сещений сайта
  5. */
  6. public function onlineStats(){
  7.  
  8. $inDB = cmsDatabase::getInstance();
  9.  
  10. $bots = array();
  11. $bots['Aport'] ='Aport';
  12. $bots['msnbot'] ='MSNbot';
  13. $bots['Yandex'] ='Yandex';
  14. $bots['Lycos.com'] ='Lucos';
  15. $bots['Googlebot'] ='Google';
  16. $bots['Openbot'FAST-WebCrawler'penfind';
  17. $bots[';
  18. $bots['rawler'] ='] ='';
  19. $bots['TurtleScanner'] ='TurtleScanner';
  20. $bots['Yahoo-MMCrawler'] ='Y!MMCrawler';
  21. $bots['Yahoo!'] ='Yahoo!';
  22. $bots['rambler'] ='Rambler';
  23. $bots['W3C_Validator'] ='W3C Validator';
  24. $bots['bingbot'] ='bingbot';
  25. $bots['magpie-cr//удаляем старые записи
  26. wler';
  27.  
  28. //удаляем старые записи
  29. $sql = "DELETE FROM cms_online WHERE lastdate <= DATE_SUB(NOW(), INTERVAL ".ONLINE_//собираем информацию о текущем пользователе
  30. l) ;
  31.  
  32. //собираем информацию о текущем пользователе
  33. $sess_id = session_id();
  34. $ip = self::strClear((string)$_SERVER['REMOTE_ADDR']);
  35. $useragent = self::strClear((string)$_SERVER['HTTP_USER_AGENT']);
  36. $page = self::strClear((string)$_SERVER['REQUEST_URI']);
  37. $user_id = cmsUser::getInstance()->id;
  38.  
  39. $sql = "INSERT INTO cms_online (ip, sess_id, lastdate, user_id, agent, viewurl) VALUES ('$ip', '$sess_id', NOW(), '$user_id', '$useragent', '$page')";
  40. $inDB->query($sql) ;
  41. if (!$inDB->num_rows($result)){
  42. $sql = "INSERT INTO cms_online (ip, sess_id, lastdate, user_id, agent, viewurl) VALUES ('$i//Если пользователь уже онлайн, обновляем время
  43. '$page')";
  44. $inDB->query($sql) ;
  45. } else {
  46. //Если пользователь уже онлайн, обновляем время
  47. $sql = "UPDATE cms_online
  48. SET lastdate = NOW(),
  49. user_id = '$user_id',
3. Выполняем SQL-запрос к базе данных для создания таблицы cms_online:


Код PHP:
  1. DROP TABLE IF EXISTS `cms__online`;
  2. CREATE TABLE `cms__online` (
  3. `id` int(11) NOT NULL AUTO_INCREMENT,
  4. `ip` varchar(15) NOT NULL,
  5. `sess_id` varchar(100) NOT NULL,
  6. `lastdate` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  7. `user_id` int(11) NOT NULL,
  8. `agent` varchar(250) NOT NULL,
  9. `viewurl` varchar(250) NOT NULL,
  10. PRIMARY KEY (`id`),
  11. KEY `user_id` (`user_id`),
  12. UNIQUE KEY `sess_id` (`sess_id`)
  13. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
4. А затем включаем модуль. По логике, все должно заработать.

Только не забудьте перед изменениями сделать бэкапы!!!!
Прикрепленные файлы:
Файл доступен только авторизованным пользователям
Редактировалось: 3 раза (Последний: 11 июля 2017 в 01:21)
Перейти на форум:
Другие темы:

Наш "У дачный сайт" всегда Вам рады.

Возникли вопросы пишите !!!) 

Яндекс.Метрика

наверх