• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/loglist/page.php
  • Класс: BitrixSocialnetworkComponentLogListPage
  • Вызов: Page::getLogPageData
public function getLogPageData(&$result): void
{
	$params = $this->getComponent()->arParams;
	$processorInstance = $this->getProcessorInstance();

	$this->setNeedSetLogPage(false);

	if ($params['SET_LOG_PAGE_CACHE'] === 'Y')
	{
		$resPages = LogPageTable::getList([
			'order' => [],
			'filter' => [
				'USER_ID' => $result['currentUserId'],
				'=SITE_ID' => SITE_ID,
				'=GROUP_CODE' => $result['COUNTER_TYPE'],
				'PAGE_SIZE' => $params['PAGE_SIZE'],
				'PAGE_NUM' => $result['PAGE_NUMBER']
			],
			'select' => [ 'PAGE_LAST_DATE', 'TRAFFIC_AVG', 'TRAFFIC_CNT', 'TRAFFIC_LAST_DATE' ]
		]);

		if ($pagesFields = $resPages->fetch())
		{
			$this->setDateLastPageStart($pagesFields['PAGE_LAST_DATE']);
			$this->setLastPageData([
				'TRAFFIC_LAST_DATE_TS' => ($pagesFields['TRAFFIC_LAST_DATE'] ? $processorInstance->makeTimeStampFromDateTime($pagesFields['TRAFFIC_LAST_DATE'], 'FULL') : 0),
				'TRAFFIC_AVG' => (int)$pagesFields['TRAFFIC_AVG'],
				'TRAFFIC_CNT' => (int)$pagesFields['TRAFFIC_CNT']
			]);
			$processorInstance->setFilterKey('>=LOG_UPDATE', convertTimeStamp($processorInstance->makeTimeStampFromDateTime($pagesFields['PAGE_LAST_DATE'], 'FULL') - 60*60*24*1, 'FULL'));
		}
		elseif(
			$result['isExtranetSite']
			&& !$this->getComponent()->getCurrentUserAdmin()
		) // extranet user
		{
			$res = UserToGroupTable::getList([
				'order' => [
					'GROUP_DATE_CREATE' => 'ASC'
				],
				'filter' => [
					'USER_ID' => $result['currentUserId'],
					'@ROLE' => UserToGroupTable::getRolesMember(),
					'!GROUP_DATE_CREATE' => false
				],
				'select' => [
					'GROUP_DATE_CREATE' => 'GROUP.DATE_CREATE'
				]
			]);
			if ($relation = $res->fetch())
			{
				$processorInstance->setFilterKey('>=LOG_UPDATE', $relation['GROUP_DATE_CREATE']);
			}
		}
		elseif (
			(
				$result['COUNTER_TYPE'] !== '**'
				|| $result['MY_GROUPS_ONLY'] !== 'Y'
			)
			&& $result['PAGE_NUMBER'] <= 1
		)
		{
			$resPages = LogPageTable::getList([
				'order' => [
					'PAGE_LAST_DATE' => 'DESC'
				],
				'filter' => [
					'=SITE_ID' => SITE_ID,
					'=GROUP_CODE' => $result['COUNTER_TYPE'],
					'PAGE_SIZE' => $params['PAGE_SIZE'],
					'PAGE_NUM' => $result['PAGE_NUMBER']
				],
				'select' => [ 'PAGE_LAST_DATE' ]
			]);

			if ($pagesFields = $resPages->fetch())
			{
				$this->setDateLastPageStart($pagesFields['PAGE_LAST_DATE']);
				$processorInstance->setFilterKey('>=LOG_UPDATE', convertTimeStamp($processorInstance->makeTimeStampFromDateTime($pagesFields['PAGE_LAST_DATE'], 'FULL') - 60*60*24*4, 'FULL'));
				$this->setNeedSetLogPage(true);
			}
		}
	}
}