function image_resize_filter_delete_derivatives in Image Resize Filter 7
Same name and namespace in other branches
- 6 image_resize_filter.module \image_resize_filter_delete_derivatives()
Delete all generated image when the original file is removed.
1 call to image_resize_filter_delete_derivatives()
- image_resize_filter_file_delete in ./
image_resize_filter.module - Implements hook_file_delete().
File
- ./
image_resize_filter.module, line 637 - After adding to a text format, this filter will parse the contents of submitted content and automatically scale image files to match the set dimensions of img tags.
Code
function image_resize_filter_delete_derivatives($original_uri) {
// First delete all derivatives in the saved file location.
$path_info = image_resize_filter_pathinfo($original_uri);
$basename = $path_info['filename'];
$extension = $path_info['extension'];
$directory = str_replace($path_info['scheme'] . '://', $path_info['scheme'] . '://resize/', $path_info['dirname']);
// Delete all the derivatives.
file_scan_directory($directory, '/' . preg_quote($basename, '/') . '-[0-9]+[x][0-9]+\\.' . preg_quote($extension, '/') . '/', array(
'callback' => 'file_unmanaged_delete',
));
// Then work up the directories and delete any empty ones.
$folders = explode('/', $directory);
$directories = array();
$current_directory = '';
foreach ($folders as $folder) {
$current_directory .= $folder . '/';
$directories[] = $current_directory;
}
foreach (array_reverse($directories) as $directory) {
if ($directory == $path_info['scheme'] . '://') {
break;
}
$directory_files = file_scan_directory($directory, '/.*/');
if (empty($directory_files)) {
@rmdir($directory);
}
else {
break;
}
}
}