View source
<?php
function webform_multifile_menu() {
$items[] = array();
$items['node/%webform_menu/submission/%webform_menu_submission/multifile_delete/%/%'] = array(
'title' => 'Delete multifile upload',
'load arguments' => array(
1,
),
'page callback' => 'drupal_get_form',
'page arguments' => array(
'webform_multifile_delete_form',
1,
3,
5,
6,
),
'access callback' => 'webform_submission_access',
'access arguments' => array(
1,
3,
'edit',
),
'type' => MENU_CALLBACK,
);
return $items;
}
function webform_multifile_webform_component_info() {
$components = array();
$components['multifile'] = array(
'label' => t('Multifile'),
'description' => t('Multifile Support For Webform File Uploads.'),
'features' => array(
'conditional' => FALSE,
'attachment' => TRUE,
),
'file' => 'multifile.inc',
);
return $components;
}
function webform_multifile_delete_form($form, &$form_state, $webform, $submission, $component_id, $fid) {
if ($file = db_fetch_object(db_query("SELECT * FROM {files} WHERE fid = %d", $fid))) {
$form['webform'] = array(
'#type' => 'value',
'#value' => $webform,
);
$form['submission'] = array(
'#type' => 'value',
'#value' => $submission,
);
$form['component_id'] = array(
'#type' => 'value',
'#value' => $component_id,
);
$form['filepath'] = array(
'#type' => 'value',
'#value' => $file->filepath,
);
$form['fid'] = array(
'#type' => 'value',
'#value' => $file->fid,
);
return confirm_form($form, t('Are you sure you want to delete %file?', array(
'%file' => $file->filename,
)), 'node/' . $webform->nid . '/submission/' . $submission->sid . '/edit');
}
drupal_goto('node/' . $webform->nid . '/submission/' . $submission->sid . '/edit');
}
function webform_multifile_delete_form_submit($form, &$form_state) {
module_load_include('inc', 'webform_multifile', 'safe_unserialize');
$filepath = file_load($form_state['values']['filepath']);
file_delete($filepath);
$fids = safe_unserialize($form_state['values']['submission']->data[$form_state['values']['component_id']]['value'][0]);
$key = array_search($form_state['values']['fid'], $fids);
unset($fids[$key]);
$form_state['values']['submission']->data[$form_state['values']['component_id']]['value'][0] = serialize($fids);
module_load_include('inc', 'webform', 'includes/webform.submissions');
webform_submission_update($form_state['values']['webform'], $form_state['values']['submission']);
$form_state['redirect'] = 'node/' . $form_state['values']['webform']->nid . '/submission/' . $form_state['values']['submission']->sid . '/edit';
}