- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/loglist/page.php
- Класс: BitrixSocialnetworkComponentLogListPage
- Вызов: Page::setLogPageData
public function setLogPageData(&$result): void
{
$params = $this->getComponent()->arParams;
$processorInstance = $this->getProcessorInstance();
$lastEventFields = false;
if (is_array($result['Events']))
{
$tmp = $result['Events'];
$lastEventFields = array_pop($tmp);
unset($tmp);
}
$result['LAST_ENTRY_DATE_TS'] = 0;
$result['dateLastPageId'] = ($lastEventFields ? $lastEventFields['ID'] : 0);
if ($lastEventFields)
{
if ($params['USE_FOLLOW'] === 'N')
{
if (!empty($processorInstance->getOrderKey('LOG_DATE')))
{
$result['LAST_ENTRY_DATE_TS'] = $processorInstance->makeTimeStampFromDateTime($lastEventFields['LOG_DATE'], 'FULL');
}
elseif ($lastEventFields['LOG_UPDATE'])
{
$result['LAST_ENTRY_DATE_TS'] = $processorInstance->makeTimeStampFromDateTime($lastEventFields['LOG_UPDATE'], 'FULL');
}
}
if (
empty($result['LAST_ENTRY_DATE_TS'])
&& $lastEventFields['DATE_FOLLOW']
)
{
$result['LAST_ENTRY_DATE_TS'] = $processorInstance->makeTimeStampFromDateTime($lastEventFields['DATE_FOLLOW'], 'FULL');
}
}
if ($params['SET_LOG_PAGE_CACHE'] !== 'N')
{
$result['dateLastPageTS'] = $result['LAST_ENTRY_DATE_TS'];
}
$dateLastPage = null;
if (!empty($result['dateLastPageTS']))
{
$dateLastPage = convertTimeStamp($result['dateLastPageTS'], 'FULL');
}
if (
$params['SET_LOG_PAGE_CACHE'] === 'Y'
&& $dateLastPage
&& Util::checkUserAuthorized()
&& (
!$this->getDateLastPageStart()
|| $this->getDateLastPageStart() != $dateLastPage
|| $this->getNeedSetLogPage()
)
)
{
$lastPageData = $this->getLastPageData();
if (empty($lastPageData))
{
$lastPageData = [
'TRAFFIC_AVG' => 0,
'TRAFFIC_CNT' => 0,
'TRAFFIC_LAST_DATE_TS' => 0
];
}
$bNeedSetTraffic = CSocNetLogComponent::isSetTrafficNeeded([
'PAGE_NUMBER' => $result['PAGE_NUMBER'],
'GROUP_CODE' => $result['COUNTER_TYPE'],
'TRAFFIC_LAST_DATE_TS' => $lastPageData['TRAFFIC_LAST_DATE_TS']
]);
CSocNetLogPages::set(
$result['currentUserId'],
convertTimeStamp($processorInstance->makeTimeStampFromDateTime($dateLastPage, 'FULL') - $result['TZ_OFFSET'], 'FULL'),
$params['PAGE_SIZE'],
$result['PAGE_NUMBER'],
SITE_ID,
$result['COUNTER_TYPE'],
(
$bNeedSetTraffic
? ($lastPageData['TRAFFIC_AVG'] + $this->getDateFirstPageTimestamp() - $result['dateLastPageTS']) / ($lastPageData['TRAFFIC_CNT'] + 1)
: false
),
(
$bNeedSetTraffic
? ($lastPageData['TRAFFIC_CNT'] + 1)
: false
)
);
if (
(int)$result['PAGE_NUMBER'] === 1
&& $params['USE_TASKS'] === 'Y'
&& $result['EXPERT_MODE'] !== 'Y'
)
{
$result['EXPERT_MODE_SET'] = LogViewTable::checkExpertModeAuto($result['currentUserId'], $processorInstance->getTasksCount(), $params['PAGE_SIZE']);
if ($result['EXPERT_MODE_SET'])
{
$params['SET_LOG_COUNTER'] = 'N';
$this->getComponent()->arParams = $params;
}
}
}
}