function webform_results_download_form in Webform 7.3
Same name and namespace in other branches
- 5.2 webform_report.inc \webform_results_download_form()
- 6.3 includes/webform.report.inc \webform_results_download_form()
- 6.2 webform_report.inc \webform_results_download_form()
- 7.4 includes/webform.report.inc \webform_results_download_form()
Form to configure the download of CSV files.
1 string reference to 'webform_results_download_form'
- webform_menu in ./
webform.module - Implements hook_menu().
File
- includes/
webform.report.inc, line 314 - This file includes helper functions for creating reports for webform.module.
Code
function webform_results_download_form($form, &$form_state, $node) {
module_load_include('inc', 'webform', 'includes/webform.export');
module_load_include('inc', 'webform', 'includes/webform.components');
$form = array();
$form['node'] = array(
'#type' => 'value',
'#value' => $node,
);
$form['format'] = array(
'#type' => 'radios',
'#title' => t('Export format'),
'#options' => webform_export_list(),
'#default_value' => isset($form_state['values']['format']) ? $form_state['values']['format'] : variable_get('webform_export_format', 'delimited'),
);
$form['delimiter'] = array(
'#type' => 'select',
'#title' => t('Delimited text format'),
'#description' => t('This is the delimiter used in the CSV/TSV file when downloading Webform results. Using tabs in the export is the most reliable method for preserving non-latin characters. You may want to change this to another character depending on the program with which you anticipate importing results.'),
'#default_value' => isset($form_state['values']['delimiter']) ? $form_state['values']['delimiter'] : variable_get('webform_csv_delimiter', '\\t'),
'#options' => array(
',' => t('Comma (,)'),
'\\t' => t('Tab (\\t)'),
';' => t('Semicolon (;)'),
':' => t('Colon (:)'),
'|' => t('Pipe (|)'),
'.' => t('Period (.)'),
' ' => t('Space ( )'),
),
);
$form['select_options'] = array(
'#type' => 'fieldset',
'#title' => t('Select list options'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['select_options']['select_keys'] = array(
'#type' => 'radios',
'#title' => t('Select keys'),
'#options' => array(
0 => t('Full, human-readable options (values)'),
1 => t('Short, raw options (keys)'),
),
'#default_value' => isset($form_state['values']['select_options']['select_keys']) ? $form_state['values']['select_options']['select_keys'] : 0,
'#description' => t('Choose which part of options should be displayed from key|value pairs.'),
);
$form['select_options']['select_format'] = array(
'#type' => 'radios',
'#title' => t('Select list format'),
'#options' => array(
'separate' => t('Separate'),
'compact' => t('Compact'),
),
'#default_value' => isset($form_state['values']['select_options']['select_format']) ? $form_state['values']['select_options']['select_format'] : 'separate',
'#attributes' => array(
'class' => array(
'webform-select-list-format',
),
),
'#theme' => 'webform_results_download_select_format',
);
$csv_components = array(
'info' => t('Submission information'),
'serial' => '-' . t('Submission Number'),
'sid' => '-' . t('Submission ID'),
'time' => '-' . t('Time'),
'draft' => '-' . t('Draft'),
'ip_address' => '-' . t('IP Address'),
'uid' => '-' . t('User ID'),
'username' => '-' . t('Username'),
);
$csv_components += webform_component_list($node, 'csv', TRUE);
$form['components'] = array(
'#type' => 'select',
'#title' => t('Included export components'),
'#options' => $csv_components,
'#default_value' => isset($form_state['values']['components']) ? $form_state['values']['components'] : array_keys($csv_components),
'#multiple' => TRUE,
'#size' => 10,
'#description' => t('The selected components will be included in the export.'),
'#process' => array(
'webform_component_select',
),
);
$form['range'] = array(
'#type' => 'fieldset',
'#title' => t('Download range options'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#tree' => TRUE,
'#theme' => 'webform_results_download_range',
'#element_validate' => array(
'webform_results_download_range_validate',
),
'#after_build' => array(
'webform_results_download_range_after_build',
),
);
$form['range']['range_type'] = array(
'#type' => 'radios',
'#options' => array(
'all' => t('All submissions'),
'new' => t('Only new submissions since your last download'),
'latest' => t('Only the latest'),
'range' => t('All submissions starting from'),
),
'#default_value' => 'all',
);
$form['range']['latest'] = array(
'#type' => 'textfield',
'#size' => 5,
'#maxlength' => 8,
'#default_value' => isset($form_state['values']['latest']) ? $form_state['values']['latest'] : '',
);
$form['range']['start'] = array(
'#type' => 'textfield',
'#size' => 5,
'#maxlength' => 8,
'#default_value' => '',
);
$form['range']['end'] = array(
'#type' => 'textfield',
'#size' => 5,
'#maxlength' => 8,
'#default_value' => '',
'#description' => '',
);
// By default results are downloaded. User can override this value if
// programmatically submitting this form.
$form['download'] = array(
'#type' => 'value',
'#default_value' => TRUE,
);
$form['actions'] = array(
'#type' => 'actions',
);
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Download'),
);
return $form;
}