1 file.pages.inc | file_multiple_delete_confirm($form, &$form_state) |
Multiple file deletion confirmation form.
See also
file_multiple_delete_confirm_submit()
Related topics
File
- core/
modules/ file/ file.pages.inc, line 874 - Supports file operations including Manage and Delete.
Code
function file_multiple_delete_confirm($form, &$form_state) {
if (isset($form_state['fids'])) {
$fids = $form_state['fids'];
}
elseif (isset($_SESSION['file_delete_action']['timestamp']) && (REQUEST_TIME - $_SESSION['file_delete_action']['timestamp'] < 6000)) {
$fids = $_SESSION['file_delete_action']['fids'];
$form_state['fids'] = $fids;
$form_state['cache'] = TRUE;
unset($_SESSION['file_delete_action']);
}
else {
$fids = array();
}
$form['#tree'] = TRUE;
if (empty($fids)) {
$destination = isset($_GET['destination']) ? $_GET['destination'] : 'admin/content/files';
$form['empty']['#markup'] = '<p>' . t('Return to the <a href="!url">manage files administration page</a>.', array('!url' => url($destination))) . '</p>';
backdrop_set_message(t('No files have been selected for deletion.'), 'error');
return $form;
}
$form['file_list'] = array(
'#theme' => 'item_list',
'#items' => array(),
);
$items = array();
$files = file_load_multiple($fids);
$usage_count_total = 0;
foreach ($files as $fid => $file) {
$usage_count = _file_usage_get_total($file);
$usage_count_total += $usage_count;
$form['files'][$fid] = array(
'#type' => 'hidden',
'#value' => $fid,
);
$uri = $file->uri();
$url = file_create_url($uri['path']);
$label = l($file->label(), $url);
if ($usage_count) {
$label .= ' (' . format_plural($usage_count, 'referenced 1 time', 'referenced @count times') . ')';
}
$items[] = $label;
}
$confirm_question = format_plural(count($files), 'Are you sure you want to delete this file?', 'Are you sure you want to delete these files?');
if ($usage_count_total) {
$description = '<p>' . format_plural($usage_count_total, 'One piece of content references the listed files.', '@count pieces of content reference the listed files.') . '</p>';
}
else {
$description = '<p>' . format_plural(count($files), 'This file has no known content referencing it, although it may still be in use.', 'These files have no known content referencing them, although they may still be in use.') . '</p>';
}
$description .= theme('item_list', array('items' => $items));
$description .= '<p>' . format_plural(count($files), 'Deleting this file may cause content to display improperly.', 'Deleting these files may cause content to display improperly.') . '</p>';
return confirm_form($form, $confirm_question, 'admin/content/files', $description, t('Delete'), t('Cancel'));
}