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

	$id = intval($id);
	if ($id <= 0)
		return false;

	$arDelete = Array();
	$arDir = Array();
	$arSmiles = self::getList(Array(
		'SELECT' => Array('ID', 'SET_ID', 'TYPE', 'IMAGE'),
		'FILTER' => Array('PARENT_ID' => $id),
	));

	foreach ($arSmiles as $key => $arSmile)
	{
		$arDelete[] = intval($key);
		$arDir[$arSmile['SET_ID']] = ($arSmile['TYPE'] == CSmile::TYPE_ICON? CSmile::PATH_TO_ICON: CSmile::PATH_TO_SMILE).$arSmile['SET_ID'].'/';

	}
	if ($removeFile)
	{
		foreach ($arDir as $path)
		{
			DeleteDirFilesEx($path);
		}
	}

	if (!empty($arDelete))
	{
		$DB->Query("DELETE FROM b_smile WHERE ID IN (".implode(',', $arDelete).")", true);
		$DB->Query("DELETE FROM b_smile_lang WHERE TYPE = '".self::TYPE_SMILE."' AND SID IN (".implode(',', $arDelete).")", true);

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

	return true;
}