yf_watch_online_users admin module| File | plugins/user/admin_modules/yf_watch_online_users.class.php |
|---|---|
| Use | admin URL ?object=watch_online_users |
A site sets them in its config with $PROJECT_CONF['watch_online_users']['NAME'] = ...;
| Property | Default | Description |
|---|---|---|
$USER_TYPES |
['user_id' => 'user', 'admin_id' => 'admin', 'user_id_tmp' => 'guest online'] |
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);
}
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));
}
_ hooks and helpers; not routable as page actionspublic function _init()
public function _init()
{
}
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();
}