- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/internals/theme.php
- Класс: BitrixIntranetInternalsThemeTable
- Вызов: ThemeTable::set
static function set(array $params = []): bool
{
$themeId = (string)($params['THEME_ID'] ?? '');
$userId = (int)($params['USER_ID'] ?? 0);
$entityType = (string)($params['ENTITY_TYPE'] ?? '');
$entityId = (int)($params['ENTITY_ID'] ?? 0);
$context = (string)($params['CONTEXT'] ?? '');
if (
empty($themeId)
|| empty($entityType)
)
{
return false;
}
$connection = Application::getConnection();
$helper = $connection->getSqlHelper();
$insertFields = [
'THEME_ID' => $helper->forSql($themeId),
'USER_ID' => $userId,
'ENTITY_TYPE' => $entityType,
'ENTITY_ID' => $entityId,
'CONTEXT' => $context,
];
$updateFields = [
'THEME_ID' => $helper->forSql($themeId),
'USER_ID' => $userId,
];
$mergeQuery = $helper->prepareMerge(
static::getTableName(),
[ 'ENTITY_TYPE', 'ENTITY_ID', 'CONTEXT' ],
$insertFields,
$updateFields
);
if ($mergeQuery[0] !== '')
{
$connection->query($mergeQuery[0]);
self::getEntity()->cleanCache();
}
return true;
}