diff --git a/components/date.inc b/components/date.inc index 40d6ded..919fe4b 100644 --- a/components/date.inc +++ b/components/date.inc @@ -414,7 +414,7 @@ function _webform_csv_headers_date($component, $export_options) { $header = array(); $header[0] = ''; $header[1] = ''; - $header[2] = $component['name']; + $header[2] = $export_options['header_keys'] ? $component['form_key'] : $component['name']; return $header; } diff --git a/components/email.inc b/components/email.inc index 58f6a1d..101346a 100644 --- a/components/email.inc +++ b/components/email.inc @@ -285,7 +285,7 @@ function _webform_csv_headers_email($component, $export_options) { $header = array(); $header[0] = ''; $header[1] = ''; - $header[2] = $component['name']; + $header[2] = $export_options['header_keys'] ? $component['form_key'] : $component['name']; return $header; } diff --git a/components/file.inc b/components/file.inc index 7f46e1c..578ff61 100644 --- a/components/file.inc +++ b/components/file.inc @@ -467,7 +467,7 @@ function _webform_csv_headers_file($component, $export_options) { $header = array(); // Two columns in header. $header[0] = array('', ''); - $header[1] = array($component['name'], ''); + $header[1] = array($export_options['header_keys'] ? $component['form_key'] : $component['name'], ''); $header[2] = array(t('Name'), t('Filesize (KB)')); return $header; } diff --git a/components/grid.inc b/components/grid.inc index 955c526..5845dd4 100644 --- a/components/grid.inc +++ b/components/grid.inc @@ -365,7 +365,7 @@ function _webform_table_grid($component, $value) { function _webform_csv_headers_grid($component, $export_options) { $header = array(); $header[0] = array(''); - $header[1] = array($component['name']); + $header[1] = array($export_options['header_keys'] ? $component['form_key'] : $component['name']); $items = _webform_select_options_from_text($component['extra']['questions'], TRUE); $count = 0; foreach ($items as $key => $item) { @@ -375,7 +375,7 @@ function _webform_csv_headers_grid($component, $export_options) { $header[1][] = ''; } // The value for this option. - $header[2][] = $item; + $header[2][] = $export_options['header_keys'] ? $key : $item; $count++; } diff --git a/components/hidden.inc b/components/hidden.inc index 99e3210..aa4edea 100644 --- a/components/hidden.inc +++ b/components/hidden.inc @@ -160,13 +160,13 @@ function _webform_table_hidden($component, $value) { } /** - * Implements _webform_csv_data_component(). + * Implements _webform_csv_headers_component(). */ function _webform_csv_headers_hidden($component, $export_options) { $header = array(); $header[0] = ''; $header[1] = ''; - $header[2] = $component['name']; + $header[2] = $export_options['header_keys'] ? $component['form_key'] : $component['name']; return $header; } diff --git a/components/number.inc b/components/number.inc index 8134b49..d2152bc 100644 --- a/components/number.inc +++ b/components/number.inc @@ -510,7 +510,7 @@ function _webform_csv_headers_number($component, $export_options) { $header = array(); $header[0] = ''; $header[1] = ''; - $header[2] = $component['name']; + $header[2] = $export_options['header_keys'] ? $component['form_key'] : $component['name']; return $header; } diff --git a/components/select.inc b/components/select.inc index ced3504..38450f7 100644 --- a/components/select.inc +++ b/components/select.inc @@ -705,10 +705,15 @@ function _webform_csv_headers_select($component, $export_options) { if ($component['extra']['multiple'] && $export_options['select_format'] == 'separate') { $headers[0][] = ''; - $headers[1][] = $component['name']; + $headers[1][] = $export_options['header_keys'] ? $component['form_key'] : $component['name']; $items = _webform_select_options($component, TRUE, FALSE); if ($component['extra']['other_option']) { - $other_label = !empty($component['extra']['other_text']) ? check_plain($component['extra']['other_text']) : t('Other...'); + if ($export_options['header_keys']) { + $other_label = $component['form_key'] . '_other'; + } + else { + $other_label = !empty($component['extra']['other_text']) ? check_plain($component['extra']['other_text']) : t('Other...'); + } $items[$other_label] = $other_label; } $count = 0; @@ -730,7 +735,7 @@ function _webform_csv_headers_select($component, $export_options) { else { $headers[0][] = ''; $headers[1][] = ''; - $headers[2][] = $component['name']; + $headers[2][] = $export_options['header_keys'] ? $component['form_key'] : $component['name']; } return $headers; } diff --git a/components/textarea.inc b/components/textarea.inc index d0859fa..83cb744 100644 --- a/components/textarea.inc +++ b/components/textarea.inc @@ -217,7 +217,7 @@ function _webform_csv_headers_textarea($component, $export_options) { $header = array(); $header[0] = ''; $header[1] = ''; - $header[2] = $component['name']; + $header[2] = $export_options['header_keys'] ? $component['form_key'] : $component['name']; return $header; } diff --git a/components/textfield.inc b/components/textfield.inc index 10db477..b458f50 100644 --- a/components/textfield.inc +++ b/components/textfield.inc @@ -255,7 +255,7 @@ function _webform_csv_headers_textfield($component, $export_options) { $header = array(); $header[0] = ''; $header[1] = ''; - $header[2] = $component['name']; + $header[2] = $export_options['header_keys'] ? $component['form_key'] : $component['name']; return $header; } diff --git a/components/time.inc b/components/time.inc index 30a9053..5502864 100644 --- a/components/time.inc +++ b/components/time.inc @@ -377,7 +377,7 @@ function _webform_csv_headers_time($component, $export_options) { $header = array(); $header[0] = ''; $header[1] = ''; - $header[2] = $component['name']; + $header[2] = $export_options['header_keys'] ? $component['form_key'] : $component['name']; return $header; } diff --git a/includes/webform.report.inc b/includes/webform.report.inc index dcbd0aa..8c8265c 100644 --- a/includes/webform.report.inc +++ b/includes/webform.report.inc @@ -341,6 +341,17 @@ function webform_results_download_form($form, &$form_state, $node) { ), ); + $form['header_keys'] = array( + '#type' => 'radios', + '#title' => t('Column header format'), + '#options' => array( + 0 => t('Label'), + 1 => t('Field Key'), + ), + '#default_value' => isset($form_state['values']['header_keys']) ? $form_state['values']['header_keys'] : 0, + '#description' => t('Choose whether to show the label or field key in each column header.'), + ); + $form['select_options'] = array( '#type' => 'fieldset', '#title' => t('Select list options'), @@ -521,6 +532,7 @@ function webform_results_download_form_submit(&$form, &$form_state) { $options = array( 'delimiter' => $form_state['values']['delimiter'], 'components' => array_keys(array_filter($form_state['values']['components'])), + 'header_keys' => $form_state['values']['header_keys'], 'select_keys' => $form_state['values']['select_keys'], 'select_format' => $form_state['values']['select_format'], 'range_type' => $form_state['values']['range']['range_type'], @@ -701,6 +713,7 @@ function webform_results_export($node, $format = 'delimited', $options = array() $options = array( 'delimiter' => variable_get('webform_csv_delimiter', '\t'), 'components' => array_merge(array_keys($submission_information), array_keys(webform_component_list($node, 'csv', TRUE))), + 'header_keys' => 0, 'select_keys' => 0, 'select_format' => 'separate', 'range_type' => 'all', @@ -725,8 +738,16 @@ function webform_results_export($node, $format = 'delimited', $options = array() $header[2] = $header[1] = $header[0] = count($submission_information) ? array_fill(0, count($submission_information), '') : array(); if (count($submission_information)) { $header[0][0] = $node->title; - $header[1][0] = t('Submission Details'); - foreach (array_values($submission_information) as $column => $label) { + + if ($options['header_keys']) { + $header[1][0] = t('submission_details'); + $submission_information_headers = array_keys($submission_information); + } + else { + $header[1][0] = t('Submission Details'); + $submission_information_headers = array_values($submission_information); + } + foreach ($submission_information_headers as $column => $label) { $header[2][$column] = $label; } } diff --git a/webform.api.php b/webform.api.php index 985c0f2..847bf3e 100644 --- a/webform.api.php +++ b/webform.api.php @@ -878,7 +878,7 @@ function _webform_table_component($component, $value) { function _webform_csv_headers_component($component, $export_options) { $header = array(); $header[0] = array(''); - $header[1] = array($component['name']); + $header[1] = array($export_options['header_keys'] ? $component['form_key'] : $component['name']); $items = _webform_component_options($component['extra']['questions']); $count = 0; foreach ($items as $key => $item) {