- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/loglist/gratitude.php
- Класс: BitrixSocialnetworkComponentLogListGratitude
- Вызов: Gratitude::getGratitudesIblockData
static function getGratitudesIblockData(array $params = []): array
{
$result = [
'BADGES_DATA' => [],
'ELEMENT_ID_LIST' => [],
'GRAT_VALUE' => ''
];
$userId = (!empty($params['userId']) && (int)$params['userId'] > 0 ? (int)$params['userId'] : 0);
if ($userId <= 0)
{
return $result;
}
if (!Loader::includeModule('iblock'))
{
return $result;
}
$honourIblockId = self::getGratitudesIblockId();
$filter = [
'IBLOCK_ID' => $honourIblockId,
'ACTIVE' => 'Y',
'=PROPERTY_USERS' => $userId,
];
$gratCode = (!empty($params['gratCode']) ? $params['gratCode'] : false);
if ($gratCode)
{
$res = CIBlockPropertyEnum::getList(
[],
[
'IBLOCK_ID' => $honourIblockId,
'CODE' => 'GRATITUDE',
'XML_ID' => $gratCode
]
);
if ($enumFields = $res->fetch())
{
$filter['PROPERTY_GRATITUDE'] = $enumFields['ID'];
$result['GRAT_VALUE'] = $enumFields['VALUE'];
}
}
$iblockElementsIdList = [];
$badgesData = [];
$res = CIBlockElement::getList(
[],
$filter,
false,
false,
[ 'ID', 'PROPERTY_GRATITUDE' ]
);
while($iblockElementFields = $res->fetch())
{
$badgeEnumId = $iblockElementFields['PROPERTY_GRATITUDE_ENUM_ID'];
if (!isset($badgesData[$badgeEnumId]))
{
$badgesData[$badgeEnumId] = [
'NAME' => $iblockElementFields['PROPERTY_GRATITUDE_VALUE'],
'COUNT' => 0,
'ID' => [],
];
}
$badgesData[$badgeEnumId]['ID'][] = (int)$iblockElementFields['ID'];
$iblockElementsIdList[] = $iblockElementFields['ID'];
}
$result['BADGES_DATA'] = $badgesData;
$result['ELEMENT_ID_LIST'] = $iblockElementsIdList;
return $result;
}