- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/logindex.php
- Класс: BitrixSocialnetworkLogIndexTable
- Вызов: LogIndexTable::set
static function set($params = []): bool
{
$itemType = ($params['itemType'] ?? self::ITEM_TYPE_LOG);
$itemId = (int)($params['itemId'] ?? 0);
$logId = (int)($params['logId'] ?? 0);
$content = trim(($params['content'] ?? ''));
if (
!in_array($itemType, self::getItemTypes())
|| $itemId <= 0
|| $logId <= 0
|| empty($content)
)
{
return false;
}
$connection = Application::getConnection();
$helper = $connection->getSqlHelper();
$value = $helper->forSql($content);
$encryptedValue = sha1($content);
$insertFields = [
'ITEM_TYPE' => $helper->forSql($itemType),
'ITEM_ID' => $itemId,
'LOG_ID' => $logId,
'CONTENT' => $value,
];
$updateFields = [
'CONTENT' => new SqlExpression("IF(SHA1(CONTENT) = '{$encryptedValue}', CONTENT, '{$value}')"),
];
if (
isset($params['logDateUpdate'])
&& $params['logDateUpdate'] instanceof DateTime
)
{
$insertFields['LOG_UPDATE'] = $params['logDateUpdate'];
$updateFields['LOG_UPDATE'] = $params['logDateUpdate'];
}
if (
isset($params['dateCreate'])
&& $params['dateCreate'] instanceof DateTime
)
{
$insertFields['DATE_CREATE'] = $params['dateCreate'];
$updateFields['DATE_CREATE'] = $params['dateCreate'];
}
$merge = $helper->prepareMerge(
static::getTableName(),
[ 'ITEM_TYP', 'ITEM_ID' ],
$insertFields,
$updateFields
);
if ($merge[0] != '')
{
$connection->query($merge[0]);
}
return true;
}