| Server IP : 23.111.136.34 / Your IP : 216.73.216.136 Web Server : Apache System : Linux servidor.eurohost.com.br 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : meusitei ( 1072) PHP Version : 5.6.40 Disable Function : show_source, system, shell_exec, passthru, proc_open MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/meusitei/public_html/central/modules/widgets/ |
Upload File : |
<?php
namespace WHMCS\Module\Widget;
use Carbon\Carbon;
use WHMCS\Module\AbstractWidget;
use WHMCS\User\Client;
/**
* Client Activity Widget.
*
* @copyright Copyright (c) WHMCS Limited 2005-2016
* @license http://www.whmcs.com/license/ WHMCS Eula
*/
class ClientActivity extends AbstractWidget
{
protected $title = 'Client Activity';
protected $description = 'Recent online clients.';
protected $weight = 70;
protected $cache = true;
protected $cacheExpiry = 300;
protected $requiredPermission = 'List Clients';
public function getData()
{
return array(
'activeCount' => (int) Client::where('status', '=', 'Active')->count(),
'onlineCount' => (int) Client::where('lastlogin', '>', Carbon::now()->subHour()->toDateTimeString())->count(),
'recentActiveClients' => Client::orderBy('lastlogin', 'desc')->limit(25)
->get(array('id', 'firstname', 'lastname', 'companyname', 'ip', 'lastlogin'))->toArray(),
);
}
public function generateOutput($data)
{
$activeClients = number_format((int) $data['activeCount']);
$usersOnline = number_format((int) $data['onlineCount']);
$clients = array();
foreach ($data['recentActiveClients'] as $client) {
// If there is no lastlogin setting, or its been set to a timestamp like 0000-00-00, we show N/A
$clientLastLogin = (empty($client['lastlogin']) || strpos($client['lastlogin'], '0000') === 0) ? "N/A" : Carbon::createFromFormat('Y-m-d H:i:s', $client['lastlogin'])->diffForHumans();
$clients[] = '<div class="client">
<div class="last-login">' . $clientLastLogin . '</div>
<a href="clientssummary.php?userid=' . $client['id'] . '" class="link">'
. $client['firstname'] . ' ' . $client['lastname'] . ($client['companyname'] ? ' ('
. $client['companyname'] . ')' : '') . '</a>
<a href="http://www.geoiptool.com/en/?IP=' . $client['ip'] . '" target="_blank" class="ip-address">' . $client['ip'] . '</a>
</div>';
}
$clientOutput = implode($clients);
return <<<EOF
<div class="icon-stats">
<div class="row">
<div class="col-sm-6">
<div class="item">
<div class="icon-holder text-center color-orange">
<a href="clients.php?status=Active">
<i class="pe-7s-user"></i>
</a>
</div>
<div class="data">
<div class="note">
<a href="clients.php?status=Active">Active Clients</a>
</div>
<div class="number">
<a href="clients.php?status=Active">
<span class="color-orange">{$activeClients}</span>
<span class="unit">Active</span>
</a>
</div>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="item">
<div class="icon-holder text-center color-green">
<i class="pe-7s-smile"></i>
</div>
<div class="data">
<div class="note">
Users Online
</div>
<div class="number">
<span class="color-green">{$usersOnline}</span>
<span class="unit">Last Hour</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="clients-list">
{$clientOutput}
</div>
EOF;
}
}