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

	if (!self::checkFields($arFields, self::CHECK_TYPE_ADD))
		return false;

	$arInsert = array(
		'TYPE' => $arFields['TYPE'],
		'SET_ID' => intval($arFields['SET_ID']),
		'SORT' => intval($arFields['SORT']),
		'IMAGE' => $arFields['IMAGE'],
		'IMAGE_WIDTH' => intval($arFields['IMAGE_WIDTH']),
		'IMAGE_HEIGHT' => intval($arFields['IMAGE_HEIGHT']),
	);

	if (isset($arFields['IMAGE_DEFINITION']))
	{
		$arInsert['IMAGE_DEFINITION'] = $arFields['IMAGE_DEFINITION'];
		if ($arInsert['IMAGE_DEFINITION'] == self::IMAGE_UHD)
		{
			$arInsert['IMAGE_WIDTH'] = $arInsert['IMAGE_WIDTH']/4;
			$arInsert['IMAGE_HEIGHT'] = $arInsert['IMAGE_HEIGHT']/4;
		}
		else if ($arInsert['IMAGE_DEFINITION'] == self::IMAGE_HD)
		{
			$arInsert['IMAGE_WIDTH'] = $arInsert['IMAGE_WIDTH']/2;
			$arInsert['IMAGE_HEIGHT'] = $arInsert['IMAGE_HEIGHT']/2;
		}
	}

	if (isset($arFields['TYPING']))
		$arInsert['TYPING'] = $arFields['TYPING'];

	if (isset($arFields['CLICKABLE']))
		$arInsert['CLICKABLE'] = $arFields['CLICKABLE'];

	if (isset($arFields['HIDDEN']))
		$arInsert['HIDDEN'] = $arFields['HIDDEN'];

	$setId = intval($DB->Add("b_smile", $arInsert));

	if ($setId && 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) <> '')
			{
				$arInsert = array(
					'TYPE' => self::TYPE_SMILE,
					'SID' => $setId,
					'LID' => htmlspecialcharsbx($lang),
					'NAME' => trim($name),
				);
				$DB->Add("b_smile_lang", $arInsert);
			}
		}
	}

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

	return $setId;
}