• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/smile.php
  • Класс: CSmileSet
  • Вызов: CSmileSet::update
static function update($id, $arFields)
{
	global $DB, $CACHE_MANAGER;

	$id = intval($id);

	$arUpdate = Array();

	if (isset($arFields['STRING_ID']))
		$arUpdate['STRING_ID'] = "'".$DB->ForSql($arFields['STRING_ID'])."'";

	if (isset($arFields['SORT']))
		$arUpdate['SORT'] = intval($arFields['SORT']);

	if (!empty($arUpdate))
		$DB->Update("b_smile_set", $arUpdate, "WHERE ID = ".$id);

	if (isset($arFields['LANG']))
	{
		$arLang = Array();
		if (is_array($arFields['LANG']))
			$arLang = $arFields['LANG'];
		else
			$arLang[LANG] = $arFields['LANG'];

		$res = $DB->Query("SELECT TYPE FROM b_smile_set WHERE ID = ".$id);
		$smileSet = $res->Fetch();

		foreach ($arLang as $lang => $name)
		{
			$DB->Query("DELETE FROM b_smile_lang WHERE TYPE = '".$smileSet['TYPE']."' AND SID = ".$id." AND LID = '".$DB->ForSql(htmlspecialcharsbx($lang))."'", true);
			$arInsert = array(
				'TYPE' => $smileSet['TYPE'],
				'SID' => $id,
				'LID' => htmlspecialcharsbx($lang),
				'NAME' => $name,
			);
			$DB->Add("b_smile_lang", $arInsert);
		}
	}

	self::setLastUpdate();
	$CACHE_MANAGER->CleanDir("b_smile");

	return true;
}