• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/loglist/gratitude.php
  • Класс: BitrixSocialnetworkComponentLogListGratitude
  • Вызов: Gratitude::getGratitudesBlogData
static function getGratitudesBlogData(array $params = []): array
{
	global $CACHE_MANAGER;

	$result = [
		'POST_ID_LIST' => [],
		'AUTHOR_ID_LIST' => [],
		'ELEMENT_ID_LIST' => [],
	];

	$iblockElementsIdList = (!empty($params['iblockElementsIdList']) && is_array($params['iblockElementsIdList']) ? $params['iblockElementsIdList'] : []);
	if (empty($iblockElementsIdList))
	{
		return $result;
	}

	if (!Loader::includeModule('blog'))
	{
		return $result;
	}

	$authorsIdList = [];

	$res = BitrixBlogPostTable::getList([
		'filter' => [
			'@UF_GRATITUDE' => $iblockElementsIdList
		],
		'select' => ['ID', 'AUTHOR_ID', 'UF_GRATITUDE']
	]);

	$iblockElementsIdList = [];
	while($postFields = $res->fetch())
	{
		$postIdList[] = $postFields['ID'];
		$authorsIdList[] = $postFields['AUTHOR_ID'];
		$iblockElementsIdList[] = $postFields['UF_GRATITUDE'];

		if (defined('BX_COMP_MANAGED_CACHE'))
		{
			$CACHE_MANAGER->registerTag('blog_post_' . $postFields['ID']);
			$CACHE_MANAGER->registerTag('USER_CARD_' . (int)($postFields['AUTHOR_ID'] / TAGGED_user_card_size));
		}
	}

	$result['POST_ID_LIST'] = $postIdList;
	$result['AUTHOR_ID_LIST'] = array_unique($authorsIdList);
	$result['ELEMENT_ID_LIST'] = $iblockElementsIdList;

	return $result;
}