Компонент для Битрикс. Счетчик онлайн посетителей.

Компонент для Битрикс. Счетчик онлайн пользователей.

Добрый вечер. Выкладываю в общий доступ свой компонент «Счетчик онлайн посетителей». Данный компонент отображает количество пользователей и гостей на сайте.

Описание:

Компонент выводит количество гостей и авторизованных пользователей online.

- В Битриксе есть модуль Веб аналитики, с помощью api которого легко реализовать такой компонент. Но этот модуль доступен только на старших редакциях стоимостью от 35 тысяч и выше. Данный компонент работает на всех редакциях Битрикс.

- Работает при хранении сессий как в файлах, так и в базе данных. Сам определяет где хранятся сессии.

- Учет гостей осуществляется двумя способами: по ip и по уникальной сессии.
То есть фактически мы пользуемся двумя определениями уникальности:
1) «Под термином сессия в системе 1C-Битрикс: Управление сайтом понимается сессия PHP. Сессия может открываться в момент захода на сайт и закрывается при закрытии окна браузера. Также новая сессия открывается при авторизации посетителя и закрывается, если закончить сеанс авторизации (разлогиниться). Синонимом термина сессия можно считать термин заход. Другими словами, сессия – один визит на сайт.»
2) «Термин хост означает IP-адрес посетителя сайта.»

Выглядит компонент так:

Счетчик онлайн пользователей Bitrix

Внешний вид компонента вы можете задать в файле-шаблоне данного компонента (template.php).

Пример вызова компонента:

<?
$APPLICATION->IncludeComponent(
	"bitrix:count_users",
	"",
	Array(
		"TYPE_UNIQUENESS" => "SESSION",
		"SESSION_TIMEOUT" => "120",
	),
false
);
?>

Описание ключей:

TYPE_UNIQUENESS — Способ определения уникального гостя. Два варианта: IP – по айпи посетителя, SESSION (по умолчанию) – по уникальной сессии.
SESSION_TIMEOUT — Время бездействия пользователя на сайте, после которого его считать неактивным (в секундах). По умолчанию 120.

Пример массива, содержащего результат работы компонента ($arResult):

Array
(
    [USERS] => Array
        (
            [0] => Array
                (
                    [fixed_session_id] => a44db08995691514c5bdaa2392484041
                    [SESS_IP] => 83.149.3.141
                )

            [1] => Array
                (
                    [fixed_session_id] => 9865e964aebe6b5f969174f557c57416
                    [SESS_IP] => 67.195.115.219
                )

            [2] => Array
                (
                    [fixed_session_id] => 7363087097e27e1f686d0986bb7926df
                    [SESS_IP] => 77.88.18.7
                )

            [3] => Array
                (
                    [fixed_session_id] => 4fca3cdc9930552a34501f786991fca3
                    [SESS_IP] => 79.137.161.7
                )

        )

    [USERS_AUTH] => Array
        (
            [0] => Array
                (
                    [ID] => 1
                    [fixed_session_id] => dbc8d28a79dbda9d2f0344835b9d20c3
                    [SESS_IP] => 89.179.56.126
                )

        )

)

По понятным причинам кеширование здесь я применять не стал.

Для добавления компонента к вам на сайт необходимо проделать тоже, что и с предыдущими компонентами.

Скачать его вы можете тут.

Я его тестировал на доступных мне сайтах, все работает верно, но если кто протестирует у себя и отпишется тут, буду признателен. По вопросам пишите в комментарии или же используя данные с этой страницы.

5 комментариев: Компонент для Битрикс. Счетчик онлайн посетителей.

  1. Валентин

    Спасибо Алексей! Удобный модуль, легко настраивается!

  2. Лаврушин Алексей

    Рад, что кому то помогло))

  3. Хорошая штука. И замена бессмысленным (неработающим) LAST_ACTIVITY_DATE из CUser и X_TIMESTAMP из b_user, соответственно. Правда, Монитор Качества заругается на компонент, но кого это волнует… :)

  4. После установки компонента сайт упал…ошибка 504…у кого какие мысли?

  5. Лаврушин Алексей

    Хм, не знаю даже что могло вызвать эту ошибку. Тестировал где только мог все было нормально, где бы сессии не хранились. Попробуйте удалите компонент и посмотрите все ли впорядке будет без него, в нем ли причина.

Добавить комментарий:

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой: