3namespace Bitrix\Socialnetwork\Space\List;
6use Bitrix\Socialnetwork\Space\List\Item\Builder;
7use Bitrix\Socialnetwork\Space\List\Item\Space;
8use Bitrix\Socialnetwork\Space\List\Query\Builder as QueryBuilder;
9use Bitrix\Socialnetwork\Space\List\Query\LightweightBuilder;
13 private const DEFAULT_LOAD_LIMIT = 25;
15 private int $offset = 0;
20 $this->builder =
new Builder($this->userId);
23 public function setMode(
string $mode): self
32 $this->offset = $offset;
40 $limit = self::DEFAULT_LOAD_LIMIT;
42 (
new QueryBuilder($this->userId))
43 ->addModeFilter($this->mode)
44 ->addPaginationFilter($this->offset, $limit)
47 $query = $queryBuilder->build();
49 $queryResult =
$query->exec()->fetchAll();
51 $spaces = $this->builder->buildSpacesFromQueryResult($queryResult);
54 'hasMoreSpacesToLoad' =>
count($spaces) === $limit,
63 $limit = self::DEFAULT_LOAD_LIMIT;
65 (
new QueryBuilder($this->userId))
66 ->addModeFilter($this->mode)
67 ->addPaginationFilter($this->offset, $limit)
68 ->addSearchFilter($searchString)
71 $query = $queryBuilder->build();
73 $queryResult =
$query->exec()->fetchAll();
75 $spaces = $this->builder->buildSpacesFromQueryResult($queryResult);
78 'hasMoreSpacesToLoad' =>
count($spaces) === $limit,
92 (
new QueryBuilder($this->userId))
93 ->addModeFilter($this->mode)
94 ->addSpaceIdFilter($spaceId)
98 $queryResult =
$query->exec()->fetchAll();
100 $spaces = $this->builder->buildSpacesFromQueryResult($queryResult);
102 return $spaces[0] ??
null;
109 (
new QueryBuilder($this->userId))
110 ->addModeFilter($this->mode)
111 ->addSpaceIdListFilter($spaceIds)
112 ->addPaginationFilter(0,
count($spaceIds))
116 $queryResult =
$query->exec()->fetchAll();
118 return $this->builder->buildSpacesFromQueryResult($queryResult);
123 return $this->builder->buildCommonSpace();
135 $queryResult =
$query->exec()->fetchAll();
138 foreach ($queryResult as $value)
140 $result[] = (int)($value[
'ID'] ??
null);
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
__construct(private int $userId, private string $mode=Dictionary::FILTER_MODES['all'])
searchSpaces(string $searchString)
getSpacesByIds(array $spaceIds)
getSpaceById(int $spaceId)
</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."%"