- Модуль: 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;
}