yf_watch_online_users admin module

Fileplugins/user/admin_modules/yf_watch_online_users.class.php
Useadmin URL ?object=watch_online_users

Public properties

A site sets them in its config with $PROJECT_CONF['watch_online_users']['NAME'] = ...;

PropertyDefaultDescription
$USER_TYPES ['user_id' => 'user', 'admin_id' => 'admin', 'user_id_tmp' => 'guest online']

Public methods 4

filter_save

public function filter_save()
    public function filter_save()
    {
        $filter_name = ($_GET['object'] ?? null);
        if (($_GET['page'] ?? null) == 'clear') {
            $_SESSION[$filter_name] = [];
        } else {
            $_SESSION[$filter_name] = $_POST;
            foreach (explode('|', 'clear_url|form_id|submit') as $f) {
                if (isset($_SESSION[$filter_name][$f])) {
                    unset($_SESSION[$filter_name][$f]);
                }
            }
        }
        $redirect_url = './?object=' . ($_GET['object'] ?? null);
        return js_redirect($redirect_url);
    }

show

public function show()
    public function show()
    {
        if ( ! main()->TRACK_ONLINE_STATUS) {
            return t('online users tracking is disabled');
        }
        jquery('
            setTimeout(function(){
                window.location.reload(1);
            }, 60000);
		');
        $filter_name = ($_GET['object'] ?? null);
        if ( ! ($_SESSION[$filter_name]['user_type'] ?? null)) {
            $_SESSION[$filter_name]['user_type'] = 'user_id';
        }
        if (main()->TRACK_ONLINE_DETAILS) {
            return table('SELECT *,`user_id` AS `id` FROM ' . db('users_online_details'), [
                    'filter' => ($_SESSION[$filter_name] ?? null),
                ])
                ->text('user_id')
                ->text('url')
                ->text('ip')
                ->text('session_id')
                ->text('user_agent')
                ->date('time', ['format' => 'full', 'nowrap' => 1])
                ->btn('send notification', './?object=manage_notifications&action=add&receiver_id=%d&receiver_type=' . ($_SESSION[$filter_name]['user_type'] ?? null));
        }
        return table('SELECT *,`user_id` AS `id`  FROM ' . db('users_online'), [
                    'filter' => ($_SESSION[$filter_name] ?? null),
                ])
                ->text('user_id')
                ->date('time', ['format' => 'full', 'nowrap' => 1])
                ->btn('send notification', './?object=manage_notifications&action=add&receiver_id=%d&receiver_type=' . ($_SESSION[$filter_name]['user_type'] ?? null));
    }

Methods starting with _ hooks and helpers; not routable as page actions

_init

public function _init()
    public function _init()
    {
    }

_show_filter

public function _show_filter()
    public function _show_filter()
    {
        if ( ! main()->TRACK_ONLINE_STATUS) {
            return false;
        }
        $filter_name = ($_GET['object'] ?? null);
        $r = [
            'form_action' => './?object=' . ($_GET['object'] ?? null) . '&action=filter_save&id=' . $filter_name,
            'clear_url' => './?object=' . ($_GET['object'] ?? null) . '&action=filter_save&id=' . $filter_name . '&page=clear',
        ];
        return form($r, [
                'selected' => ($_SESSION[$filter_name] ?? null),
                'class' => 'form-vertical',
            ])
            ->select_box('user_type', $this->USER_TYPES)
            ->save();
    }