Модуль "Кто онлайн" (оптимизация + аякс+сворачивание юзеров) для ICMS 1.10

+60
2.34K
Приветствую.
Дошла очередь и до этого модуля.

Что внутри:

1. автообновление с заданным интервалом
2. сворачивание списка юзеров если их больше заданного количества
3. оптимизация запросов к базе данных
Ссылка на старую тему для 1.9 — тут.


В чем смысл переписывания стандартного модуля (это актуально и для 1.10)

как работает стандартный модуль?

1. Получает авторизованных посетителей онлайн (1 запрос)
1а Проверяет каждого на принадлежность к администраторам (N запросов, по количеству посетителей)
1б Проверяет не админов на принадлежность к редакторам (N-a запросов, где а — количество админов)
2 Считает гостей онлайн (1 запрос)
3 Считает авторизованных посетителей за сегодня (1 запрос)
3а Проверяет каждого на принадлежность к администраторам (M запросов, по количеству посетителей)
3б Проверяет не админов на принадлежность к редакторам (M-b запросов, где b — количество админов)

Если в данный момент на сайте 10 человек онлайн, то получится порядка 40 запросов(а может и больше). Согласитесь, что такое количество запросов к базе данных от одного модуля — это очень много. Вариант с кэшированием отпадает — если посетитель зашел на сайт и не попадает сразу в список "онлайн" — то мало толку от такого модуля.
В версию для 1.10 добавил фишку, о которой уже заходил разговор — сворачивание списка посетителей при большом их количестве. И разворачивании после клика на ссылку "Показать всех".

В настройки вынесены параметры

— сколько показывать юзеров онлайн (остальных сворачивать)
— сколько показывать юзеров за сегодня (остальных сворачивать)
— текст ссылки, при клике на которую отображаются все посетители (по умолчанию "Показать всех")

Инструкция:

1. скачать в корень сайта и разархивировать (добавил файл jquery.timers.js) — архив
2. установить в админке
3. при желании — настроить количество юзеров для вывода (по умолчанию выводятся по 5 юзеров онлайн и по 5 юзеров за сегодня, остальные отображаются после клика на ссылку)
4. настроить автообновление блока — по умолчанию раз в минуту

Демо тут
+1
Александр I Александр I 12 лет назад #
Спасибо.
Сейчас проверим...
0
Kreator Kreator 12 лет назад #
+2
Добавили бы тогда автообновление статуса пользователя на аяксе. Т.е. счас если пользователь на сайте и в течении какого времени не переходит или не обновляет страницу - то его как бы нет. Помню поднималась это тема где то ...
а так, пока страница открыта, пользователь всегда он-лайн ...
0
SJen SJen 12 лет назад #
так я же и писал такой плагин - лежит в дополнениях.
Он для 1.9, но надо еще проверять будет ли работать на 1.10.
Если будет недостаточно простого перекодирования, то выложу на днях.
0
GarikKR GarikKR 12 лет назад #
У меня с версии 19 остался, включен в плагинах..и работает!
0
GarikKR GarikKR 12 лет назад #
имею в виду "автообновление статуса пользователя"
+1
RSN RSN 12 лет назад #
Спасибо, оч. своевременно. Все меньше пробелов остается для миграции.
HostelB HostelB 12 лет назад #
Комментарий удален
0
Def Def 12 лет назад #
вроде работает)

а что там за плагин-мои социальные профили?)
0
SJen SJen 12 лет назад #
да это юлогин, но этот момент я еще не доделал
0
Anonim Anonim 12 лет назад #
не работает нормально поле "показать еще" - на сайте более 30 человек за сегодня было, а отображается 7-10
0
VonKruger VonKruger 12 лет назад #
У меня вообще не отображаются те, кто был на сайте, хотя в настройках модуля все выставлено. Что-то с модулем не так.
0
VonKruger VonKruger 12 лет назад #
И все-таки не обновляется список присутствующих на сайте если не обновлять страницу. Попробовал зайти с двух разных аккаунтов и разных браузеров, эффекта ноль. Женя проверь пожалуйста архив, может опять что-то не то вкинул. Хотя есть один момент: на локальном сайте (Денвер) работает, а на хостинге нет.
0
SJen SJen 12 лет назад #
на локальном сайте (Денвер) работает
то есть все работает и архив я кинул правильно?)

