webform_submissions_bulk_delete.module in Webform Submissions Bulk Delete 7
Delete webform submissions with in the date range.
File
webform_submissions_bulk_delete.moduleView source
<?php
/**
* @file
* Delete webform submissions with in the date range.
*/
/**
* Implements hook_permission().
*/
function webform_submissions_bulk_delete_permission() {
return array(
'access administration menu' => array(
'title' => t('Access Webform Data Export'),
'description' => t('Access the Webform Data Export configuration admin pages'),
),
);
}
/**
* Implements hook_menu().
*/
function webform_submissions_bulk_delete_menu() {
$items = array();
$items['node/%webform_menu/webform-results/bulk-delete'] = array(
'title' => 'Bulk Delete',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'webform_submissions_bulk_delete_form',
1,
),
'access arguments' => array(
'access administration menu',
),
'weight' => 9,
'type' => MENU_LOCAL_TASK,
);
return $items;
}
/**
* Implements hook_form().
*/
function webform_submissions_bulk_delete_form($form, $form_state, $node) {
if (!isset($form_state['delete_submit']['submit'])) {
$form['#attached']['css'] = array(
drupal_get_path('module', 'webform_submissions_bulk_delete') . '/css/webform_submissions_bulk_delete.css',
);
$form['delete_start_date'] = array(
'#date_format' => 'Y-m-d',
'#title' => t('Start Date'),
'#type' => 'date_popup',
'#date_year_range' => '-10:+10',
);
$form['delete_end_date'] = array(
'#date_format' => 'Y-m-d',
'#title' => t('End date'),
'#type' => 'date_popup',
'#date_year_range' => '-10:+10',
);
$form['delete_submit'] = array(
'#type' => 'submit',
'#value' => t('Delete'),
'#validate' => array(
'webform_submissions_bulk_delete_form_validate',
),
'#submit' => array(
'webform_submissions_bulk_delete_form_submit',
),
);
return $form;
}
else {
$path = current_path();
$form['nid'] = array(
'#type' => 'value',
'#value' => $node->nid,
);
return confirm_form($form, t("Do you really want to make the submissions to delete?"), $path, t("Warning, this is the last step before form gets submitted"), t("Proceed?"));
}
return $form;
}
/**
* Implements of form validation().
*/
function webform_submissions_bulk_delete_form_validate($form, &$form_state) {
if (!isset($form['confirm'])) {
$start_date = check_plain($form_state['values']['delete_start_date']);
$end_date = check_plain($form_state['values']['delete_end_date']);
if ($start_date == '') {
form_set_error('Start Date validation', t('Please enter Start Date'));
}
if ($end_date == '') {
form_set_error('End Date validation', t('Please enter End Date'));
}
if (strtotime($start_date) > strtotime($end_date)) {
form_set_error('Date range validation', t('Start date should not greater than End date'));
}
}
}
/**
* Implementation of batch creation().
*/
function webform_submissions_bulk_delete_form_submit($form, &$form_state) {
if (!isset($form_state['delete_submit']['submit'])) {
$form_state['delete_submit']['submit'] = TRUE;
$form_state['rebuild'] = TRUE;
$form_state['delete_submit']['original_form'] = $form_state['values'];
}
else {
$batch = webform_submissions_bulk_delete_webform_submission_batch($form, $form_state);
batch_set($batch);
$nid = $form['nid']['#value'];
batch_process('node/' . $nid . '/webform-results/bulk-delete');
}
}
/**
* Implementation of batch queue().
*/
function webform_submissions_bulk_delete_webform_submission_batch($form, &$form_state) {
$operations = array();
$nid = $form['nid']['#value'];
$start_date = strtotime(check_plain($form_state['delete_submit']['original_form']['delete_start_date']));
$end_date = check_plain($form_state['delete_submit']['original_form']['delete_end_date']);
if ($end_date != '' && ($end_date = strtotime($end_date)) !== FALSE) {
if ($end_date == strtotime('midnight', $end_date)) {
// Full day specified.
$end_date += 86399;
}
}
$query = db_select('webform_submissions', 'submission');
$query
->fields('submission', array(
'sid',
));
$query
->condition('submission.nid', $nid);
$query
->condition('submission.submitted', $start_date, '>=');
$query
->condition('submission.submitted', $end_date, '<=');
$sid = $query
->execute()
->fetchAll();
foreach ($sid as $submission_id) {
$operations[] = array(
'webform_submissions_bulk_delete_webform_submission_process',
array(
$submission_id->sid,
),
);
}
$batch = array(
'init_message' => t('Initializing...'),
'title' => t('Submission Deletion in progress...'),
'operations' => $operations,
'progress_message' => t('@current Submission Deleted out of @total.'),
'error_message' => t('An Error has occurred!'),
'finished' => 'webform_submissions_bulk_delete_webform_submission_finished',
);
return $batch;
}
/**
* Implementation of batch context().
*/
function webform_submissions_bulk_delete_webform_submission_process($submission_id, &$context) {
webform_submissions_bulk_delete_webform_submission_action($submission_id, $context);
}
/**
* Implementation of batch success().
*/
function webform_submissions_bulk_delete_webform_submission_finished($success, $results, $operations) {
if (isset($results['success'])) {
if (count($results['success']) > 0) {
drupal_set_message(t('@count submissions has been deleted', array(
'@count' => count($results['success']),
)));
}
}
}
/**
* Implementation of batch process().
*/
function webform_submissions_bulk_delete_webform_submission_action($submission_id, &$context) {
db_delete('webform_submitted_data')
->condition('sid', $submission_id)
->execute();
db_delete('webform_submissions')
->condition('sid', $submission_id)
->execute();
}
Functions
Name![]() |
Description |
---|---|
webform_submissions_bulk_delete_form | Implements hook_form(). |
webform_submissions_bulk_delete_form_submit | Implementation of batch creation(). |
webform_submissions_bulk_delete_form_validate | Implements of form validation(). |
webform_submissions_bulk_delete_menu | Implements hook_menu(). |
webform_submissions_bulk_delete_permission | Implements hook_permission(). |
webform_submissions_bulk_delete_webform_submission_action | Implementation of batch process(). |
webform_submissions_bulk_delete_webform_submission_batch | Implementation of batch queue(). |
webform_submissions_bulk_delete_webform_submission_finished | Implementation of batch success(). |
webform_submissions_bulk_delete_webform_submission_process | Implementation of batch context(). |