- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/smile.php
- Класс: CSmile
- Вызов: CSmile::update
static function update($id, $arFields)
{
// TODO
global $DB, $CACHE_MANAGER;
$id = intval($id);
if (!self::checkFields($arFields, self::CHECK_TYPE_UPDATE))
return false;
$arUpdate = Array();
if (isset($arFields['TYPE']))
$arUpdate['TYPE'] = "'".$arFields['TYPE']."'";
if (isset($arFields['SET_ID']))
$arUpdate['SET_ID'] = intval($arFields['SET_ID']);
if (isset($arFields['SORT']))
$arUpdate['SORT'] = intval($arFields['SORT']);
if (isset($arFields['IMAGE']))
{
$arUpdate['IMAGE'] = "'".$DB->ForSql($arFields['IMAGE'])."'";
$arUpdate['IMAGE_WIDTH'] = intval($arFields['IMAGE_WIDTH']);
$arUpdate['IMAGE_HEIGHT'] = intval($arFields['IMAGE_HEIGHT']);
if (isset($arFields['IMAGE_DEFINITION']))
{
$arUpdate['IMAGE_DEFINITION'] = "'".$DB->ForSql($arFields['IMAGE_DEFINITION'])."'";
if ($arFields['IMAGE_DEFINITION'] == self::IMAGE_UHD)
{
$arUpdate['IMAGE_WIDTH'] = $arUpdate['IMAGE_WIDTH']/4;
$arUpdate['IMAGE_HEIGHT'] = $arUpdate['IMAGE_HEIGHT']/4;
}
else if ($arFields['IMAGE_DEFINITION'] == self::IMAGE_HD)
{
$arUpdate['IMAGE_WIDTH'] = $arUpdate['IMAGE_WIDTH']/2;
$arUpdate['IMAGE_HEIGHT'] = $arUpdate['IMAGE_HEIGHT']/2;
}
}
}
if (isset($arFields['TYPING']))
$arUpdate['TYPING'] = "'".$DB->ForSql($arFields['TYPING'])."'";
if (isset($arFields['CLICKABLE']))
$arUpdate['CLICKABLE'] = "'".$arFields['CLICKABLE']."'";
if (isset($arFields['HIDDEN']))
$arUpdate['HIDDEN'] = "'".$arFields['HIDDEN']."'";
if (!empty($arUpdate))
$DB->Update("b_smile", $arUpdate, "WHERE ID = ".intval($id));
if (isset($arFields['LANG']))
{
$arLang = Array();
if (is_array($arFields['LANG']))
$arLang = $arFields['LANG'];
else
$arLang[LANG] = $arFields['LANG'];
foreach ($arLang as $lang => $name)
{
if (trim($name) <> '')
{
$DB->Query("DELETE FROM b_smile_lang WHERE TYPE = '".self::TYPE_SMILE."' AND SID = ".$id." AND LID = '".$DB->ForSql(htmlspecialcharsbx($lang))."'", true);
$arInsert = array(
'TYPE' => self::TYPE_SMILE,
'SID' => $id,
'LID' => htmlspecialcharsbx($lang),
'NAME' => trim($name),
);
$DB->Add("b_smile_lang", $arInsert);
}
}
}
self::setLastUpdate();
$CACHE_MANAGER->CleanDir("b_smile");
return true;
}