На сайте надо фаербаг смотреть, если есть какие-то ошибки в скриптах, то это может мешать автообновлению.
0
VonKruger VonKruger 12 лет назад #
а что это за фаербаг такой и где его искать?
0
SJen SJen 12 лет назад #
поставьте рядом стандартный модуль и сравните результат
стандартный модуль показывает 30 человек?
0
SJen SJen 12 лет назад #
Минона:
не работает нормально поле "показать еще" - на сайте более 30 человек за сегодня было, а отображается 7-10

Надо сравнить со стандартным модулем(поставить два рядом). Подозреваю, что вы увидите в нем те же 7-10 человек.
0
mogulkhan mogulkhan 12 лет назад #
Если в данный момент на сайте 10 человек онлайн, то получится порядка 40 запросов(а может и больше). Согласитесь, что такое количество запросов к базе данных от одного модуля - это очень много. Вариант с кэшированием отпадает - если посетитель зашел на сайт и не попадает сразу в список "онлайн" - то мало толку от такого модуля.
Немножко не понятен этот момент! Получается данный модуль полезен, но дает нагрузку выше чем дефолтный ?
0
SJen SJen 12 лет назад #
с точностью до наоборот.
Я наверное не совсем однозначно написал - большая нагрузка у стандартного модуля. У этого же наоборот - несколько запросов вместо нескольких десятков.

Основная фишка этого модуля как раз в оптимизации нагрузки(уменьшении нагрузки на mysql), а остальное необязательные "красивости" и "удобности")
0
IRATE IRATE 12 лет назад #
Конфликтует с выпадающим меню Фото.
0
IRATE IRATE 12 лет назад #
Да и в админке тоже.
0
SJen SJen 12 лет назад #
не понял, как это модуль "Кто онлайн" может конфликтовать с вашей админкой?)
"Это фантастика!" (с)

И конфликты с меню надо еще смотреть, у меня в модуле используется только jquery.timer - не думаю, что такой безобидный плагин с чем-то конфликтует. Может есть ошибки в скриптах, которые подгружаются ДО модуля? - это можно увидеть в фаербаге. .Если такое есть, то обновление в модуле работать не будет - такое уже видел на некоторых сайтах.
0
IRATE IRATE 12 лет назад #
Только констатирую, что есть. Разбираться в скриптах я пока не дорос.
0
SJen SJen 12 лет назад #
Да, в любом случае спасибо за то, что проверили у себя.
0
st.Puh st.Puh 12 лет назад #
После публикации модуля в меню сайта перестает выпадать-разворачиваться пункты меню в которых есть подпункты.Например
Пункт меню
Фото
в нем перестает показываться
Новое фото
Лучшее фото
и тд.После снятия модуля с публикации все начинает опять работать.
0
SJen SJen 12 лет назад #
проверьте ошибки в фаербаге
может плагин jquery не закинули
0
VonKruger VonKruger 12 лет назад #
Вот этот jquery и выдает ошибку в фаербаге. Ну не знаю, движок чистый закидывал, кроме дефолтного шаблона ничего не переделывал, и то, только кое-какое оформление, но модуль не хочет работать. Что интересно, на локалке все работает нормально, а на хостинге нет, все файлы идентичны, что на локалке, что на хостинге. Модули типа сообщений с аяксом и ленты активности работают нормально, а вот "Кто онлайн" ни как не хочет.
0
IRATE IRATE 12 лет назад #
О чем я писал выше.
0
SJen SJen 12 лет назад #
Ясно

вам нужно закинуть файл jquery таймера в папку includes/jquery/

Либо заново скачать архив с модулем и распаковать на сайте.

Прошу прощения, забыл добавить этот файлик в архив - все забываю что его нет в стандартной поставке ICMS. У кого он был до этого - все работало прекрасно. У кого не было - логичные ошибки.
0
SJen SJen 12 лет назад #
а вот про админку не согласен - модуль не умеет ломать админ часть сайта. Это у вас что-то другое..
0
artscripts artscripts 12 лет назад #
реально ли сделать к этому модулю еще дополнение, чтобы нажав на заголовок "кто онлайн" открывалась страничка и показывалось, что делает пользователь и его ip?

