ds_file_delete()

Удаляет файл пользователя и все что связано с ним.
Принимает значения в качестве аргумента ID файла, или его массив.

Фильтры
__ds_file_delete

События
ds_file_delete, ds_deleted_thumbnails, ds_file_deleted

Пример

$file_id = 1; 
ds_file_delete($file_id); // return bolean
// Удалит файл с ID 1

$file = get_file(1); // return array
ds_file_delete($file); // return bolean
// Удалит файл с ID 1

Код функции

function ds_file_delete($file) 
{
	if (is_numeric($file)) {
		$file = get_file($file); 
	}

	do_event('ds_file_delete', $file); 

	/**
	* Хук фильтр если следует прекратить удаление файла
	* По умолчанию true 
	*/ 
	$hook = use_filters('__ds_file_delete', true); 

	if ($hook !== true) {
		return ; 
	}

	/**
	* Удаляем миниатюры файлов
	*/ 
	$thumbnails = get_file_thumbnails($file); 
	if (is_array($thumbnails)) {
		foreach($thumbnails AS $thumbnail) {
			if (is_file(ROOTPATH . $thumbnail['file'])) {
				unlink(ROOTPATH . $thumbnail['file']); 
			}
		}

		do_event('ds_deleted_thumbnails', $file); 
	}

	// Удаляем все мета поля
	delete_files_meta($file['id']); 

	// Удаляем все привязки файла к папкам
	delete_file_relation_all($file); 

	/**
	* Удаляем файл 
	*/ 

	if (is_file(ROOTPATH . $file['path'] . $file['name'])) {
		unlink(ROOTPATH . $file['path'] . $file['name']); 
	}
	
	do_event('ds_file_deleted', $file); 

	// Удаляем запись из бд 
	db::query("DELETE FROM files WHERE id = " . $file['id']); 
}