file_usage_delete
function file_usage_delete
file_usage_delete(stdClass $file, $module, $type = NULL, $id = NULL, $count = 1)
Removes a record to indicate that a module is no longer using a file.
The file_delete() function is typically called after removing a file usage to remove the record from the file_managed table and delete the file itself.
Parameters
$file: A file object.
$module: The name of the module using the file.
$type: (optional) The type of the object that contains the referenced file. May be omitted if all module references to a file are being deleted.
$id: (optional) The unique, numeric ID of the object containing the referenced file. May be omitted if all module references to a file are being deleted.
$count: (optional) The number of references to delete from the object. Defaults to 1. 0 may be specified to delete all references to the file within a specific object.
See also
Related topics
File
- includes/file.inc, line 724
- API for handling file uploads and server file management.
Code
function file_usage_delete(stdClass $file, $module, $type = NULL, $id = NULL, $count = 1) { // Delete rows that have a exact or less value to prevent empty rows. $query = db_delete('file_usage') ->condition('module', $module) ->condition('fid', $file->fid); if ($type && $id) { $query ->condition('type', $type) ->condition('id', $id); } if ($count) { $query->condition('count', $count, '<='); } $result = $query->execute(); // If the row has more than the specified count decrement it by that number. if (!$result && $count > 0) { $query = db_update('file_usage') ->condition('module', $module) ->condition('fid', $file->fid); if ($type && $id) { $query ->condition('type', $type) ->condition('id', $id); } $query->expression('count', 'count - :count', array(':count' => $count)); $query->execute(); } }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!file.inc/function/file_usage_delete/7.x