Удаляет файл пользователя и все что связано с ним.
Принимает значения в качестве аргумента 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']);
}