3namespace Bitrix\Im\V2\Recent\Initializer;
5use Bitrix\Im\V2\Recent\Initializer\Queue\QueueItem;
6use Bitrix\Im\V2\Recent\Initializer\Stage\OtherUsersStage;
7use Bitrix\Im\V2\Recent\Initializer\Stage\TargetUserStage;
9use Bitrix\Main\Type\DateTime;
15 protected int $gapTime = self::WITHOUT_GAP_TIME;
33 return static::getInstance($queueItem->stageType, $queueItem->userId);
54 if (empty(
$items) || !Loader::includeModule(
'pull'))
63 'command' =>
'userShowInRecent',
65 'params' => $pullParams,
78 return array_diff_key($users, $usersWithExistingItems);
87 foreach ($users as
$user)
89 if (
$user === $this->targetId)
106 $this->currentDate ??= (
new DateTime())->add(
"-{$this->gapTime} seconds");
110 $this->currentDate ??=
new DateTime();
123 'ITEM_ID' => $itemId,
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
hasNextStep(InitialiazerResult $result)
getPullRecipients(array $items)
static getInstance(StageType $type, int $targetId)
getPullParams(array $items)
__construct(int $targetId)
filterUsers(array $users)
getUsersWithExistingItems(array $users)
getItems(InitialiazerResult $result)
getItem(int $userId, int $itemId)
static createFromQueueItem(QueueItem $queueItem)
getItemByTargetAndUser(int $targetUserId, int $otherUserId)
setGapTime(int $gapTime=self::GAP_TIME)
getItemsByUsers(array $users)
sendPullAfterInsert(array $items)
static add($recipient, array $parameters, $channelType=\CPullChannel::TYPE_PRIVATE)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)