3namespace Bitrix\Im\V2\Sync;
5use Bitrix\Im\Model\LogTable;
6use Bitrix\Im\V2\Common\ContextCustomer;
7use Bitrix\Im\V2\Sync\Entity\EntityFactory;
8use Bitrix\Main\Config\Option;
9use Bitrix\Main\Type\DateTime;
15 private const OFFSET_INTERVAL_IN_SECONDS = 5;
16 private const MODULE_ID =
'im';
17 private const ENABLE_OPTION_NAME =
'sync_logger_enable';
21 return Option::get(self::MODULE_ID, self::ENABLE_OPTION_NAME,
'Y') ===
'Y';
26 if (!self::isEnable())
31 $date = $this->getDateWithOffset($date);
32 $logEntities = LogTable::query()
33 ->setSelect([
'ID',
'USER_ID',
'ENTITY_TYPE',
'ENTITY_ID',
'EVENT',
'DATE_CREATE'])
34 ->where(
'USER_ID', $this->getContext()->getUserId())
35 ->where(
'DATE_CREATE',
'>=', $date)
40 return $this->formatData($logEntities, $limit);
45 $offset = self::OFFSET_INTERVAL_IN_SECONDS;
46 $date->
add(
"- {$offset} seconds");
51 private function formatData(
array $logEntities,
int $limit):
array
54 $rest = $entities->getRestData();
56 $rest[
'hasMore'] =
count($logEntities) >= $limit;
66 foreach ($logEntities as $logEntity)
68 $dateCreate = $logEntity[
'DATE_CREATE'];
70 if (!$dateCreate instanceof
DateTime)
74 if ($dateCreate->getTimestamp() > $maxTimestamp)
76 $maxTimestamp = $dateCreate->getTimestamp();
77 $maxDateTime = $dateCreate;
static initByArray(array $logEntities)
getLastServerDate(array $logEntities)
getChangesFromDate(DateTime $date, int $limit)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"