3namespace Bitrix\Im\V2\Recent\Initializer\Source;
5use Bitrix\Im\Model\RelationTable;
6use Bitrix\Im\V2\Recent\Initializer\BaseSource;
7use Bitrix\Im\V2\Recent\Initializer\InitialiazerResult;
8use Bitrix\Im\V2\Recent\Initializer\SourceType;
9use Bitrix\Im\V2\Recent\Initializer\Stage;
10use Bitrix\Im\V2\Recent\Initializer\StageType;
11use Bitrix\Main\ORM\Query\Query;
15 public static function getType(): SourceType
17 return SourceType::Collab;
23 $query = RelationTable::query()
25 ->setSelect([
'ID', self::USER_ID_FIELD_NAME =>
'USER_ID'])
26 ->where(
'CHAT_ID', $this->sourceId)
27 ->whereNotNull(
'USER.LAST_ACTIVITY_DATE')
29 ->setOrder([
'ID' =>
'DESC'])
42 $selectedItemsCount =
count($raw);
45 $hasNextStep = $selectedItemsCount >= $limit;
47 foreach ($raw as $row)
49 $id = (int)($row[
'ID']);
50 $userId = (int)($row[self::USER_ID_FIELD_NAME] ?? 0);
52 if ($id < $nextId || $nextId ===
null)
60 ->setNextPointer((
string)$nextId)
61 ->setHasNextStep($hasNextStep)
62 ->setSelectedItemsCount($selectedItemsCount)
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
getBaseQuery(string $pointer, int $limit)
getResultByRaw(array $raw, 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."%"