А так за разработку 5+
0
SJen SJen 12 лет назад #
реально все..

Вопрос, чего это будет стоить - например, для этого вам нужно будет включать логирование действий пользоватей - статистику. Если под фразой "что делает пользователь и его ip" хочется видеть список последних URL, которые посетил юзер, то вполне реально и несложно(если логи пишутся).
0
IRATE IRATE 12 лет назад #
Это есть в стандартных средствах, но катастрофически раздувается SQL база.
0
st.Puh st.Puh 12 лет назад #
Заработало, в меню больше проблем не создает
0
st.Puh st.Puh 12 лет назад #
Теперь заметил что если модуль Кто онлайн не виден при заходе на сайт то меня онлайн нет.Пример модуль выведенг в самый низ странички я захожу на сайт сижу там что то делаю но не опускаюсь в низ сайта тобиш мне на монитор не выводит модуль,так минут десять к примеру сижу на сайте обновляю страничку иду вниз к модулю и что я вижу меня ещо нет онлайн хотя я на сайте минут 10.
0
Бурдель Дмитрий Бурдель Дмитрий 11 лет назад #
На 1.10.1 работает прекрасно. +
0
hydraq hydraq 11 лет назад #
у меня конфликтует с шаблоном видимо( стандартная проблема с выпадающим меню
0
Петр Петр 11 лет назад #
демо не работает :(
0
Нил™ Нил™ 11 лет назад #
у меня ни с чем не конфликтует, но работает странно. я на сайте при одном обновлении я в списке онлайн потом я в списке был сегодня, потом могу опять в онлайн перейти. с чем связано может быть??
0
Ганс Ганс 11 лет назад #
может я как всегда не в тему но тону.... у меня на хостинге чтото случилось все исправили все работает... а у меня после этого всегда все офлайн ...... в админке пользователей 0 гостей 0, на сайте друзей онлайн 0... ну тоесть они есть но модули их не видят или не выводят что делать?
0
L. Raimon L. Raimon 11 лет назад #
здравствуйте!

опять же, проблема с меню. проверила наличие файла jquery таймера - всё на месте - а выпадающее меню как не работало, так и не работает.
0
Mercy Mercy 11 лет назад #
устанавливается, но в админке в настройке пишет - Плагин отключен или не имеет конфигурации ((
0
Батосай Батосай 10 лет назад #
SJen, планируется ли адаптация этого замечательного модуля под 1.10.3?
0
Bost Bost 10 лет назад #
Такой же вопрос, так как версия 1.10.3 движка
+2
Aleks Shultz Aleks Shultz 10 лет назад #
Да, под 1.10.3 нужная штука...
+1
Bost Bost 10 лет назад #
Поставил работает и неплохо, спасибо :)
0
Aleks Shultz Aleks Shultz 10 лет назад #
Под 1.10.3 работает? Сами допилили?
+1
RSN RSN 9 лет назад #
Если автор не против, я обновил модуль для 1.10.6
http://instantcms.ru/users/files/download5459.html
0
swjatoy swjatoy 9 лет назад #
Спасибо.. под 1.10.6 отлично работает
0
swjatoy swjatoy 9 лет назад #
что то он как то не корректно отображает количество тех кто онлайн ... я например знаю что народу больше а показывает постоянно от 0 до 4х и подскажи как выставить время чтоб через минут 5 он выпадал из онлайн если он уже ушел с сайте
0
swjatoy swjatoy 9 лет назад #
openstat . com показывает что онлайн 30 человек а Кто онлайн показывает 1-5
0
swjatoy swjatoy 9 лет назад #
возможно отображает и правильно но как задержку выставить

Еще от автора

Обновление компонента "Мне нравится"
Приветствую. Закончил версию с исправлением ошибок и багов, всем пользователям обновление выслано на электронку.
Обновление компонента  "Каталог дополнений в админку"
Приветствую. Обновление самого популярного аддона из официального каталога дополнений.
Обновленный парсер Яндекс.Карт
Приветствую Изменения довольно значительны, поэтому имеет смысл оформить их отдельным постом.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.