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

	$result = null;

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

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

	$gratitudesIblockId = BitrixSocialnetworkComponentLogListGratitude::getGratitudesIblockId();
	if (!$gratitudesIblockId)
	{
		return $result;
	}

	$gratitudesPropertyData = self::getPropertyData();
	if (!array_key_exists($medal, $gratitudesPropertyData))
	{
		return $result;
	}

	$gratitudeEnumFields = $gratitudesPropertyData[$medal];

	$gratitudeElement = new CIBlockElement;
	$result = $gratitudeElement->add(
		[
			'IBLOCK_ID' => $gratitudesIblockId,
			'DATE_ACTIVE_FROM' => new BitrixMainTypeDateTime(),
			'NAME' => str_replace('#GRAT_NAME#', $gratitudeEnumFields['VALUE'], Loc::getMessage('SOCIALNETWORK_HELPER_GRATITUDE_IBLOCKELEMENT_NAME'))
		],
		false,
		false
	);

	if ($result)
	{
		CIBlockElement::setPropertyValuesEx(
			$result,
			$gratitudesIblockId,
			[
				'USERS' => $employees,
				self::SOCIALNETWORK_GRATITUDE_PROPERTY_CODE => [ 'VALUE' => $gratitudeEnumFields['ID'] ]
			]
		);

		if (defined("BX_COMP_MANAGED_CACHE"))
		{
			foreach($employees as $employeeId)
			{
				$CACHE_MANAGER->clearByTag('BLOG_POST_GRATITUDE_TO_USER_'.$employeeId);
			}
		}
	}

	return $result;
}