app->loadLang('client');
$now = helper::now();
$polling = empty($this->config->xuanxuan->pollingInterval) ? $this->lang->client->noData : $this->config->xuanxuan->pollingInterval . 's';
$lastPoll = $this->loadModel('setting')->getItem("owner=system&module=common§ion=xxd&key=lastPoll");
$xxdStatus = $this->loadModel('im')->getXxdStatus();
$onlineUserCount = $xxdStatus == 'offline' ? 0 : count($this->loadModel('im')->userGetList('online'));
$setServerBtn = html::a(helper::createLink('setting', 'xuanxuan', 'type=edit'), $this->lang->client->set, '', 'class="btn"');
$xxdStartDate = zget($this->config->xxd, 'start', $this->lang->client->noData);
if(!empty($lastPoll) && $xxdStatus == 'online' && !empty($this->config->xxd) && $polling < 600)
{
$xxdRunTime = $xxdStartDate === $this->lang->client->noData ? $this->lang->client->noData : $this->im->getXxdRunTime(strtotime($now) - strtotime($xxdStartDate));
$xxdRunHtml = "
{$this->lang->client->xxdRunTime}
{$xxdRunTime}
";
}
else
{
$xxdRunHtml = "{$this->lang->client->xxdStartDate}
{$xxdStartDate}
";
}
$html = '';
$html .= '
';
$html .= "
{$this->lang->client->xxdStatus}
{$this->lang->client->xxdStatusList[$xxdStatus]}
";
$html .= $xxdRunHtml;
$html .= "
{$this->lang->client->polling}
{$polling}
";
$html .= "
{$this->lang->client->countUsers}
{$onlineUserCount}
";
$html .= "
";
$html .= "
{$this->lang->client->setServer}
{$setServerBtn}
";
$html .= '
';
echo $html;
}
public function blockStatistics($block = null)
{
$this->loadModel('im');
$this->app->loadLang('client');
$now = helper::now();
$users = count($this->im->userGetList());
$groups = count($this->im->chatGetGroupPairs());
$messages = $this->im->messageGetCountForBlock();
$fileSize = $this->getXxcAllFileSize();
if($fileSize == 0)
{
$fileSize .= ' KB';
}
else if($fileSize > $this->lang->client->sizeType['G'])
{
$fileSize = round($fileSize / $this->lang->client->sizeType['G'], 2) . ' GB';
}
else if($fileSize > $this->lang->client->sizeType['M'])
{
$fileSize = round($fileSize / $this->lang->client->sizeType['M'], 2) . ' MB';
}
else if($fileSize > $this->lang->client->sizeType['K'])
{
$fileSize = round($fileSize / $this->lang->client->sizeType['K'], 2) . ' KB';
}
$html = '';
$html .= "
{$this->lang->client->totalUsers}
{$users}
";
$html .= "
{$this->lang->client->totalGroups}
{$groups}
";
$html .= "
{$this->lang->client->fileSize}
{$fileSize}
";
$html .= '
';
$html .= "
{$this->lang->client->message['total']}
{$messages->total}
";
$html .= "
{$this->lang->client->message['day']}
{$messages->day}
";
$html .= "
{$this->lang->client->message['hour']}
{$messages->hour}
";
$html .= '
';
echo $html;
}
/**
* Get XXC All file size.
*
* @access public
* @return int
*/
public function getXxcAllFileSize()
{
$xxcFiles = $this->dao->select('size')->from(TABLE_FILE)
->where('objectType')->eq('chat')
->fetchPairs();
if(empty($xxcFiles)) return 0;
return array_sum($xxcFiles);
}
}