Вход Регистрация
Файл: modules/online/includes/ip.php
Строк: 70
<?php

/**
 * This file is part of JohnCMS Content Management System.
 *
 * @copyright JohnCMS Community
 * @license   https://opensource.org/licenses/GPL-3.0 GPL-3.0
 * @link      https://johncms.com JohnCMS Project
 */

declare(strict_types=1);

defined('_IN_JOHNCMS') || die('Error: restricted access');

/** @var JohncmsSystemHttpEnvironment $env */
$env di(JohncmsSystemHttpEnvironment::class);

$data = [];
$data['filters'] = [
    
'users'   => [
        
'name'   => __('Users'),
        
'url'    => '/online/',
        
'active' => false,
    ],
    
'history' => [
        
'name'   => __('History'),
        
'url'    => '/online/history/',
        
'active' => false,
    ],
];

if (
$user->rights) {
    
$data['filters']['guest'] = [
        
'name'   => __('Guests'),
        
'url'    => '/online/guest/',
        
'active' => false,
    ];
    
$data['filters']['ip'] = [
        
'name'   => __('IP Activity'),
        
'url'    => '/online/ip/',
        
'active' => true,
    ];
}

// Список активных IP, со счетчиком обращений
$ip_array array_count_values($env->getIpLog());
$total count($ip_array);

if (
$start >= $total) {
    
// Исправляем запрос на несуществующую страницу
    
$start max(0$total - (($total $user->config->kmess) == $user->config->kmess : ($total $user->config->kmess)));
}

$end $start $user->config->kmess;

if (
$end $total) {
    
$end $total;
}

arsort($ip_array);
$i 0;

foreach (
$ip_array as $key => $val) {
    
$ip_list[$i] = [$key => $val];
    ++
$i;
}
$items = [];
if (
$total && $user->rights) {
    for (
$i $start$i $end$i++) {
        
$ipLong key($ip_list[$i]);
        
$ip long2ip((int) $ipLong);

        
$items[] = [
            
'ip'              => $ip,
            
'search_ip'       => '/admin/search_ip/?ip=' $ip,
            
'whois_ip'        => '/admin/ip_whois/?ip=' $ip,
            
'current_user_ip' => ($ipLong === di(JohncmsSystemHttpEnvironment::class)->getIp()),
            
'count'           => $ip_list[$i][$ipLong],
        ];
    }
}

$data['pagination'] = $tools->displayPagination('?'$start$total$user->config->kmess);
$data['total'] = $total;
$data['items'] = $items ?? [];

echo 
$view->render(
    
'online::ip',
    [
        
'title'      => $title,
        
'page_title' => $title,
        
'data'       => $data,
    ]
);
Онлайн: 3
Реклама