- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/rest.php
- Класс: CSocNetLogRestService
- Вызов: CSocNetLogRestService::getGroupSubject
static function getGroupSubject($arFields, $n, $server)
{
$arOrder = $arFields['ORDER'] ?? null;
if (!is_array($arOrder))
{
$arOrder = array("SORT" => "ASC");
}
$arFilter = [
'SITE_ID' => (
isset($arFields['SITE_ID'])
&& !empty($arFields['SITE_ID'])
? $arFields['SITE_ID']
: CSite::getDefSite()
)
];
if (
isset($arFields['SUBJECT_ID'])
&& (int)$arFields['SUBJECT_ID'] > 0
)
{
$arFilter['ID'] = $arFields['SUBJECT_ID'];
}
$subjectIdList = [];
$result = [];
$resSubject = CSocNetGroupSubject::getList(
$arOrder,
$arFilter,
false,
self::getNavData($n),
array("ID", "NAME")
);
while ($subjectFields = $resSubject->fetch())
{
$subjectIdList[] = $subjectFields['ID'];
$result[$subjectFields['ID']] = $subjectFields;
}
if (!empty($subjectIdList))
{
$res = BitrixSocialnetworkWorkgroupSubjectSiteTable::getList([
'filter' => [
'@SUBJECT_ID' => $subjectIdList
],
'select' => ['SUBJECT_ID', 'SITE_ID']
]);
while ($subjectSiteFields = $res->Fetch())
{
if (
isset($result[$subjectSiteFields['SUBJECT_ID']])
&& is_array($result[$subjectSiteFields['SUBJECT_ID']])
)
{
if (!isset($result[$subjectSiteFields['SUBJECT_ID']]['SITE_ID']))
{
$result[$subjectSiteFields['SUBJECT_ID']]['SITE_ID'] = [];
}
$result[$subjectSiteFields['SUBJECT_ID']]['SITE_ID'][] = $subjectSiteFields['SITE_ID'];
}
}
}
$result = array_values($result);
return self::setNavData($result, $resSubject);
}